一 命令介绍
1.1 功能
用来显示Linux系统中网络的状态信息,查看整个Linux系统的网络情况。
1.2 语法
netstat [选项] [参数]
选项
- -a:显示所有连线中的socket。
- -l:显示监控中的服务器的socket。
- -n:直接使用ip地址,而不通过域名服务器。
- -t:显示TCP传输协议的连线状况。
- -u:显示UDP传输协议的连线状况。
- -p:显示正在使用socket的程序识别码和程序名称。
- -v:显示指令执行过程。
- -V:显示版本信息。
- -A:列出该网络类型连线中的相关地址。
- -c:持续列出网络状态。
- -C:显示路由器配置的快取信息。
- -e:显示网络其他相关信息。
- -i:显示网络界面信息表单。
- -N:显示网络硬件外围设备的符号连接名称。
- -o:显示计时器。
- -r:显示路由表。
- -s:显示网络工作信息统计表。
- -w:显示RAW传输协议的连线状况。
- -x:此参数的效果和指定"-A unix"参数相同。
二 使用场景
2.1 列出所有端口
netstat -a
2.2 列出所有tcp端口
netstat -at
2.3 列出所有udp端口
netstat -au
2.4 只显示监听端口
netstat -l
2.5 只列出所有监听tcp端口
netstat -lt
2.6 只列出所有监听udp端口
netstat -lu
2.7 显示核心路由信息
netstat -r
2.8 找出程序运行的端口
netstat -ap|grep ssh
2.9 找出运行在指定端口的进程
netstat -an|grep ':80'
2.10 通过端口找进程id
netstat -anp|grep 8081 | grep LISTEN|awk '{printf $7}'|cut -d/ -f1
2.11 查看连接某服务端口最多的ip地址
netstat -ntu|grep 80|awk '{print $5}'|cut -d: -f1|awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}'|sort -nr
2.12 查看TCP各种状态列表
netstat -nt | grep -e 127.0.0.1 -e 0.0.0.0 -e ::: -v | awk '/^tcp/ {++state[$NF]} END {for(i in state) print i,"\t",state[i]}'
至此,netstat命令梳理完成。