功能說明
netstat是基于Netstat這個指令行工具的指令,它可以用來查詢系統上的網絡套接字連接配接情況,包括tcp,udp以及Unix套接字;另外它還能列出路由表,接口狀态和多點傳播成員等資訊。
主要選項
關于netstat指令的選項有很多,這裡我們隻介紹常見選項,關于選項和選項的作用如下圖:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0NXYFhGd192UvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1mWyIWeGdlWz5kMYBDbtlldRhlW1VTaitmTzkVdjJjYzpkMMZ3bENGMShUYvwFd4VGdvwlMvw1ayFWbyVGdhd3P4AzN0QzN1YTM4AzMwcTMwIzLcRXZu5ibkN3Yuc2bsJmLn1Wavw1LcpDc0RHaiojIsJye.jpg)
執行個體示範
netstat -a 1
這條指令會列出所有的端口,包括監聽的和未監聽的。
netstat -t1
列出所有的tcp協定的端口,結果如下:
[root@bogon Test2017_3_7]# netstat -atActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:1024 *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost:ipp *:* LISTEN tcp 0 0 localhost:smtp *:* LISTEN tcp 0 0 localhost:40312 localhost:1024 ESTABLISHED tcp 0 0 localhost:1024 localhost:40312 ESTABLISHED tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost:ipp *:* LISTEN tcp 0 0 localhost:smtp *:* LISTEN 123456789101112
netstat -ua1
同樣,這條指令表示列出所有的UDP協定的端口。
找出程式運作的端口
netstat -ap | grep '程式名'1
例如:
[root@bogon Test2017_3_7]# netstat -ap | grep './server'tcp 0 0 localhost:1024 *:* LISTEN 6130/./server
tcp 0 0 localhost:1024 localhost:40312 ESTABLISHED 6130/./server
You have new mail in /var/spool/mail/lzh12345
找出端口的程式名
netstat -ap | grep '端口号'1
[root@bogon Test2017_3_7]# netstat -ap | grep '1024'tcp 0 0 localhost:1024 *:* LISTEN 6130/./server tcp 0 0 localhost:40312 localhost:1024 ESTABLISHED 6323/./client tcp 0 0 localhost:1024 localhost:40312 ESTABLISHED 6130/./server 1234
禁止域名解析
這個主要netstat中的-n選項有關,我們先來看看不帶n時所輸出的結果。
[root@bogon Test2017_3_7]# netstat -ltpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost:1024 *:* LISTEN 6130/./server
tcp 0 0 *:ssh *:* LISTEN 1800/sshd
tcp 0 0 localhost:ipp *:* LISTEN 1690/cupsd
tcp 0 0 localhost:smtp *:* LISTEN 1925/master
tcp 0 0 *:ssh *:* LISTEN 1800/sshd
tcp 0 0 localhost:ipp *:* LISTEN 1690/cupsd
tcp 0 0 localhost:smtp *:* LISTEN 1925/master 12345678910
下面我們再來看看加上n 選項後的輸入結果。
[root@bogon Test2017_3_7]# netstat -nltpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:1024 0.0.0.0:* LISTEN 6130/./server
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1800/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1690/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1925/master
tcp 0 0 :::22 :::* LISTEN 1800/sshd
tcp 0 0 ::1:631 :::* LISTEN 1690/cupsd
tcp 0 0 ::1:25 :::* LISTEN 1925/master
1234567891011
我們發現在local address 即主機位址這一欄中,如果沒有帶n選項,會将套接字所對應的域名解析出來,如果加上n選項,那麼就不會顯示,即禁止域名解析的功能,這樣做有助于提高查詢速度,因為減少了對主機域名的查詢。
持續輸出netstat資訊
這個沒有什麼好說的,大家自己試一試指令即可。
netstat -c**1
顯示路由表的資訊
netstat -r1
這條指令相當于route指令,會輸出核心路由資訊。
[root@bogon Test2017_3_7]# netstat -nrKernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth00.0.0.0 192.168.3.1 0.0.0.0 UG 0 0 0 eth0123456
netstat -i1
root@bogon Test2017_3_7]# netstat -iKernel Interface tableIface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flgeth0 1500 0 5277 0 0 0 578 0 0 0 BMRUlo 16436 0 820 0 0 0 820 0 0 0 LRU123456
netstat -sa1