有時您可能會發現自己處於這樣一種情況,即您正在尋找在 Mac 上處於偵聽狀態的打開的 TCP 連接。無論您是要解決特定的網絡問題,還是只是想確定哪些進程正在偵聽 Mac 上的特定端口,這都非常有用。
我們將使用命令行 lsof 工具來找出什麼/who is listen on open TCP connections on a Mac,使其最適合熟悉終端和 sudo 的高級 Mac 用戶。
如何在 MacOS 上查找在 TCP 端口上偵聽的內容
我們將在此處使用的命令針對 MacOS Ventura 和 MacOS Monterey,但也適用於較舊的 MacOS 版本:
從/Applications/Utilities/或通過 Spotlight 使用命令打開“終端”應用程序+Spacebar 鍵入以下命令:
sudo lsof-iTCP-sTCP:LISTEN-P-n
在請求執行命令時按回車鍵並使用管理員密碼,並查看正在監聽的列表Mac 上的 TCP 端口
您將看到命令/進程列表、進程 ID (PID)、類型(IPv6 與 IPv4)、設備、節點(在本例中為 TCP)和端口。
根據這些信息,您可以根據您的目標確定下一步。
對於那些好奇的人,讓我們分解這裡使用的命令和各種標誌:
sudo:以超級用戶權限運行命令,允許它顯示所有用戶打開的網絡連接,包括 root。 lsof:列出系統上所有打開的文件,包括打開的網絡連接。-iTCP:過濾結果以僅顯示 TCP 連接。-sTCP:LISTEN:過濾結果以僅顯示監聽的 TCP 連接。-P:禁用端口名稱解析,只顯示端口號。-n:禁用主機名解析,只顯示IP地址。
lsof 命令非常強大,在確定哪些應用程序或進程正在與特定文件交互、查找哪些進程正在使用互聯網連接、顯示打開的網絡連接、監聽所有打開的互聯網連接之前,我們已經介紹了它的用法,和更多。
順便說一句,如果您更喜歡 GUI,可以試用 Sloth 應用程序,它基本上是 lsof 的 GUI 前端,可以免費下載,並且 Activity Monitor 對類似功能的支持有限好吧。
您是否有任何類似的技巧、命令或工具可用於查找什麼或誰在 Mac 上偵聽任何給定的 TCP 端口?在下面的評論中讓我們知道。