netstat 命令用于显示各种网络相关信息
信息说明
执行 netstat 命令,输出的重要信息
-
Active Internet connections (w/o servers)
有源TCP连接,
Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 2 210.34.6.89:telnet 210.34.6.96:2873 ESTABLISHED tcp 296 0 210.34.6.89:1165 210.34.6.84:netbios-ssn ESTABLISHED tcp 0 0 localhost.localdom:9001 localhost.localdom:1162 ESTABLISHED tcp 0 0 localhost.localdom:1162 localhost.localdom:9001 ESTABLISHED tcp 0 80 210.34.6.89:1161 210.34.6.10:netbios-ssn CLOSE + Proto:显示连接使用的协议 + Recv-Q:接收队列 + Send-Q:发送队列
-
Active UNIX domain sockets (w/o servers)
有源Unix域套接口,只能用于本机通信,性能可以提高一倍
Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 1 [ ] STREAM CONNECTED 16178 @000000dd unix 1 [ ] STREAM CONNECTED 16176 @000000dc unix 9 [ ] DGRAM 5292 /dev/log unix 1 [ ] STREAM CONNECTED 16182 @000000df + Proto:显示连接使用的协议 + RefCnt:连接到本套接口上的进程号 + Types:套接口的类型 + State:套接口当前的状态 + Path:连接到套接口的其它进程使用的路径名
常见参数
-a:(all)显示所有选项,默认不显示LISTEN相关
-t: (tcp)仅显示tcp相关选项
-u:(udp)仅显示udp相关选项
-n:拒绝显示别名,能显示数字的全部转化成数字
-l:仅列出有在 Listen (监听) 的服務状态-p:显示建立相关链接的程序名
-r:显示路由信息,路由表
-e: 显示扩展信息,例如uid等
-s:按各个协议进行统计
-c: 每隔一个固定时间,执行该netstat命令
常用举例
# 列出所有端口 (包括监听和未监听的)
列出所有端口
netstat -a
# 列出所有 tcp/ udp 端口
netstat -at
netstat -au
# 列出所有处于监听状态的 Sockets
# 只显示监听端口
netstat -l
# 列出所有监听 tcp/ udp 端口
netstat -lt
netstat -lu
# 只列出所有监听 UNIX 端口
netstat -lx
# 显示每个协议的统计信息
# 显示所有端口的统计信息
netstat -s
# 显示 TCP 或 UDP 端口的统计信息
netstat -st
netstat -su
# 输出中显示 PID 和进程名称
netstat -p
# 找出程序运行的端口
netstat -ap | grep ssh
# 找出运行在指定端口的进程
netstat -an | grep ':80'
# 显示网络接口列表
netstat -i
# IP和TCP分析
# 查看连接某服务端口最多的的IP地址
netstat -nat | grep "192.168.1.15:22" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20
# TCP各种状态列表
netstat -nat | awk '{print $6}' | sort | uniq -c