Quake 3サーバーがあります。そして正常に開始されました。
問題は、誰もサーバーに接続できないことです。
実行中:nmap -sU -p 27960 hostname
ステータスが表示されます。open|filtered
サーバーから直接コマンドを実行した場合open
。
そして右に縛られていることを確認しました。iface
確認しましたiptablesルールが見つかりましたが、関連するフィルタが見つかりませんでした。また、次のように明示的にポートを開こうとしました。iptables -A INPUT -p udp --dport 27960 -j ACCEPT
しかし、これは役に立ちません。
何ができたのか?
ISPサポートセンターに電話したところ、何もフィルタリングしないと言いました。
答え1
ローカルシステムとリモートシステムで異なるnmap結果を取得することは、ある種のファイアウォール(ローカルで実行されているか、一部のリモートシステムで実行中)がブロックされていることを意味します。 nmapドキュメントによると、
open|filtered
Nmap places ports in this state when it is unable to determine whether
a port is open or filtered. This occurs for scan types in which open
ports give no response. The lack of response could also mean that a
packet filter dropped the probe or any response it elicited. So Nmap
does not know for sure whether the port is open or being filtered. The
UDP, IP protocol, FIN, NULL, and Xmas scans classify ports this way.
問題が実際に存在するかどうかを確認するには、次のツールを試してください。
- に送信されたUDPパケットをキャプチャし
port 27960
ます。tcpdump
パケットがデバイスに到達していることを確認してください。
次のコマンドを実行して、ポート27960に送信されたUDPパケットをファイルにキャプチャします。tcpdump.out
$ sudo tcpdump -A 'udp and port 27960' -w tcpdump.out`
次のコマンドを使用して、別のコンピュータからポートに接続してみてください。netcat
$ nc <server-ip-address> -u 27960
ダンプを停止し、tcpdump.outにキャプチャされたパケットがあることを確認します。
$ wireshark tcpdump.out
パケットがキャプチャされない場合は、一部の中間デバイス(ファイアウォール)が通信をブロックしていることを意味します。そうでない場合は、キャッチしたら、要求に応答してサーバーによって提供された応答を確認してください。エラーコードを含むICMP応答がある場合は、一部のローカルファイアウォールがそれをブロックしていることを意味します。