netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。
netstat 常见 各个参数说明如下:
选项 | 含义 |
--a | 显示所有socket,包括正在监听的。 |
-c | 每隔1秒就重新显示一遍,直到用户中断它。 |
-i | 显示所有网络接口的信息,格式同“ifconfig -e”。 |
-l | 仅列出有在 Listen (监听) 的服務状态 |
-n | 以网络IP地址代替名称,显示出网络连接情形。 |
-r | 显示核心路由表,格式同“route -e”。 |
-t | 显示TCP协议的连接情况。 |
-u | 显示UDP协议的连接情况。 |
-v | 显示正在进行的工作 |
常用命令:
显示 PID 和进程名称
netstat -pt
TCP 端口的统计信息
netstat -st
UDP 端口的统计信息
netstat -su
统计每个IP的连接数:
netstat -n | awk '/^tcp/ {print $5}' | awk -F: '{print $1}' | sort | uniq -c| sort -rn
netstat -n :以数字形式显示地址信息
awk '/^tcp/ {print $5}' :筛选以tcp开头的行,并打印5th filed.
awk -F: '{print $1}' :以冒号为字段分隔符,打印第一个字段(-F fs 指定行中分隔数据字段的字段分隔符)
uniq -c :去除重复项目,-c 进行计数
sort -rn :进行排序,-r 反向排序 -n 使用纯数字进行排序
统计数量
netstat -nat |awk '{print $6}'|sort|uniq -c
排序
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
直接统计tcp数量监听的数量
netstat -ant | wc -l
netstat 和 grep 查看服务的名称 pid 等信息
netstat -pt | grep [PID][Program name][ip(远程连接的ip)][port]
netstat 和 grep 命令连用可以查找某个端口是否存在
netstat -tunlp | grep 8120 : 查找8120端口是否存在
netstat -an | grep 8120 : 查看8120端口访问io状态