通過示例學習使用 netstat

Shusain發表於2017-12-11

netstat 是一個告訴我們系統中所有 tcp/udp/unix socket 連線狀態的命令列工具。它會列出所有已經連線或者等待連線狀態的連線。 該工具在識別某個應用監聽哪個埠時特別有用,我們也能用它來判斷某個應用是否正常的在監聽某個埠。

netstat 命令還能顯示其它各種各樣的網路相關資訊,例如路由表, 網路卡統計資訊, 虛假連線以及多播成員等。

本文中,我們會通過幾個例子來學習 netstat。

(推薦閱讀: 通過示例學習使用 CURL 命令 )

1 - 檢查所有的連線

使用 a 選項可以列出系統中的所有連線,

$ netstat -a

這會顯示系統所有的 tcp、udp 以及 unix 連線。

2 - 檢查所有的 tcp/udp/unix socket 連線

使用 t 選項只列出 tcp 連線,

$ netstat -at

類似的,使用 u 選項只列出 udp 連線,

$ netstat -au

使用 x 選項只列出 Unix socket 連線,

$ netstat -ax

3 - 同時列出程式 ID/程式名稱

使用 p 選項可以在列出連線的同時也顯示 PID 或者程式名稱,而且它還能與其他選項連用,

$ netstat -ap

4 - 列出埠號而不是服務名

使用 n 選項可以加快輸出,它不會執行任何反向查詢(LCTT 譯註:這裡原文有誤),而是直接輸出數字。 由於無需查詢,因此結果輸出會快很多。

$ netstat -an

5 - 只輸出監聽埠

使用 l 選項只輸出監聽埠。它不能與 a 選項連用,因為 a 會輸出所有埠,

$ netstat -l

6 - 輸出網路狀態

使用 s 選項輸出每個協議的統計資訊,包括接收/傳送的包數量,

$ netstat -s

7 - 輸出網路卡狀態

使用 I 選項只顯示網路卡的統計資訊,

$ netstat -i

8 - 顯示多播組multicast group資訊

使用 g 選項輸出 IPV4 以及 IPV6 的多播組資訊,

$ netstat -g

9 - 顯示網路路由資訊

使用 r 輸出網路路由資訊,

$ netstat -r

10 - 持續輸出

使用 c 選項持續輸出結果

$ netstat -c

11 - 過濾出某個埠

grep 連用來過濾出某個埠的連線,

$ netstat -anp | grep 3306

12 - 統計連線個數

通過與 wcgrep 命令連用,可以統計指定埠的連線數量

$ netstat -anp | grep 3306 | wc -l

這會輸出 mysql 服務埠(即 3306)的連線數。

這就是我們簡短的案例指南了,希望它帶給你的資訊量足夠。 有任何疑問歡迎提出。


via: http://linuxtechlab.com/learn-use-netstat-with-examples/

作者:Shusain 譯者:lujun9972 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章