簡介
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