netstat是network statistics的缩写,其功能是显示各种网络相关统计信息,例如网络连接状态、路由表信息、接口状态、NAT、多播成员等。通用于Linux和Windows。
netstat命令的语法格式如下:
netstat 选项
常用选项如下:
选项 | 含义 |
-a |
显示所有连接中的接口信息 |
-n |
直接使用IP地址,而不是域名 |
-N |
解析硬件名称 |
-c |
持续显示网络状态 |
-o |
显示计时器 |
-C |
显示路由缓存信息 |
-p |
显示套接字PID/程序名 |
-F |
显示转发信息库 |
-r |
显示路由表信息 |
-g |
显示多重广播功能群组成员名单 |
-s |
显示网络统计信息 |
-h |
显示帮助信息 |
-t |
显示TCP传输协议的连线状态 |
-u |
显示UDP传输协议的连线状态 |
-i |
显示网络接口列表 |
实例演示
1、显示所有tcp连接信息,用IP地址显示。
[root@node1 ~]# netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 80 218.0.0.44:22 172.16.227.32:59327 ESTABLISHED
tcp 0 0 218.0.0.44:22 172.16.227.32:59328 ESTABLISHED
2、显示所有UDP连接端口及其PID
[root@node1 ~]# netstat -anup
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 192.168.122.1:53 0.0.0.0:* 1760/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 1760/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 1337/dhclient
udp 0 0 0.0.0.0:111 0.0.0.0:* 699/rpcbind
udp 0 0 127.0.0.1:323 0.0.0.0:* 908/chronyd
udp 0 0 0.0.0.0:60373 0.0.0.0:* 699/rpcbind
udp6 0 0 :::111 :::* 699/rpcbind
udp6 0 0 ::1:323 :::* 908/chronyd
udp6 0 0 :::58376 :::* 699/rpcbind
3、查看所有网络接口
[root@node1 ~]# netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
br-d67ee7767f0e 1500 5338 0 0 0 5437 0 0 0 BMRU
docker0 1500 3111 0 0 0 2610 0 0 0 BMU
enp4s3 1500 660990 0 0 0 390418 0 0 0 BMRU
lo 65536 974 0 0 0 974 0 0 0 LRU
4、显示所有路由表
[root@node1 ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default _gateway 0.0.0.0 UG 0 0 0 enp4s3
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
218.0.0.32 0.0.0.0 255.255.255.224 U 0 0 0 enp4s3
5、查看正在监听80端口的所有TCP连接
[root@node1 ~]# netstat -antlp | grep 80
tcp6 0 0 :::80 :::* LISTEN 163183/docker-proxy