Appearance
ss 命令:套接字统计
1. 命令简介
ss
(Socket Statistics)是一个用于查看网络连接状态的工具,它是 netstat
命令的替代品。ss
命令可以显示比 netstat
更多的信息,而且速度更快。它可以显示 TCP、UDP、DCCP、RAW、Unix 域套接字等状态信息。
2. 基本语法
bash
ss [选项] [过滤器]
3. 常用选项
-n
:不解析服务名称-a
:显示所有套接字(包括监听和非监听)-t
:显示 TCP 套接字-u
:显示 UDP 套接字-l
:显示监听状态的套接字-p
:显示使用套接字的进程-s
:显示套接字使用概况-i
:显示内部 TCP 信息-4
:只显示 IPv4 套接字-6
:只显示 IPv6 套接字
4. 基础使用示例
显示所有 TCP 连接:
bashss -t -a
显示所有监听的 TCP 端口:
bashss -tl
显示所有 UDP 连接:
bashss -u -a
显示所有已建立的 TCP 连接:
bashss -t state established
5. 进阶使用技巧
显示进程使用的套接字:
bashss -p
显示内部 TCP 信息:
bashss -ti
显示 TCP 连接的定时器信息:
bashss -to
使用过滤器:
bashss -t '( dport = :http or sport = :http )'
6. 实用示例
查找占用特定端口的进程:
bashss -tlnp | grep :80
显示连接到特定 IP 的连接:
bashss dst 192.168.1.100
显示所有 HTTP 连接:
bashss -o state established '( dport = :http or sport = :http )'
统计连接数量:
bashss -s
7. 注意事项
- 某些选项(如 -p)需要 root 权限才能执行。
ss
命令的输出可能会很长,考虑使用管道和grep
来过滤结果。- 在使用过滤器时,注意语法的正确性。
8. 相关命令
netstat
:旧版网络连接统计工具lsof
:列出打开的文件,可用于查看网络连接iptables
:Linux 防火墙工具tcpdump
:网络数据包分析工具
9. 技巧与建议
使用
watch
命令实时监控网络连接:bashwatch -n 1 'ss -t -a'
结合
awk
或cut
提取特定信息:bashss -tuln | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn
使用
ss
检查系统的网络性能:bashss -s
在脚本中使用
ss
进行网络诊断:bashif ss -tln | grep -q :80; then echo "Web server is running" else echo "Web server is not running" fi
ss
命令是一个强大的网络诊断工具,它提供了比 netstat
更快、更详细的网络连接信息。对于系统管理员和网络工程师来说,掌握 ss
命令可以帮助他们更有效地监控和诊断网络问题。虽然 ss
的某些高级用法可能需要一些时间来熟悉,但其提供的详细信息和性能优势使它成为现代 Linux 系统中不可或缺的网络工具。