Linux如何用ss命令查看网络连接

ss命令是Linux下高效查看网络连接的工具,比netstat更快,支持TCP、UDP等连接类型;常用选项包括-t(TCP)、-u(UDP)、-l(监听)、-a(所有)、-n(数字显示)、-p(进程信息);通过ss -t -a可查看所有TCP连接,字段如State、Recv-Q、Send-Q显示连接状态和队列数据;ss -u -a查看UDP套接字,常用于DNS、NTP服务;结合-p可查进程信息,如users:((“process_name”,pid=1234,fd=3));支持过滤,如state established、sport = :80、dst 192.168.1.100,便于诊断服务监听或异常连接。

Linux如何用ss命令查看网络连接

在Linux系统中,ss(Socket Statistics)命令是查看网络连接状态的高效工具,它能显示详细的套接字信息,功能比 netstat 更快、更全面。使用 ss 可以查看 TCP、UDP、RAW、UNIX 等类型的连接。

基本语法

ss 的基本命令格式如下:

ss [选项]

常用选项包括:

  • -t:显示 TCP 连接
  • -u:显示 UDP 连接
  • -l:显示监听状态的套接字(Listen)
  • -a:显示所有连接(包括监听和已建立)
  • -n:以数字形式显示地址和端口(不解析主机名和服务名)
  • -p:显示使用该连接的进程信息(需权限)
  • -r:解析主机名

Linux如何用ss命令查看网络连接

查看所有 TCP 连接

运行以下命令查看所有 TCP 连接:

ss -t -a

输出字段说明:

  • State:连接状态(如 ESTAB 表示已建立,LISTEN 表示监听)
  • Recv-Q:接收队列中的数据字节数
  • Send-Q:发送队列中的数据字节数
  • Local Address:Port:本地地址和端口
  • Peer Address:Port:远程地址和端口

Linux如何用ss命令查看网络连接

查看所有 UDP 连接

UDP 是无连接协议,但仍可通过以下命令查看活跃的 UDP 套接字:

Linux如何用ss命令查看网络连接

CoCo

智谱ai推出的首个有记忆的企业自主Agent智能体

Linux如何用ss命令查看网络连接63

查看详情 Linux如何用ss命令查看网络连接

ss -u -a

主要显示正在监听或已绑定的 UDP 端口,如 DNS、NTP 服务等。

Linux如何用ss命令查看网络连接

结合进程信息查看连接

使用 -p 选项可查看是哪个进程打开了连接:

ss -t -a -p

输出中会包含 users:((“process_name”,pid=1234,fd=3)) 字样,帮助定位具体程序。

过滤特定状态或端口

ss 支持使用表达式过滤结果。例如:

  • 查看所有已建立的连接:ss -t -a -n state established
  • 查看与特定端口相关的连接:ss -t -a -n sport = :80
  • 查看与某 IP 的连接:ss -t -a -n dst 192.168.1.100

基本上就这些。熟练使用 ss 命令能快速诊断网络问题,比如排查服务是否监听、连接是否异常增多等。它不复杂但容易忽略细节,比如状态过滤语法和端口写法。多试几次就能上手。

linux 工具 dns linux系统 网络问题 udp linux unix

上一篇
下一篇