Назад | Перейти на главную страницу

Заставить NIS использовать TCP

Можно ли заставить NIS подключаться по TCP вместо UDP? Я просмотрел документацию для обоих ypserv (для принудительного прослушивания только TCP) и ypbind (только для подключения по TCP), но ничего не нашел (только возможность указать прослушивание порт). Боюсь, что кто-нибудь ответит "да, если компилировать из исходников ..."

И ypserv слушает оба протокола, так почему бы ypbind пробовать TCP, когда UDP не работает?

Обновить

Я попробовал решение Фила, но оказалось, что ypbind сначала связывается с картой порта на UDP-порту 111. Если он не получает ответа UDP, он просто сдается.

Я мог придумать только одно решение и быстро погуглить показывает то же самое. Запустите ypserv на определенном порту, затем настройте iptables на сервере, чтобы блокировать входящие соединения udp, например, если вы запускаете ybserv, скажем, на порту 1337:

# iptables -I INPUT -p udp --dport 1337 -j REJECT

хотя мне неясно, какой механизм использует ybbind, чтобы определить, использовать ли UDP или TCP. Использование такого правила брандмауэра может привести к тому, что ypbind попытается установить UDP-соединение, будет заблокирован и откажется.