netstat命令用於顯示網路相關資訊,例如網路連線資訊,路由表資訊,埠占用情況等,下面介紹netstat的具體用法。
1.顯示所有連線資訊
-a 選項用於顯示全部連線資訊:
# netstat -a | more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:sunrpc *:* LISTEN udp 0 0 *:sunrpc *:* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 7697 private/error
注意這裡所說的“連線資訊”包括基於tcp/udp的連線,也包括 Unix domain socket 資訊,既包含已建立連線資訊,也包括監聽狀態的埠資訊。 -at 選項用於僅顯示tcp相關連線,-au 選項用於僅顯示udp相關連線。
2.顯示監聽狀態的埠
-l 選項用於顯示監聽(listening)狀態的埠:
# netstat -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:sunrpc *:* LISTEN udp 0 0 *:qmqp *:* Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 7697 private/error
同樣,增加 t或u 將僅針對 tcp或udp 顯示。
3.顯示連線相關程式名和pid
我們檢視某連線資訊或某埠狀態時,如果能檢視到建立該連線或佔用該埠的程式,這將非常有用,-p 選項完成該功能:
# netstat -pt Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 bogon:ssh bogon:49792 ESTABLISHED 4211/1
4.檢視某特定埠被哪個程式佔用
檢視某埠是否被佔用,這是經常遇到的情形,可用以下方法查詢:
# netstat -an | grep ':22' tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 192.168.1.101:22 192.168.1.100:49792 ESTABLISHED tcp 0 0 :::22
反過來,我們也可以查詢某程式佔用了哪些埠:
# netstat -ap | grep ssh tcp 0 0 *:ssh *:* LISTEN 2792/sshd tcp 0 0 bogon:ssh bogon:49792 ESTABLISHED 4211/1 tcp 0 0 *:ssh *:* LISTEN 2792/sshd
5.不作域名和埠名解析
以上我們用到了 -n 選項,其指示資訊顯示時不作域名和埠名解析。在/etc/hosts等檔案中我們可以指定某ip對應某域名(如192.168.1.100對應bangerlee),若不使用 -n 選項,相應的連線條目將顯示 'bangerlee',而加了 -n 選項則顯示ip地址;對於周知埠,netstat預設顯示周知埠對應的服務,如22號埠為ssh,-n 選項指示netstat顯示埠號。
6.顯示路由表資訊
使用 -r 選項顯示路由表資訊,與route命令顯示結果類似:
# netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface bogon * 255.255.255.0 U 0 0 0 wlan0 loopback * 255.0.0.0 U 0 0 0 lo default bogon 0.0.0.0 UG 0 0 0 wlan0
7.顯示網口資訊
netstat還是用於顯示網口資訊:
# netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 0 0 0 0 0 0 0 0 BMU lo 16436 0 6 0 0 0 6 0 0 0 LRU wlan0 1500 0 29250 0 0 0 3485 0 0 0 BMRU
netstat -ie 將資訊網口的詳細資訊,與ifconfig命令結果類似。
8.針對網路協議顯示統計資訊
-s 選項用於顯示各網路協議相關統計資訊:
# netstat -s Ip: 26700 total packets received 3 with invalid addresses 0 forwarded 0 incoming packets discarded 10844 incoming packets delivered 3392 requests sent out Tcp: 33 active connections openings 1 passive connection openings 3 failed connection attempts 0 connection resets received 1 connections established 3171 segments received 3153 segments send out 7 segments retransmited 0 bad segments received. 3 resets sent Udp: 150 packets received 107 packets to unknown port received.
……
Reference: UNIX/Linux: 10 Netstat Command Examples