netstat
是一个网络统计工具,用于显示网络连接、路由表、接口统计、伪装连接以及多播成员。
基本用法
netstat [OPTION]...
常用选项
- 显示所有连接
netstat -a
例子:显示所有活动的连接(包括TCP和UDP)。
- 显示监听端口
netstat -l
例子:显示所有监听的端口。
- 显示TCP连接
netstat -t
例子:显示所有TCP连接。
- 显示UDP连接
netstat -u
例子:显示所有UDP连接。
- 显示UNIX套接字
netstat -x
例子:显示所有UNIX套接字。
- 显示PID和进程名称
netstat -p
例子:显示每个连接的PID和进程名称(需要超级用户权限)。
- 显示网络接口统计信息
netstat -i
例子:显示网络接口的统计信息。
- 显示路由表
netstat -r
例子:显示内核路由表。
- 按原始格式显示地址
netstat -n
例子:不解析主机名、端口和用户,将地址信息直接显示为数字。
- 显示多播组信息
netstat -g
例子:显示多播组信息。
组合选项
- 显示监听的TCP端口
netstat -lt
- 显示监听的UDP端口
netstat -lu
- 显示监听的UNIX端口
netstat -lx
- 显示详细的TCP连接
netstat -at
- 显示详细的UDP连接
netstat -au
- 显示每个连接的PID和进程名称
sudo netstat -ap
示例
假设你想要查看当前系统上所有活动的网络连接,可以使用:
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:ipp 0.0.0.0:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN
udp 0 0 0.0.0.0:bootpc 0.0.0.0:*
高级用法
- 显示网络接口的详细信息
netstat -ie
例子:显示接口详细信息,包括物理地址和传输速率。
- 显示系统未决的网络连接
netstat -o
例子:显示未决的网络连接。
- 显示TCP/IP统计信息
netstat -s
例子:显示各种网络协议的统计信息。
- 持续显示网络状态
watch netstat -an
例子:每两秒更新一次网络连接状态。
使用 grep
过滤输出
- 显示所有监听的TCP端口
netstat -tuln | grep LISTEN
- 显示特定端口的连接
netstat -an | grep ':80'
- 显示特定IP地址的连接
netstat -an | grep '192.168.1.1'
使用 netstat
查看当前连接状态
- 查看本机的所有连接状态
netstat -an | awk '/tcp/ {print $6}' | sort | uniq -c | sort -n
- 查看所有ESTABLISHED的连接
netstat -an | grep ESTABLISHED