天天看點

Linux之netstat指令詳解

功能說明

netstat是基于Netstat這個指令行工具的指令,它可以用來查詢系統上的網絡套接字連接配接情況,包括tcp,udp以及Unix套接字;另外它還能列出路由表,接口狀态和多點傳播成員等資訊。

主要選項

關于netstat指令的選項有很多,這裡我們隻介紹常見選項,關于選項和選項的作用如下圖: 

Linux之netstat指令詳解

執行個體示範

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