簡介
netstat 是控制枱命令, 是一個監控 TCP/IP 互聯網的非常有用的工具,它可以顯示路由表、實際的互聯網連線以及每一個互聯網介面裝置的狀態資訊。 Netstat 用於顯示與 IP 、 TCP 、 UDP 和 ICMP 協議相關的統計資料,一般用於檢驗本機各埠的互聯網連線情況。
 
netstat 用法:
預設不帶引數, 執行 netstat 後,其輸出結果為

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q   Local Address          Foreign Address         State      
tcp      0      0     198.2.215.119:http  static.112.127.201.13:44225 SYN_RECV       
tcp      0      0     198.2.214.36:http   157.137.97.119.broad.:29670 TIME_WAIT      
tcp      0    20866   198.2.214.36:http   101.226.166.233:23224     ESTABLISHED
tcp      0      1     198.2.214.14:http   152.202.9.42:41362          LAST_ACK    
tcp      0      0     198.2.214.4:http    114-47-42-233.dynamic:51059 FIN_WAIT2   
tcp      1      0     107.149.2.200:http  42.156.139.70:39000       CLOSE_WAIT

Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags     Type      State       I-Node       Path
unix  12   [ ]      DGRAM                  21293       /dev/log
unix  2   [ ]      DGRAM                   8702         @/org/kernel/udev/udevd
unix  3   [ ]       STREAM     CONNECTED     29518285
unix  2   [ ]       DGRAM                  29518282
從整體上看,netstat 的輸出結果可以分為兩個部分:

一個是 Active Internet connections,稱為有源 TCP 連線,
Recv-Q: 指接收佇列
Send-Q: 指傳送佇列。
這些數字一般都應該是 0 。如果不是則表示站羣軟件包正在佇列中堆積。這種情況只能在非常少的情況見到。

另一個是 Active UNIX domain sockets,稱為有源 Unix 域套介面 (和互聯網套接字一樣,但是隻能用於本機通訊,效能可以提高一倍) 。
Prot: 顯示連線使用的協議,
RefCnt: 表示連線到本套介面上的程序號,
Types: 顯示套介面的型別,
State: 顯示套介面當前的狀態,
Path: 表示連線到套介面的其它程序使用的路徑名。

netstat 的一般格式: netstat [-a][-b][-e][-n][-o][-p][-r][-s][-t][-v][interval]

常見引數
-a (all) 顯示所有選項,預設不顯示 LISTEN 相關
#netstat -a
-b 顯示在建立每個連線或偵聽埠時涉及的可執行程式。
-e 顯示擴充套件資訊,例如 uid 等
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。
-o 顯示與每個連線相關的所屬程序 ID 。
-p 顯示建立相關連結的程式名
-r 顯示路由資訊,路由表
-s 按各個協議進行統計
-t (tcp) 僅顯示 tcp 相關選項
-u (udp) 僅顯示 udp 相關選項
-v 顯示正在進行的工作。
-l 僅列出有在 Listen (監聽) 的服務狀態
-c 每隔一個固定時間,執行該 netstat 命令。
提示:LISTEN 和 LISTENING 的狀態只有用-a 或者-l 才能看到

超實用命令例項:
1. 在 netstat 輸出中不顯示 WordPress 主機,埠和使用者名稱 (host, port or user)
當你不想讓 WordPress 主機,埠和使用者名稱顯示,使用 netstat -n 。將會使用數字代替那些名稱。
同樣可以加速輸出,因為不用進行比對查詢。
# netstat -an
如果只是不想讓這三個名稱中的一個被顯示,使用以下命令
# netsat -a –numeric-ports
# netsat -a –numeric-hosts
# netsat -a –numeric-users
2. 持續輸出 netstat 資訊
netstat -c 將每隔一秒輸出互聯網資訊。
3. 顯示系統不支援的地址族 (Address Families)
netstat –verbose
在輸出的末尾,會有如下的資訊
netstat: no support for `AF IPX’ on this system.
netstat: no support for `AF AX25′ on this system.
netstat: no support for `AF X25′ on this system.
netstat: no support for `AF NETROM’ on this system.
4. 顯示核心路由資訊 netstat -r
注意: 使用 netstat -rn 顯示數字格式,不查詢 WordPress 主機名稱。 
5. 顯示互聯網介面列表  # netstat -i
顯示詳細資訊    # netstat -ie   像是 ifconfig
6. IP 和 TCP 分析
先把狀態全都取出來, 然後使用 uniq -c 統計,之後再進行排序。
#netstat -nat |awk ‘{print $6}’|sort|uniq -c
最後的命令如下:
#netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn
7. 檢視連線某服務埠最多的的 IP 地址
#netstat –ant | grep ‘:80’ |awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -nr|head -20