我正在嘗試確定我的機器正在使用哪些連接埠。我在網路上找到一篇文章,列出了一個方法,如下:
$ sudo nmap -sT -O localhost
我相信這會給我一個監聽 TCP 封包的所有連接埠的清單。但是,當我輸入此命令時,我得到以下結果:
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-02 21:07 EDT
socket troubles in HostOsScan: Permission denied (13)
如果我以 sudo 身份運行,我怎麼可能缺少在我的機器上運行某些東西的權限?
我嘗試運行:
$ sudo nmap -sT localhost
並得到:
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-02 21:28 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000094s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
631/tcp open ipp
只是沒有爭論地嘗試nmap
,再次被拒絕許可!
$ sudo nmap localhost
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-03 11:05 EDT
Couldn't open a raw socket. Error: Permission denied (13)
查看nmap's
--help
選項,我發現它-O
啟用了作業系統檢測。為什麼我不應該有使用此選項的權限 - 特別是與sudo
? (註:我目前運行的是 Ubuntu 18.04 和 20.04)
(注意:接受的答案解決了我的根本問題 - 查看端口,但評論部分的答案解釋了為什麼我遇到問題nmap
。顯然,因為我安裝了snap
,所以我還需要執行:
$ sudo snap connect nmap:network-control
之前nmap
可以正常工作
答案1
如果您試圖確定您的電腦正在使用哪些端口,則無需掃描。您可以直接列出端口
netstat -nap
ss -nap
如果您不是 root,請忽略該-p
標誌。這些LISTEN
行對您來說很重要,您可以使用 過濾這些行awk
。例如
netstat -nap | awk 'NR==1 || /LISTEN/'
答案2
首先,“我正在嘗試確定我的機器正在使用哪些連接埠。”然後刪除 -O,因為您不需要知道您的本機作業系統是什麼。
可能需要更多資訊。
- 你運行什麼作業系統?也許包括哪個內核
- 您運行防火牆嗎?或 Fail2ban 或任何相關的安全服務?
- 可以安裝舊版嗎?我從 Ubuntu 儲存庫安裝的 Nmap v7.80 沒有顯示相同的問題。
- 您使用的是虛擬機器、VPS 還是託管系統?
- 這是一個乾淨的安裝,幾乎沒有安裝程式嗎?如果是這樣,您就有一個安靜的系統,沒有太多噪音,也沒有太多可檢測的內容。
- 嘗試過其他作業系統檢測 Nmap 選項嗎? --osscan-limit --osscan-guess --max-os-tries關聯
缺少偵測到的 TCP 連接埠會使作業系統偵測變得困難。作業系統偵測的工作原理是回覆 TCP 請求。這裡有更好的解釋https://nmap.org/book/osdetect-methods.html