热门问题
时间线
聊天
视角
netstat
命令行工具 来自维基百科,自由的百科全书
Remove ads
netstat
是一個基於命令列介面的網路實用工具,可顯示當前的網路狀態,包括傳輸控制協定層的連線狀況、路由表、網路介面狀態和網路協定的統計訊息等[1]。netstat
命令適用於類Unix系統(如macOS、Linux、Solaris和BSD)、IBM OS/2和Windows NT作業系統家族(如Windows XP、Windows Vista、Windows 7、Windows 8和Windows 10)[2][3]。
netstat
可用於尋找網路中的問題,並可通過計算網路流量來度量網路效能[4][5]。儘管該工具仍然被包含在許多Linux發行版中,但基本都被看作過時、應被替代的工具[6][7][8][9]。
在Linux上,推薦使用ss
替代netstat
,使用ip route
替代netstat -r
,使用ip -s link
替代netstat -i
,使用ip maddr
替代netstat -g
[10][11][12][13]。
Remove ads
命令參數
命令netstat
的參數必須以連字元(-)而非斜槓(/)為字首。並非所有平台都支援某些參數[1]。
Remove ads
統計訊息
- Proto:網路協定,包括傳輸控制協定(TCP)和使用者資料報協定(UDP)[26]。
- Local Address:本地電腦的IP位址和正在使用的埠號。除非使用-n參數,否則將顯示與IP位址和埠對應的主機名稱。如果主機正在偵聽所有埠,則主機名顯示為星號(*)。如果埠尚未建立,則埠號顯示為星號[27]。
- Foreign Address:遠端電腦的IP位址和正在使用的埠號。除非指定了-n參數,否則將顯示與IP位址和埠對應的主機名稱。如果埠尚未建立,則埠號顯示為星號(*)[28]。
- State:TCP連接的狀態,可能的狀態包括CLOSE_WAIT、CLOSED、ESTABLISHED、FIN_WAIT_1、FIN_WAIT_2、LAST_ACK、LISTEN、SYN_RECEIVED、SYN_SEND和TIME_WAIT[29]。
命令範例

要僅顯示TCP或UDP協定的統計訊息,請鍵入以下命令之一[30]:
netstat -sp tcp
netstat -sp udp
- 顯示行程ID為「pid」的行程打開的所有埠:
netstat -aop | grep "pid"
- 持續更新活動中的TCP和UDP連接,但主機位址和埠號以數字形式表示,並顯示哪些行程正在使用這些連接:
sudo netstat -nutpacw
- 顯示活動的TCP連接和關聯的行程ID,每5秒為一個更新周期(僅適用於基於Windows NT的作業系統或裝有修補程式的Windows 2000):
netstat -o 5
- 顯示活動中的TCP連接和關聯的行程ID,但主機位址和埠號以數字形式表示(僅適用於基於Windows NT的作業系統或裝有修補程式的Windows 2000):
netstat -no
應用(類UNIX系統)
Remove ads
在netstat
命令的輸出結果中,星號(*)為萬用字元,表示「所有」[33][34]。
例如:
....Local Address Foreign Address State
... *:smtp *:* LISTEN
在輸出結果中,*:smtp
表示該行程正在本地電腦的所有網路介面上監聽所有對映為SMTP的埠,此處的星號有時會被0.0.0.0代替,意義不改變。*:*
中的第一個星號表示連接可以來自任何IP位址,第二個星號表示連接可以來自遠端電腦上的任何埠[25][33][34][35]。
參考文獻
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads