docker ps
表示转发了三个端口:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
06584d4ad44e quay.io/coreos/etcd:v3.1.8 "etcd -name etcd01..." 2 days ago Up 3 minutes 0.0.0.0:2379-2380->2379-2380/tcp, 0.0.0.0:4001->4001/tcp etcd01
但是
nmap -sT 127.0.0.1
只能找到4001
:Starting Nmap 7.40 ( https://nmap.org ) at 2017-06-13 00:06 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0011s latency).
Not shown: 969 closed ports, 30 filtered ports
PORT STATE SERVICE
4001/tcp open newoak
怎么会?我可以验证端口是否以其他方式存在吗?
最佳答案
nmap 默认情况下不扫描所有端口。
如您所见,它仅扫描了1000个端口:969(关闭)+ 30(已过滤)+1(打开)。
要真正扫描所有端口,应指定使用-p
选项,如下所示:-p1-65535
。不过,可能需要一些时间...定制选项以使其更快。您需要以root用户身份运行以进行TCP SYN扫描。默认的TCP连接速度较慢。
请勿在主机中使用 nmap 来知道打开了哪些端口。使用netstat -tunlp
中的 netstat (不建议使用)或 ss (与 netstat 接受大多数相同的选项):ss -tunlp
。这些选项是nmemonic的:
-t for TCP
-u for UDP
-n for numeric
-l for listening ports
-p for PID's
关于docker - docker ps显示的端口与nmap不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44509452/