你知道吗?在 Linux 网络连接排查中,ss 通常比 netstat 更快、更高效,是查看 socket 统计信息和网络连接状态的常用工具。它可以直接从内核 tcp_diag 模块读取数据,并支持 TCP、UDP、Unix 域套接字等多种协议类型。常见参数也非常实用,例如 -t(查看 TCP)、-u(查看 UDP)、-l(显示监听状态)、-n(以数字形式展示地址和端口)、-p(显示进程信息)、-a(显示所有状态)。因此,日常查看端口占用和网络连接详情时,更推荐使用 sudo ss -tunlp 来替代 netstat -tunlp。

netstat -anp 能查看完整连接详情,但必须配合权限使用
普通用户执行 netstat -anp 时,PID/Program name 这一列通常显示为 -,这是因为进程归属信息需要读取 /proc 目录下的相关文件,而这些目录默认仅对 root 用户或同组用户开放读取权限。如果没有足够权限,就无法查看到底是谁占用了某个端口。
- 必须使用
sudo netstat -anp,才能显示真实的进程名称和 PID 信息 -n可避免 DNS 反向解析拖慢命令输出,同时也能防止因 hosts 或 DNS 异常造成字段显示错位-a会显示监听中(LISTEN)和已建立(ESTABLISHED)等全部连接状态,缺少-a时可能看不到服务监听端口- 输出字段中的
Local Address和Foreign Address,冒号后面表示端口号;如果是 IPv6 地址,通常会带方括号,需要特别注意区分
ss -tunlp 是更轻量、更快速的替代方案
netstat 在很多较新的 Linux 发行版中已经被标记为“deprecated”,底层依赖相对老旧的 procfs 接口;而 ss 则是直接通过内核 socket API 获取连接数据,因此响应速度更快、资源开销更低,尤其在服务器连接数较多时优势更加明显。
ss -tunlp基本等价于netstat -tunlp:-t表示 TCP、-u表示 UDP、-n表示数字地址、-l表示监听状态、-p表示进程信息- 通常不需要额外安装,因为
iproute2软件包默认自带ss,在 CentOS 8+ 和 Ubuntu 18.04+ 等系统中一般都已预装 - 输出字段更加紧凑清晰:
State位于最前面,Recv-Q/Send-Q后面直接跟地址信息,没有多余空行,便于快速阅读 - 如果出现
Permission denied提示,同样需要加上sudo,否则-p参数无法显示进程信息
查询特定连接时,不要只用 grep 匹配端口数字
直接使用 grep :8080 查找 8080 端口时,很容易出现误匹配,例如 192.168.1.100:80801 这样的结果也可能被一起筛选出来。更可靠的做法是限定字段边界,或者借助正则表达式进行精确匹配。
- 查看本地监听 8080 端口:
sudo ss -tunlp | grep ':8080b'(b表示单词边界) - 查看连接到远端 443 端口的所有网络连接:
sudo ss -tunp | awk '$5 ~ /:443$/ {print}'($5对应Foreign Address字段) - 查看某个 PID 的全部连接详情:
sudo ss -tunp | grep '12345,'(PID 后面带逗号,可避免匹配到其他无关数字) - 需要注意的是,
ss输出里的进程信息位于最后一列,格式通常为users:(("nginx",pid=1234,fd=6)),并不是简单的空格分隔结构
连接状态字段的含义,会直接影响故障排查方向
在 Linux 查看网络连接状态时,像 TIME_WAIT 或 CLOSE_WAIT 并不一定代表故障,但如果数量级突然增多,就需要进一步分析原因;而 SYN_RECV 过多可能意味着遭遇 SYN Flood,FIN_WAIT2 大量堆积则往往说明对端没有正常发送 FIN。
ESTABLISHED:表示双向通信正常,是最常见的健康连接状态LISTEN:表示服务端正在等待接入连接,对应-l参数筛选出的监听端口结果TIME_WAIT:表示主动关闭的一方正在等待 2MSL,短时间内大量出现通常属于正常现象;如果长期维持数万级别,则需要检查应用是否产生了过多短连接CLOSE_WAIT:表示对端已经关闭连接,而本端尚未调用close(),通常说明程序没有正确处理 EOF,进而造成 socket 泄漏SYN_SENT:表示本端已发送 SYN 并等待 ACK,如果长时间停留在该状态,往往说明网络不通或目标主机没有正常回包
netstat -anp 查看全量网络连接输出,而是应先明确自己的排查目标:到底是想找出谁占用了 3306 端口,还是想统计 MySQL 当前连接了多少客户端。目标越明确,命令参数组合就越高效,否则面对满屏滚动的连接信息,反而更容易影响排障效率。