如何在Mac上使用Netstat命令

macOS上的netstat命令是一個終端命令,用於顯示有關Mac網絡通訊的詳細信息。網絡通訊包括Mac經過全部端口和全部應用程序與外界進行交流的全部方式。掌握netstat能夠幫助您瞭解計算機之間的鏈接以及緣由。服務器

運行Netstat網絡

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

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

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

過濾netstat的輸出對於瞭解Mac的活動端口上發生的狀況相當重要。它的內置標誌容許您設置選項,限制netstat的範圍和輸出。3d

Netstat標誌和選項blog

要查看netstat的全部可用選項,請在命令提示符下鍵入man netstat接口

注:「 Man」是「 manual」的縮寫。進程

句法ip

要將標誌和選項添加到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的圖形界面。

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

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

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

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

顯示多播信息運行netstat -g

顯示全部當前運行netstat的套接字鏈接的狀態

用Lsof補充Netstat

netstat的macOS實現未包含用戶指望和須要的許多功能。儘管netstat有其用途,但它在macOS上的做用遠不如在Windows上有用。不一樣的命令lsof代替了許多缺乏的功能。

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

Lsof標誌和選項

顯示每一個打開的文件或互聯網鏈接一般很是繁瑣。這就是lsof帶有用於限制特定條件下的結果的標誌的緣由。最重要的是下面。

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

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

使用-i@1.2.3.4將僅返回到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 -iTCP@lsof.itap:513

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

lsof -iTCP -sTCP:LISTEN

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

sudo lsof -i -u^$(whoami)

這將返回當前登陸用戶_不_擁有的全部鏈接。此命令與其餘命令略有不一樣。

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

其餘網絡命令

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

相關文章
相關標籤/搜索