題 沒有附加過程的關閉端口?


基於 這個 回答,我試圖關閉一個開放的端口,問題是 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

EDIT2:

我正在運行ubuntu 16.04。我沒有安裝XAMP或任何本地服務器(也許ubuntu附帶其中一個?),但是由於chrome,可能會使用端口80。但我不知道其他4個端口來自哪裡,我真的想關閉它們。

我確實通過去禁用upnp 192.168.0.1 - >管理 - > upnp-> disable->保存更改(在cisco路由器上)。但是,如果我重新啟動路由器upnp繼續啟用它。如果要禁用upnp,則不需要重新啟動路由器,那麼nmap會顯示未真正打開的開放端口。更改upnp後,nmap的輸出相同。


5
2018-06-22 00:03


起源


你有一個upnp的路由器,禁用upnp,然後再次執行掃描。 - Ramhound
你跑了嗎? lsof -i:port 以root命令?如果Apache httpd進程正在偵聽端口80,但您運行了該命令 lsof -i:80 如果Apache是​​在自己的帳戶而不是您的用戶帳戶下運行,那麼從您的用戶帳戶中,您將看不到任何輸出。 - moonpoint
@moonpoint是的,我把它們視為root。 - Garmekain
你確定這些端口真的是開放的嗎?它不僅僅是nmap的表現嗎?嘗試使用telnet連接到指定的端口,看看它是否有效。這是驗證TCP端口是否接受傳入連接的簡單方法。 - Guillaume Boudreau
您可以專門阻止路由器中的這些端口。 - harrymc


答案:


如果netstat&lsof(作為root)報告沒有附加到這些端口的進程,那麼除此之外你幾乎無法做到。

如果nmap將它們報告為打開並且(正確地)假設nmap在此是可靠的,那麼它在我們的手上留下了一個謎。從你的帖子中看來,你的觀察中也可能沒有犯錯誤(沒有冒犯,只是排除了人為錯誤)。

應用夏洛克·福爾摩斯的格言“如果我們消除不可能的事物,無論剩下什麼,無論多麼不可能,都必須是真理”,我會理所當然地說:

  • nmap確實找到了響應192.168.0.15的主機(可能是巧合,但是a.b.c.15是VirtualBox為NATTed來賓使用的默認IP地址)。
  • 該主機不是您的Ubuntu系統/ VM

如果這種思路正確,您可能希望尋找具有該IP地址的另一個系統,該IP地址可以從運行nmap的主機訪問。運行nmap或ping後,您將立即在arp表中找到它。用它來確認可能性。

除此之外(來自您的一條評論):使用Chromium不應該在任何系統上以偵聽模式(在任何模式下)打開端口80。如果是,出於任何原因,它將在lsof -i或netstat -nltp上報告。


2
2018-06-28 16:20



我再次檢查過,我不記得我重置了路由器,因此我的設備的本地IP發生了變化,所以是的,192.168.0.15是 不 我的電腦,它實際上是一個放大器,有wifi(誰知道?)。這是通過telneting客戶端檢查的,在服務器信息中我看到的是放大器的模型(谷歌搜索它)。但是,感謝您的這種富有洞察力的回應。 - Garmekain
很高興能得到幫助。有時故障排除可能非常令人煩惱。每個小提示都有幫助。 :) - Sas3