web-dev-qa-db-ja.com

ブロックされているポートを見つける方法は?

2台のマシンAとBにルートがあり、AからBでアクセスできないポートを知りたいです。すべてのポートでリッスンするコマンドラインアプリケーションをBで実行してから、nmap多分?ポートはルーターによってブロックされている可能性があるため、iptablesをチェックするだけでは不十分です。

単純なnmapは

Starting Nmap 5.21 ( http://nmap.org ) at 2013-04-18 09:32 BST
Nmap scan report for B (xxx.xxx.xxx.xxx)
Host is up (0.00038s latency).
rDNS record for xxx.xxx.xxx.xxx: B
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

Nmap done: 1 IP address (1 Host up) scanned in 0.07 seconds

Aからポート5900をスキャンするだけで、

nc -v -w 1 B -z 5900
nc: connect to B port 5900 (tcp) failed: Connection refused

そしてBから私は得る

nc -v -w 1 localhost -z 5900
Connection to localhost 5900 port [tcp/*] succeeded!

Bからnmapも実行しています

nmap localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2013-04-18 09:57 BST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00024s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
Not shown: 995 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
53/tcp   open  domain
631/tcp  open  ipp
5900/tcp open  vnc
7
Anush

nmapを使用する場合、「フィルタリングされた」ポートと「閉じられた」ポートには違いがあります。これにより、アクセスできないすべてのポートが「フィルター済み」として表示され、誰もリッスンしていないポートは「閉じた」としてリストされます。

応答TCPリクエストをドロップするのではなく、その間に平均ルーターがある場合は、すべてのポートにバインドすることで確認できます(警告、不足する可能性がありますこれを行うシステムリソース!多分一度に最大1000ポートで試してみてください):

for i in {1..65535} ; do nc -l $i & done
2
Stefan Seidel