当和端口、socket连接等相关的时候netstat会很好地辅助解决问题,遇到的使用方法如下所示:
netstat显示和网络相关的统计信息,比如socket、tcp、udp、路由等相关统计信息。
1)列出所有监听端口,即状态为LISTEN状体的端口
#netstat -l
显示信息会有
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
Active Unix domain sockets (only servers)
Proto RefCnt Flags Type State I-Node Path
2)列出所有监听TCP端口
#netstat -tl 注:t表示tcp协议,l表示LISTEN或者LISTENING监听状态
3)列出所有监听UDP端口
#netstat -ul 注:u表示upd协议
4)只列出所有监听Unix端口
#netstat -xl 注:x表示unix
5)统计所有端口的信息
#netstat -s 注:s表示statistics统计
会包含所有协议的统计信息
Ip、Icmp、IcmpMsg、Tcp、Udp、UdpLite、TcpExt、IpExit
6)显示tcp协议端口的统计信息
#netstat -st
7)显示udp协议端口的统计信息
#netstat -us
8)显示tcp协议在端口10050上运行的程序/进程号
#netstat -ntp | grep ":10050" 注:-n表示所有能用数字显示的全部用数字表示,如Local Address、Foreign Address
注:-p 增加"PID/Program name"显示字段在输出信息中
9)显示tcp端口10050上运行的进程数
#netstat -ntp | grep ":10050" | grep -v "grep" | wc -l
注:一定要有n选项、t表示tcp协议、p表示显示字段增加"PID/Program name"可以看到具体的进程或者程序名
10)找出运行在10050端口上的所有程序
#netstat -an | grep ":10050" | grep -v "grep" 注:-a表示把所有的都显示出来
11)找出a.out程序运行的端口号
#netstat -anp | grep "a.out"
12)显示udp端口的使用情况
#netstat -aunp
13)显示tcp端口的使用情况
#netstat -atnp
14)显示所有端口的使用情况
#netstat -anp
15)显示网卡列表
#netstat -i
16)显示组播组的关系
#netstat -g
17)显示所有网络统计信息(所有协议的)
#netstat -s
18)显示监听的套接口
#netstat -l 注:LISTEN或者LISTENING,注:一定不要加a
19)显示所有自己建立的有效连接
#netstat -n 注:不能使用netstat -an,不能使用netstat -l
因为:netstat 默认不显示状态为LISTEN和LISTENING的套接口,所以netstat -n显示的是所有已经建立的有效连接
20)显示路由表
#netstat -r
21)统计服务器中网络连接各个状态个数
#netstat -an | awk '/^tcp/{++S[$NF]} END {for(a in S) print a, S[a]}'
输出:
ESTABLISHED 18
LISTEN 30
TIME_WAIT 19
CLOSE_WAIT 1
22)统计服务器中网络连接各个状态的个数
#netstat -ant | awk '{print $6}' | sort | uniq -c
输出:
18 ESTABLISHED
30 LISTEN
19 TIME_WAIT
1 CLOSE_WAIT
23)查看连接某个服务端口最多的IP地址
#netstat -ant | grep "1.2.3.4:10050" | awk '{print $6}' | awk -F:'{print $4}' | sort | uniq -c | sort -nr | head -20
(END)