命令 netstat 顾名思义指的是网络状态的意思,因此在Linux系统中,命令 netstat 是用于查看当前网络连接状态、路由表和网络接口信息的工具。我们可以从它的输出结果中很轻松的得知的当前系统网络状态,以方便排查问题。
语法
netstat [参数选项]
主要参数说明
-a 显示处于监听状态和非监听状态的socket信息
-A 显示指定网络类型的网络连接状态
-n 不解析主机、端口并以数字的形式显示出地址(默认解析)
-c <秒> 其后接秒数,表示每几秒刷新显示一次
-t 显示所有TCP连接情况
-u 显示所有UDP连接情况
-l 显示连接状态为‘LISTEN’服务的网络状态
-p 显示socket所属进程的PID和名称
-s 显示各类协议的统计信息
-r 显示路由表信息
-g 显示多播功能组成员
-i 显示网络接口信息
案例
组合参数 -lntup 显示正在监听的所有TCP、UDP连接信息
[root@master ~]# netstat -lntup
Active Internet connectio[root@master ~]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1368/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1076/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1368/master
tcp6 0 0 :::3306 :::* LISTEN 1182/mysqld
tcp6 0 0 :::22 :::* LISTEN 1076/sshd
[root@master ~]#
ns (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1368/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1076/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1368/master
tcp6 0 0 :::3306 :::* LISTEN 1182/mysqld
tcp6 0 0 :::22 :::* LISTEN 1076/sshd
[root@master ~]#
组合参数 -rn 显示当前系统路由表
[root@master ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.116.2 0.0.0.0 UG 0 0 0 ens33
192.168.116.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
[root@master ~]#
参数 -i 显示网络接口状态(类似于之前讲的命令 ifconfig)
[root@master ~]# netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33 1500 150 0 0 0 129 0 0 0 BMRU
lo 65536 0 0 0 0 0 0 0 0 LRU
[root@master ~]#
组合参数 -an 显示所有连接信息
[root@master ~]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 36 192.168.116.100:22 192.168.116.1:59577 ESTABLISHED
tcp6 0 0 ::1:25 :::* LISTEN
tcp6 0 0 :::3306 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
raw6 0 0 :::58 :::* 7
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 21926 public/qmgr
# 此处省略中间内容
unix 3 [ ] STREAM CONNECTED 19329
# 此处省略中间内容
unix 3 [ ] STREAM CONNECTED 21986
unix 3 [ ] STREAM CONNECTED 21955
unix 3 [ ] STREAM CONNECTED 18490 /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 21956
unix 3 [ ] STREAM CONNECTED 21988
[root@master ~]#
主要参数说明
Proto socket使用的协议(TCP、UDP、RAW)
Recv-Q 接收到但还未处理的字节数
Send-Q 已发送但还未被远程主机确认收到的字节数
Local Address 本地主机地址和端口
Foreign Address 远程主机地址和端口
State socket状态,一般只有 TCP的状态