商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > Linux怎么查看具体的网络连接详细报表

Linux怎么查看具体的网络连接详细报表

  发布于2026-08-21 阅读(0)

扫一扫,手机访问

你知道吗?ss可是比netstat更快更高效的socket统计工具哦!它能直接从内核tcp_diag模块获取信息,还支持TCP/UDP/Unix域套接字等多种协议呢。它有不少常用选项,比如-t(用于TCP)、-u(用于UDP)、-l(显示监听状态)、-n(以数字格式显示)、-p(显示进程信息)、-a(显示全部状态)。在这里,强烈推荐大家用sudo ss -tunlp来替代netstat -tunlp哦。

Linux怎么查看具体的网络连接详细报表

netstat -anp 能看到完整连接详情,但得加权限

普通用户执行 netstat -anp 时,PID/Program name 列通常显示为 -,因为进程归属信息需要读取 /proc 下的文件,而这些目录默认只对 root 或同组用户可读。不加权限就看不到谁在用哪个端口。

  • 必须用 sudo netstat -anp 才能显示真实进程名和 PID
  • -n 避免 DNS 反向解析拖慢输出,也防止因 hosts 或 DNS 异常导致字段错位
  • -a 包含监听中(LISTEN)和已建立(ESTABLISHED)等所有状态,漏掉 -a 就看不到服务端口
  • 输出字段中 Local AddressForeign Address 的冒号后是端口号,IPv6 地址带方括号,注意区分

ss -tunlp 是更轻更快的替代方案

netstat 已被很多新系统标记为“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)),不是简单空格分隔

连接状态字段含义直接影响排查方向

看到 TIME_WAITCLOSE_WAITSYN_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 连了多少客户端?目标明确再组合参数,不然满屏滚动反而耽误事。
本文转载于:https://www.php.cn/faq/3026357.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注