Linux中的ss命令

ss 命令是 Linux 系统中的一个强大工具,用于显示 socket 统计信息(如 TCP、UDP 连接)。它比传统的 netstat 命令更高效,尤其在处理大量连接时。以下我将逐步解释其用法,帮助您快速掌握。

1. 基本语法

ss 命令的基本格式为:

ss [选项] [过滤表达式]

  • 选项:用于指定显示哪些类型的 socket(如 TCP、UDP)。
  • 过滤表达式:用于筛选特定连接(如端口号或 IP 地址)。
2. 常用选项

ss 命令支持多种选项,以下是几个最常用的:

  • -t:显示所有 TCP socket。
  • -u:显示所有 UDP socket。
  • -l:显示所有监听(listening)的 socket。
  • -a:显示所有 socket(包括监听和非监听状态)。
  • -p:显示与 socket 关联的进程信息(如进程 ID)。
  • -n:以数字形式显示 IP 地址和端口号(不解析域名)。
  • -s:显示 socket 的摘要统计信息(如总连接数)。
  • -4:仅显示 IPv4 socket。
  • -6:仅显示 IPv6 socket。
3. 常用过滤表达式

您可以使用过滤表达式来精确定位连接:

  • 按端口过滤:dport = :端口号(目标端口)或 sport = :端口号(源端口)。
  • 按 IP 地址过滤:dst 地址(目标 IP)或 src 地址(源 IP)。
  • 组合过滤:例如,dport = :80 显示所有目标端口为 80 的连接。
4. 实用示例

以下是一些常见场景的示例命令,您可以在终端中直接运行:

  • 显示所有 TCP socket

    ss -t
    

    输出将列出所有 TCP 连接的状态(如 ESTAB、LISTEN)。

  • 显示所有 UDP socket 并包含进程信息

    ss -up
    

    输出会显示 UDP 连接的进程 ID 和名称。

  • 显示所有监听中的 socket(TCP 和 UDP)

    ss -l
    

  • 显示目标端口为 80 的 TCP 连接

    ss -t 'dport = :80'
    

  • 显示所有 IPv4 socket 的摘要统计

    ss -s -4
    

    输出会给出总连接数、监听数等摘要。

  • 显示特定 IP 地址(如 192.168.1.1)的 socket

    ss dst 192.168.1.1
    

5. 注意事项
  • 权限问题:某些选项(如 -p)需要 root 权限才能查看进程信息。使用 sudo 运行命令,例如:
    sudo ss -tp
    

  • 效率优势:ss 命令直接读取内核数据,比 netstat 更快,适合在服务器高负载时使用。
  • 帮助文档:运行 man ssss --help 查看完整选项和说明。

通过以上步骤,您可以高效地监控网络连接。如果您有特定场景(如分析 Web 服务器连接),请提供更多细节,我可以给出更针对性的建议!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值