如何查找哪些端口被阻止了?

如何查找哪些端口被阻止了?

我在两台机器 A 和 B 上都有 root 权限,我想知道哪些端口不能从 A 访问 B。有没有办法在 B 上运行一个命令行应用程序来监听所有端口,然后nmap从 A 运行?端口可能被路由器阻止,所以只检查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

如果我只是从 AI 扫描端口 5900

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

从 BI 获取

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

还可以从 BI get 运行 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

答案1

当您使用 时nmap,“过滤”端口和“关闭”端口之间存在差异。这应该将所有不可访问的端口显示为“过滤”,而那些没有人监听的端口应该列为“关闭”。

如果您中间有一个平均路由器,它会回答 TCP 请求而不是丢弃它们,您可以通过绑定到所有端口来找出答案(警告,这样做可能会耗尽系统资源!也许可以尝试一次使用 ~1000 个端口):

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

相关内容