Можно ли заставить 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-соединение, будет заблокирован и откажется.