我nmap
在 OS X 上使用安装brew
。
我开始测试它,但发生了一些奇怪的事情。每次我使用nmap
该选项-sT
时,它总是显示端口 110、143、993 和 995 已打开。我检查了我的计算机,寻找正在监听这些端口的进程,但找不到它们。我尝试了其他计算机和不同的服务器,它仍然显示端口已打开。
$ sudo nmap -sT localhost
Starting Nmap 7.12 ( https://nmap.org ) at 2016-07-27 11:24 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0012s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 499 filtered ports, 495 closed ports
PORT STATE SERVICE
80/tcp open http
110/tcp open pop3
143/tcp open imap
443/tcp open https
993/tcp open imaps
995/tcp open pop3s
Nmap done: 1 IP address (1 host up) scanned in 2.93 seconds
$
是这样吗?我做错了什么吗?这是 bug 吗?
编辑:我运行了一下sudo netstat -anltv | grep LISTEN
,没有看到在其中一个端口上监听的进程。
tcp4 0 0 127.0.0.1.17603 *.* LISTEN 131072 131072 510 0
tcp4 0 0 127.0.0.1.17600 *.* LISTEN 131072 131072 510 0
tcp4 0 0 *.17500 *.* LISTEN 131072 131072 510 0
tcp6 0 0 *.17500 *.* LISTEN 131072 131072 510 0
tcp4 0 0 127.0.0.1.31743 *.* LISTEN 131072 131072 578 0
tcp4 0 0 127.0.0.1.31742 *.* LISTEN 131072 131072 578 0
tcp6 0 0 ::1.12993 *.* LISTEN 131072 131072 358 0
tcp4 0 0 127.0.0.1.12993 *.* LISTEN 131072 131072 358 0
tcp6 0 0 ::1.12995 *.* LISTEN 131072 131072 358 0
tcp4 0 0 127.0.0.1.12995 *.* LISTEN 131072 131072 358 0
tcp6 0 0 ::1.12143 *.* LISTEN 131072 131072 358 0
tcp4 0 0 127.0.0.1.12143 *.* LISTEN 131072 131072 358 0
tcp6 0 0 ::1.12110 *.* LISTEN 131072 131072 358 0
tcp4 0 0 127.0.0.1.12110 *.* LISTEN 131072 131072 358 0
tcp6 0 0 ::1.12443 *.* LISTEN 131072 131072 358 0
tcp4 0 0 127.0.0.1.12443 *.* LISTEN 131072 131072 358 0
tcp6 0 0 ::1.12080 *.* LISTEN 131072 131072 358 0
tcp4 0 0 127.0.0.1.12080 *.* LISTEN 131072 131072 358 0
tcp4 0 0 127.0.0.1.6437 *.* LISTEN 131072 131072 98 0
tcp4 0 0 127.0.0.1.6436 *.* LISTEN 131072 131072 98 0
tcp4 0 0 127.0.0.1.6439 *.* LISTEN 131072 131072 98 0
tcp4 0 0 127.0.0.1.6438 *.* LISTEN 131072 131072 98 0
答案1
显然,该扫描仪/模块深入到 TCP/IP 堆栈中。我发现,当我扫描其他系统时,这些端口也处于打开状态 - 但它们在远程端根本不存在。显然,这是 Avast 拦截邮件流量进行扫描的方式...
答案2
您可以使用以下命令检查是否确实有东西在监听该端口
sudo netstat -anltv | grep LISTEN
如果你在列表中看到该端口,那么确实有进程正在监听它们。你可以获取进程的 PID。
例如,我有以下行:
tcp4 0 0 127.0.0.1.58558 *.* LISTEN 131072 131072 38143 0
38143
ps
这是进程的 PID。然后我可以用下面的方法找出它是什么:
ps -p 38143
看看,这就是我的 Battle.net:
PID TTY TIME CMD 38143 ?? 28:50.33 /Applications/Battle.net.app/Contents/Battle.net.7730/Battle.net.app/Contents/MacOS/battle.net --updatepid=38123