【网络】ss 命令

87 阅读2分钟

DeepSeek:v3: ss 是 Linux 系统中用于查看网络连接、路由表、接口统计信息等网络相关信息的命令行工具。它是 netstat 命令的替代品,提供了更快的性能和更丰富的功能。ss 命令直接从内核空间获取信息,因此比 netstat 更高效。

基本语法

ss [选项] [过滤条件]

常用选项

  • -t:显示 TCP 连接。
  • -u:显示 UDP 连接。
  • -l:显示监听中的套接字。
  • -a:显示所有套接字(包括监听和非监听的)。
  • -n:不解析主机名和服务名,直接显示 IP 地址和端口号。
  • -p:显示进程信息(需要 root 权限)。
  • -s:显示汇总统计信息。
  • -4:仅显示 IPv4 连接。
  • -6:仅显示 IPv6 连接。
  • -o:显示计时器信息。
  • -r:尝试解析主机名。

示例用法

  1. 显示所有 TCP 连接

    ss -t -a
    
  2. 显示所有 UDP 连接

    ss -u -a
    
  3. 显示所有监听中的套接字

    ss -l
    
  4. 显示所有 TCP 连接并解析主机名和服务名

    ss -t -a -r
    
  5. 显示所有 TCP 连接并显示进程信息

    sudo ss -t -a -p
    
  6. 显示所有 IPv4 连接

    ss -4 -a
    
  7. 显示所有 IPv6 连接

    ss -6 -a
    
  8. 显示所有 TCP 连接的计时器信息

    ss -t -o
    
  9. 显示网络统计信息

    ss -s
    

过滤条件

ss 命令支持多种过滤条件来精确筛选显示的连接。例如:

  • 按端口过滤

    ss -t src :80
    

    显示源端口为 80 的 TCP 连接。

  • 按 IP 地址过滤

    ss -t dst 192.168.1.1
    

    显示目标 IP 为 192.168.1.1 的 TCP 连接。

  • 按状态过滤

    ss -t state established
    

    显示所有处于 ESTABLISHED 状态的 TCP 连接。

常见状态

  • ESTABLISHED:连接已建立。
  • LISTEN:套接字正在监听连接。
  • CLOSE_WAIT:等待关闭连接。
  • TIME_WAIT:等待足够的时间以确保远程 TCP 收到连接中断的确认。

总结

ss 命令是一个强大且高效的网络工具,适合用于查看和分析网络连接信息。通过不同的选项和过滤条件,可以快速获取所需的网络信息。