一、用处
用于显示本机网络连接、运行端口和路由表等信息的命令
二、选项
[root@lab01 ~]# netstat 选项
选项:
- a: 列出系统中所有的网络连接,包括已经连接地网络服务、监听地网络服务和socket套接字。
- t: 列出TCP数据
- u: 列出UDP数据
- l: 列出正在坚挺的网络服务(不包含已经连接地网络服务)
- n: 用端口显示服务,而不是用服务名
- p: 列出该服务的进程ID
- s: 按照各个协议进行统计
- c: 每隔一个固定时间,执行该命令
- r: 路由信息。
三、例子
(1)显示某些特定字段
[root@lab01 ~]# netstat -tlunp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:9980 0.0.0.0:* LISTEN 8901/docker-proxy
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 8532/redis-server 1
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1231/sshd
tcp6 0 0 :::9980 :::* LISTEN 8907/docker-proxy
tcp6 0 0 :::33060 :::* LISTEN 1511/mysqld
tcp6 0 0 :::3306 :::* LISTEN 1511/mysqld
tcp6 0 0 :::22 :::* LISTEN 1231/sshd
udp 0 0 127.0.0.1:323 0.0.0.0:* 514/chronyd
udp 0 0 0.0.0.0:68 0.0.0.0:* 701/dhclient
udp6 0 0 ::1:323 :::* 514/chronyd
Proto: 数据包的协议类型
Recv-Q:表示收到的数据已经在本地接受缓存,但是还没有被进程取走的数据包数量。
Send-Q:对方没有收到的数据包,或者没有收到ACK回复的,还有本地缓冲区的数据包数量。
Local Address:本地IP:端口,通过端口可以知道本机开启的服务。
Foreign Address:远程主机:端口,也就是远程IP使用哪个端口连接到本机
State:连接状态,主要是已经建立连接(ESTABLISED)和监听两种状态(Listen)
PID/Program name:主要是进程ID和进程命令。
(2)寻找特定程序运行的端口
[root@lab01 ~]# netstat -nltp | grep mysqld
tcp6 0 0 :::33060 :::* LISTEN 1511/mysqld
tcp6 0 0 :::3306 :::* LISTEN 1511/mysqld
(3)寻找特定端口对应的程序
[root@lab01 ~]# netstat -nltp | grep 3306
tcp6 0 0 :::33060 :::* LISTEN 1511/mysqld
tcp6 0 0 :::3306 :::* LISTEN 1511/mysqld
(4)查看本机路由信息
[root@lab01 ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default gateway 0.0.0.0 UG 0 0 0 eth0
10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.169.254 10.1.1.254 255.255.255.255 UGH 0 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0