如何在Mac上使用Netstat命令

macOS上的netstat命令是一個終端命令,用於顯示有關Mac網絡通信的詳細信息。網絡通信包括Mac通過所有端口和所有應用程序與外界進行交流的所有方式。掌握netstat可以幫助您瞭解計算機之間的連接以及原因。

16084427_1c905bace7.png

運行Netstat

默認情況下,netstat命令在Mac上可用。您不需要下載或安裝它。

要運行netstat,請在“ 應用程序” >“ 實用程序” >“ 終端”中打開“終端”窗口。類型netstat的,然後按Enter鍵執行命令。

屏幕上會滾動滾動顯示大量隱祕文本。這是正常現象,是預期的。如果您不使用任何可用標誌(請參見下文),netstat將報告Mac上所有活動的網絡連接。考慮到現代網絡設備執行的功能數量,您可以期望列表很長。標準的netstat報告可以運行超過1000行。

過濾netstat的輸出對於瞭解Mac的活動端口上發生的情況至關重要。它的內置標誌允許您設置選項,限制netstat的範圍和輸出。

Netstat標誌和選項

要查看netstat的所有可用選項,請在命令提示符下鍵入man netstat

注:“ Man”是“ manual”的縮寫。

句法

要將標誌和選項添加到netstat,請使用以下語法:

netstat [-AabdgiLlmnqrRsSvWx] [-c queue] [-f address_family] [-I interface] [-p protocol] [-w wait]

有用的標誌

以下是一些最常用的標誌:

-a在netstat的輸出中包括服務器端口,這些端口不包括在默認輸出中。

-g顯示與多播連接相關的信息。

-I 接口提供指定接口的數據包數據。可以使用-i標誌查看所有可用接口,但是en0通常是默認的傳出網絡接口。(請注意小寫字母。)

-n禁止使用名稱標記遠程地址。這大大提高了netstat的輸出速度,同時只犧牲了有限的信息。

-p 協議列出與特定網絡協議關聯的流量。完整的協議列表位於/ etc / protocols,但是最重要的協議是udp和tcp。

-r顯示路由表,展示了數據包的路由在網絡。

-s顯示所有協議的網絡統計信息,無論它們是否處於活動狀態。

-v增加詳細程度,特別是通過添加一列來顯示與每個打開的端口關聯的進程ID(PID)。

Netstat示例

考慮以下示例:

netstat -apv TCP

此命令僅返回Mac上的TCP連接,包括打開的端口和活動的端口。它還使用詳細輸出,列出與每個連接關聯的PID。

netstat -a | grep -i "listen"

netstatgrep的這種組合揭示了開放端口-正在偵聽消息的端口。管道字符將一個命令的輸出發送到另一命令。在這裏,netstat的輸出通過管道傳遞到grep,使您可以在其中搜索關鍵字“ listen”並找到結果。

通過網絡實用程序訪問Netstat

您還可以通過Network Utility應用程序訪問系統中某些netstat的功能,方法是:系統 >  > CoreServices > 應用程序

單擊Netstat選項卡以訪問netstat的圖形界面。16084816_53c5a429ce.png

與通過命令行可用的選項相比,Network Utility中的選項受限制得多。四個單選按鈕選擇中的每一個都只需運行預設的netstat命令並顯示輸出。

每個單選按鈕的netstat命令如下:

顯示路由表信息運行netstat -r

顯示運行netstat -s的每個協議的全面網絡統計信息

顯示多播信息運行netstat -g

顯示所有當前運行netstat的套接字連接的狀態16084844_68fcb1f024.png

用Lsof補充Netstat

netstat的macOS實現未包含用戶期望和需要的許多功能。儘管netstat有其用途,但它在macOS上的作用遠不如在Windows上有用。不同的命令lsof代替了許多缺少的功能。

Lsof顯示當前在任何應用程序中打開的所有文件。您還可以使用它來檢查與應用程序關聯的打開的端口。運行lsof -i,您將看到所有通過Internet通信的應用程序的列表。在Windows計算機上使用netstat時,這通常是目標。但是,在macOS上完成該任務的唯一有意義的方法不是使用netstat,而是使用lsof16084921_130a70a1d2.png

Lsof標誌和選項

顯示每個打開的文件或互聯網連接通常非常繁瑣。這就是lsof帶有用於限制特定條件下的結果的標誌的原因。最重要的是下面。

-i顯示所有打開的網絡連接以及正在使用該連接的進程的名稱。在-i4中添加4,將僅顯示IPv4連接。相反,添加6(-i6)將僅顯示IPv6連接。

該-i標誌也可以擴展到指定的進一步細節。-iTCP或-iUDP將僅返回TCP和UDP連接。-iTCP:25將僅在端口25上返回TCP連接。一系列端口可以用破折號指定-iTCP:25-50。

使用[email protected]將僅返回到IPv4地址1.2.3.4的連接。可以以相同的方式指定IPv6地址。@前體也可以以相同的方式用於指定主機名,但是不能同時使用遠程IP地址和主機名。

-s通常強制lsof顯示文件大小。但是,當與-i標誌配對時,-s的工作方式有所不同。相反,它允許用戶指定要返回的命令的協議和狀態。

-p將lsof限制爲特定的進程ID(PID)。可以使用-p 123,456,789等通用設置多個PID。進程ID也可以用^來排除,如123,^ 456所示,它專門排除PID 456。

-P禁用端口號到端口名的轉換,從而加快了輸出速度。

-n禁止將網絡號轉換爲主機名。與上面的-P一起使用時,它可以顯着加快lsof的輸出。

- ü 用戶只返回被命名爲用戶所擁有的命令。

lsof示例

這是使用lsof的幾種方法。

lsof -nP [email protected]:513

這個看起來複雜的命令列出了所有主機名爲lsof.itap和端口513的TCP連接它還運行lsof而不將名稱連接到IP地址和端口,從而使該命令的運行速度明顯加快。

lsof -iTCP -sTCP:LISTEN

這將返回狀態爲LISTEN的每個TCP連接,顯示Mac上所有打開的TCP端口。它還列出了與那些打開的端口關聯的進程。這是對netstat的重大升級,netstat最多列出PID。

16085050_befb3e9333.png

sudo lsof -i -u^$(whoami)

這將返回當前登錄用戶擁有的所有連接。此命令與其他命令略有不同。

尖號(^)用於求反。插入符號後與文本匹配的所有內容將從結果中刪除。通過在lsof命令中運行whoami $()包圍,使lsof以文本形式訪問其輸出,從而獲得當前登錄用戶的名稱。使用sudo運行可讓您查看不屬於您的任務。在不使用sudo的情況下運行此命令將返回一個空列表。16085126_0a87d8e93d.png

其他網絡命令

其他可能需要檢查網絡的終端聯網命令包括arp,ping和ipconfig。更多Mac軟件 https://www.macjb.com/ Mac金幣歡迎您訪問。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章