实用linux命令-ss
ss命令简介
ss
(Socket Statistics)是一个用于显示网络套接字信息的强大工具,它是netstat
命令的现代替代品。ss
命令速度更快,功能更强大,可以显示更多的网络连接信息。它能查看TCP、UDP、DCCP、RAW等类型的套接字连接。
ss常见用法
查看所有网络连接
ss
1说明:
- 默认显示已建立的非监听TCP连接。
查看所有监听端口
ss -l
1说明:
-l
选项显示所有处于监听状态的套接字。
查看TCP连接
ss -t
1说明:
-t
选项只显示TCP连接。- 可以与
-a
组合使用:ss -ta
显示所有TCP连接(包括监听状态)。
查看UDP连接
ss -u
1说明:
-u
选项只显示UDP连接。- 可以与
-a
组合使用:ss -ua
显示所有UDP连接。
查看指定端口的连接
ss -t src/dst :<端口号>
1说明:
src
表示源端口,dst
表示目标端口。- 例如:
ss -t dst :80
显示目标端口为80的所有TCP连接。
显示进程信息
ss -p
1说明:
-p
选项显示使用套接字的进程信息。- 需要root权限才能查看所有进程。
ss高级用法
按状态过滤连接
ss state <状态>
1说明:
- 常见状态包括:established、syn-sent、syn-recv、fin-wait-1等。
- 例如:
ss state established
显示所有已建立的连接。
显示详细统计信息
ss -i
1说明:
-i
选项显示TCP内部信息,如拥塞窗口、重传计数器等。
按地址过滤
ss dst <IP地址>
1说明:
- 过滤特定目标IP地址的连接。
- 例如:
ss dst 192.168.1.1
显示所有连接到该IP的套接字。
结合条件表达式
ss -t '( dport = :http or dport = :https )'
1说明:
- 使用表达式组合多个条件,查找连接到HTTP或HTTPS端口的TCP连接。
查看内存使用情况
ss -m
1说明:
-m
选项显示套接字的内存使用情况。
实时监控网络连接
watch -n 1 'ss -t'
1说明:
- 每秒刷新一次,实时监控TCP连接状态。
ss与netstat的比较
性能优势
ss
命令直接从内核空间获取信息,速度比netstat
快很多。- 在有大量连接的系统上,
ss
的优势尤为明显。
功能对比
ss
提供更多的过滤选项和更详细的连接信息。ss
可以显示更多的TCP状态信息,如TCP内部队列。
语法差异
netstat
:netstat -tuln
(显示所有监听的TCP和UDP端口)ss
:ss -tuln
(相同功能,但速度更快)
ss注意事项
权限要求
- 查看所有连接的详细信息(特别是与进程相关的信息)需要root权限。
输出格式
- 默认输出可能较为紧凑,可使用
-r
选项解析主机名,使输出更易读。
- 默认输出可能较为紧凑,可使用
与其他工具配合
- 可与
grep
、awk
等命令结合使用,进一步过滤和处理输出结果。
ss -t | grep ESTAB | wc -l # 统计已建立的TCP连接数
1- 可与
上次更新: 4/24/2025