Linux中的netstat命令詳解


功能說明

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


主要選項

關於netstat命令的選項有很多,這里我們只介紹常見選項,關於選項和選項的作用如下圖: 
這里寫圖片描述


實例演示

netstat -a 

這條命令會列出所有的端口,包括監聽的和未監聽的。


netstat -t

列出所有的tcp協議的端口,結果如下:

[root@bogon Test2017_3_7]# netstat -at Active 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 

 

netstat -ua

同樣,這條命令表示列出所有的UDP協議的端口。


找出程序運行的端口

netstat -ap | grep '程序名'

例如:

[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/lzh 

 

找出端口的程序名

netstat -ap | grep '端口號'

例如:

[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 

 

禁止域名解析 
這個主要netstat中的-n選項有關,我們先來看看不帶n時所輸出的結果。

[root@bogon Test2017_3_7]# netstat -ltp Active 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 

下面我們再來看看加上n 選項后的輸入結果。

[root@bogon Test2017_3_7]# netstat -nltp Active 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 

我們發現在local address 即主機地址這一欄中,如果沒有帶n選項,會將套接字所對應的域名解析出來,如果加上n選項,那么就不會顯示,即禁止域名解析的功能,這樣做有助於提高查詢速度,因為減少了對主機域名的查詢。


持續輸出netstat信息

這個沒有什么好說的,大家自己試一試指令即可。

netstat -c**

 

顯示路由表的信息

netstat -r

這條指令相當於route指令,會輸出核心路由信息。

[root@bogon Test2017_3_7]# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.3.1 0.0.0.0 UG 0 0 0 eth0 

 

顯示接口信息

netstat -i
root@bogon Test2017_3_7]# 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 5277 0 0 0 578 0 0 0 BMRU lo 16436 0 820 0 0 0 820 0 0 0 LRU 

分類統計各個協議的相關信息

netstat -sa


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM