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
怎么来的?我可以用其他方式验证端口是否在那里吗?
答案 0 :(得分:3)
nmap 不会扫描所有端口。
如您所见,它只扫描了1000个端口:969(已关闭)+ 30(已过滤)+ 1(已打开)。
要真正扫描所有端口,您应指定使用-p
选项,如下所示:-p1-65535
。可能需要一段时间,但是......自定义选项以使其更快。您需要以root身份运行TCP SYN扫描。默认的TCP连接速度较慢。
不要使用 nmap 来了解当您在主机中时打开哪些端口。使用 netstat (已弃用),如netstat -tunlp
或 ss (它接受与 netstat 相同的大部分选项):{{ 1}}。选项是nmemonic:
-t for TCP
-u for UDP
-n for numeric
-l用于监听端口
-p表示PID