UDPの代わりにTCPを使用してNISを強制的に接続することは可能ですか? ypserv
(TCPのみでリッスンを強制する)とypbind
(TCPのみで接続する)の両方のドキュメントを調べましたが、何も見つかりませんでした(リスニングを指定するオプションのみport)。誰かが「はい、ソースからコンパイルするなら...」と答えるのではないかと思います。
そして、ypserv
は両方のプロトコルをリッスンしますが、UDPが失敗したときにypbind
がTCPを試行しないのはなぜですか?
更新
Philのソリューションを試しましたが、ypbindが最初にUDPポート111のポートマップに接続していることがわかりました。UDP応答が得られない場合は、あきらめます。
私は1つの解決策を思い付くことができました、そして簡単なグーグル 同じことを示します 。特定のポートでypservを実行してから、サーバーでiptablesを構成して、着信udp接続をブロックします。たとえば、ポート1337でybservを実行している場合などです。
# iptables -I INPUT -p udp --dport 1337 -j REJECT
ybbindがUDPとTCPのどちらを使用するかを決定するためにどのメカニズムを使用するかはわかりませんが。このようなファイアウォールルールを使用すると、ypbindがUDP接続を試行し、ブロックされ、あきらめる可能性があります。