命令簡介
netstat(network statistics) 是一個命令行工具,它用來顯示網絡鏈接(傳入和傳出),路由表和許多網絡接口(網絡接口控制器或軟件定義的網絡接口)和網絡協議統計信息。也可用於查找網絡中的問題,打印 Linux 中網絡系統的狀態信息,查看整個 Linux 系統的網絡狀況。服務器
netstat 的使用平很廣,包括 OS X、Linux、Solaris 和 BSD,以及基於 Windows NT 的操做系統,包括 Windows XP、Windows Vista、Windows 7/8/10。網絡
語法格式
netstat { xxx } [ OPTIONS ]
選項說明
-a或--all #顯示全部的網絡鏈接信息
-A<網絡類型> #顯示該網絡類型連線中的相關地址
-c或--continuous #持續列出網絡狀態信息
-C或--cache #顯示路由器配置的快取信息
-e或--extend #顯示網絡其餘相關信息
-g或--groups #顯示多播功能羣組信息
-h或--help #打印在線幫助信息
-i或--interfaces #顯示網絡界面信息表單
-l或--listening #顯示監控中的服務器的Socket
-M或--masquerade #顯示假裝的網絡連線
-n或--numeric #直接使用ip地址
-N或--netlink #顯示網絡硬件外圍設備的符號鏈接名稱
-o或--timers #顯示計時器
-r或--route #顯示Routing Table
-s或--statistice #顯示全部端口的狀態統計信息
-t或--tcp #顯示TCP傳輸協議的鏈接狀態
-u或--udp #顯示UDP傳輸協議的鏈接狀態
-v或--verbose #顯示指令執行過程信息
-V或--version #顯示版本信息
-w或--raw #顯示RAW傳輸協議的連線情況
-x或--unix #此參數與"-A unix"參數結果相同
--ip或--inet #此參數與"-A inet"參數結果 相同
應用舉例
列出端口ssh
##列出全部端口
[root@CentOS7-1 ~]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
tcp 0 0 localhost:8125 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:dnp-sec 0.0.0.0:* LISTEN
tcp 0 52 CentOS7-1:ssh 192.168.1.93:58049 ESTABLISHED
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 localhost:smtp [::]:* LISTEN
tcp6 0 0 localhost:8125 [::]:* LISTEN
tcp6 0 0 [::]:dnp-sec [::]:* LISTEN
udp 0 0 localhost:8125 0.0.0.0:*
udp 0 0 localhost:323 0.0.0.0:*
udp6 0 0 localhost:8125 [::]:*
udp6 0 0 localhost:323 [::]:*
raw6 0 0 [::]:ipv6-icmp [::]:* 7
#列出全部tcp端口
[root@CentOS7-1 ~]# netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
tcp 0 0 localhost:8125 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:dnp-sec 0.0.0.0:* LISTEN
tcp 0 52 CentOS7-1:ssh 192.168.1.93:58049 ESTABLISHED
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 localhost:smtp [::]:* LISTEN
tcp6 0 0 localhost:8125 [::]:* LISTEN
tcp6 0 0 [::]:dnp-sec [::]:* LISTEN
#列出全部UDP端口
[root@CentOS7-1 ~]# netstat -au
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 localhost:8125 0.0.0.0:*
udp 0 0 localhost:323 0.0.0.0:*
udp6 0 0 localhost:8125 [::]:*
udp6 0 0 localhost:323 [::]:*
#列出全部處於監聽狀態的 Sockets
netstat -l #只顯示監聽端口
netstat -lt #只列出全部監聽 tcp 端口
netstat -lu #只列出全部監聽 udp 端口
netstat -lx #只列出全部監聽 UNIX 端口
#顯示每一個協議的統計信息
netstat -s #顯示全部端口的統計信息
netstat -st #顯示TCP端口的統計信息
netstat -su #顯示UDP端口的統計信息
顯示路由表信息socket
[root@CentOS7-1 www.sifuhhh.com~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default gateway 0.0.0.0 UG 0 0 0 ens33
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
[root@CentOS7-1 ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 ens33
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
顯示接口列表tcp
[root@CentOS7-1 ~]# netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33 1500 48619 0 5 0 7246 0 0 0 BMRU
lo 65536 1730 0 0 0 1730 0 0 0 LRU
分組查看各類鏈接狀態工具
[root@CentOS7-1 ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
LAST_ACK 5 (正在等待處理的請求數)
SYN_RECV 3
ESTABLISHED 10 (正常數據傳輸狀態)
FIN_WAIT2 5
TIME_WAIT 313 (處理完畢,等待超時結束的請求數)
顯示鏈接數操作系統
[root@CentOS7-1 ~]# netstat -an |grep :22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 52 192.168.1.100:22 192.168.1.93:58049 ESTABLISHED
tcp6 0 0 :::22
[root@CentOS7-1 ~]# netstat -an |grep :22 |wc -l
3
經過端口找進程ID.net
[root@CentOS7-1 ~]# netstat -anp | grep 58049
tcp 0 52 192.168.1.100:22 192.168.1.93:58049 ESTABLISHED 1350/sshd: root@pts
[root@CentOS7-1 ~]# netstat -anp | grep 58049 |grep ESTABLISHED
tcp 0 52 192.168.1.100:22 192.168.1.93:58049 ESTABLISHED 1350/sshd: root@pts
[root@CentOS7-1 ~]# netstat -anp | grep 58049 |grep ESTABLISHED |awk '{print $7}'
1350/sshd:
[root@CentOS7-1 ~]# netstat -anp | grep 58049 |grep ESTABLISHED |awk '{print $7}' |cut -d/ -f1
1350
查看鏈接某個端口最多的IP地址命令行
[root@CentOS7-1 ~]# netstat -ntu | grep :58049 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr
1 192.168.1.93
[root@CentOS7-1 ~]# netstat -ntu | grep :22 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr
1 192.168.1.93
顯示全部端口的狀態統計信息unix
[root@CentOS7-1 ~]# netstat -s
Ip:
15146 total packets received
0 forwarded
0 incoming packets discarded
15146 incoming packets delivered
3885 requests sent out
8 dropped because of missing route
Icmp:
4 ICMP messages received
0 input ICMP message failed.
ICMP input histogram:
destination unreachable: 4
44 ICMP messages sent
0 ICMP messages failed
ICMP output histogram:
destination unreachable: 44
IcmpMsg:
InType3: 4
OutType3: 44
Tcp:
863 active connections openings
1 passive connection openings
858 failed connection attempts
0 connection resets received
1 connections established
5021 segments received
3772 segments send out
0 segments retransmited
0 bad segments received.
858 resets sent
Udp:
200 packets received
44 packets to unknown port received.
0 packet receive errors
246 packets sent
0 receive buffer errors
0 send buffer errors
UdpLite:
TcpExt:
1 TCP sockets finished time wait in fast timer
35 delayed acks sent
1 packets directly queued to recvmsg prequeue.
1362 packet headers predicted
438 acknowledgments not containing data payload received
1160 predicted acknowledgments
TCPRcvCoalesce: 9
TCPOrigDataSent: 1719
IpExt:
InBcastPkts: 10042
InOctets: 4159848
OutOctets: 329931
InBcastOctets: 3778680
InNoECTPkts: 15150
顯示多播組信息
[root@CentOS7-1 ~]# netstat -g IPv6/IPv4 Group Memberships Interface RefCnt Group --------------- ------ --------------------- lo 1 all-systems.mcast.net ens33 1 all-systems.mcast.net lo 1 ff02::1 lo 1 ff01::1 ens33 1 ff02::1:ff4e:26b0 ens33 1 ff02::1:ff01:b5bb ens33 1 ff02::1