功能說明
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