基于这回答,我试图关闭一个开放的端口,问题是nmap
说有 5 个开放的端口,但lsof
说当前没有进程使用这些端口,所以我的问题是我该如何关闭这些端口。
这是 nmap 的输出
Nmap scan report for 192.168.0.15
Host is up (0.022s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
80/tcp open http
5000/tcp open upnp
49153/tcp open unknown
49154/tcp open unknown
50000/tcp open ibm-db2
每次我尝试时,lsof -i:port
它们什么都不打印。
我也尝试netstat -apn | grep ':port'
查看连接到端口的进程,但是没有输出。
编辑:
是的,我的电脑是192.168.0.15
。
编辑2:
我正在运行 ubuntu 16.04。我没有安装 XAMP 或任何本地服务器(也许 ubuntu 自带了其中一个?),但端口 80 可能因为 chromium 而被使用。但我不知道其他 4 个端口来自哪里,我真的很想关闭它们。
我确实通过转到192.168.0.1
->Administration->upnp->disable->save changes(在 cisco 路由器上)禁用了 upnp。但是如果我重新启动路由器,upnp 会继续启用它。如果禁用 upnp 不需要重新启动路由器,那么 nmap 会显示实际上并未打开的开放端口。更改 upnp 后,nmap 的输出相同。
答案1
如果 netstat 和 lsof(以 root 身份)报告没有进程连接到这些端口,那么除此之外您几乎无能为力。
如果 nmap 将它们报告为开放的,并且(正确地)假设 nmap 在这方面是可靠的,那么这给我们留下了一个谜团。从您的帖子来看,您的观察可能并没有错误(无意冒犯,只是排除人为错误)。
套用福尔摩斯的名言“如果我们排除一切不可能,那么剩下的,无论多么不可思议,都一定是真相”,我的理论是:
- nmap 确实找到了响应 192.168.0.15 的主机(可能是巧合,但 abc15 是 VirtualBox 用于 NATTed 客户机的默认 IP 地址)。
- 该主机不是你的 Ubuntu 系统/VM
如果这种思路是正确的,您可能需要寻找另一个具有该 IP 地址的系统,该系统可以从运行 nmap 的主机访问。运行 nmap 或 ping 后,您会在 arp 表中找到它。使用它来确认可能性。
除此之外(来自您的一条评论):使用 Chromium 不应在任何系统上以侦听模式(在任何模式下)打开端口 80。如果出于任何原因,它会在 lsof -i 或 netstat -nltp 上报告。