Linux 命令 | netstat
netstat 通常用来检查各端口的网络连接情况。
可以显示 IP、TCP、UDP、ICMP 协议相关数据。
最常用方式
netstat -tlunp,显示结果如下:

第二行的列名说明了每一列的内容
结果含义
-
Proto协议名称 -
Recv-Q网络接收队列,表示还有多少没被进程取走的数据,通常为 0 -
Send-Q网络发送队列,表示远程没有收到的数据量,通常为 0 -
Local Address本地地址-
127.0.0.1:port表示只能本机访问 -
::1:port对应 IPv6,本机访问 -
0.0.0.0:port表示对外开放的 IPv4 -
:::port表示对外开放的 IPv6 端口
-
-
Foreign Address外部地址,格式和本地地址一样 -
State链路状态 -
PID/Program name进程号/应用名称
TCP 连接状态
上图中倒数第二列 State 显示了 tcp 的连接状态,有以下几种状态
-
LISTEN,监听外部 TCP 端口连接请求 -
ESTABLISHED,已建立连接 -
CLOSE-WAIT,等待从本地用户发来的连接中断请求 -
CLOSING,等待远程 TCP 对连接中断的确认 -
TIME-WAIT,等待足够的时间以确保远程TCP接收到连接中断请求的确认 -
CLOSED,连接关闭 -
SYN-SENT,发送连接请求后等待匹配 -
SYN-RECEIVED,收到和发送一个连接请求后等待对方确认 -
FIN-WAIT-1,等待远程 TCP 连接中断请求,或先前的连接中断请求的确认 -
FIN-WAIT-2,从远程 TCP 等待连接中断请求 -
LAST-ACK,等待原来的发向远程 TCP 的连接中断请求的确认
常用命令
根据需求,用命令参数自由组合,获取需要的信息
-
netstat -at所有 TCP 端口连接 -
netstat -lt所有处于监听状态的 TCP 端口连接 -
netstat -st所有 TCP 端口连接的统计信息 -
netstat -pt所有 TCP 端口连接并显示 PID 和进程名称 -
netstat -tlunp所有处于监听状态的 TCP/UDP 连接信息,以 IP 形式显示,并显示 PID 和进程名称 -
netstat -tlunp | grep 80 | wc -l查询 80 端口的连接个数
命令参数
-
-a(–all)显示所有连接 -
-A<网络类型>(–<网络类型>)显示该网络类型连接信息,例:-A unix -
-c(–continuous)持续列出网络连接 -
-C(–cache)显示路由器配置的快取信息 -
-e(–extend)显示网络其他相关信息 -
-F(–fib)显示FIB -
-g(–groups)显示 IPV4 以及 IPV6 的多播组信息 -
-h(–help)帮助文档 -
-i(–interfaces)显示网卡信息 -
-l(–listening)显示监听中的连接信息,不与 a 连用,因为 a 会输出所有连接 -
-M(–masquerade)显示伪装的网络连接 -
-n(–numeric)直接输出数字,不执行反向查询,结果输出会快很多。 -
-N(–netlink或–symbolic)显示网络硬件外围设备的符号连接名称 -
-o(–timers)显示计时器 -
-p(–programs)显示正在使用连接的 PID 和程序名称 -
-r(–route)显示核心路由信息 -
-s(–statistice)显示所有连接的统计信息,包括接收/发送的包数量 -
-t(–tcp)显示 TCP 协议的连接 -
-u(–udp)显示 UDP 协议的连接 -
-v(–verbose)显示指令执行过程 -
-V(–version)显示版本信息 -
-w(–raw)显示 RAW 协议的连接 -
-x(–unix)显示 unix 连接信息,同-A unix -
–ip(–inet)显示 inet 连接信息,同-A inet

浙公网安备 33010602011771号