Linux网络状态工具ss命令使用详解
ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计. 它比其他工具展示等多tcp和state信息. 它是一个非常实用、快速、有效的跟踪IP连接和sockets的新工具.SS命令可以提供如下信息:
- 所有的TCP sockets
- 所有的UDP sockets
- 所有ssh/ftp/ttp/https持久连接
- 所有连接到Xserver的本地进程
- 使用state(例如:connected, synchronized, SYN-RECV, SYN-SENT,TIME-WAIT)、地址、端口过滤
- 所有的state FIN-WAIT-1 tcpsocket连接以及更多
很多流行的Linux发行版都支持ss以及很多监控工具使用ss命令.熟悉这个工具有助于您更好的发现与解决系统性能问题.本人强烈建议使用ss命令替代netstat部分命令,例如netsat -ant/lnt等.
展示他之前来做个对比,统计服务器并发连接数
netstat # time netstat -ant | grep EST | wc -l 3100 real 0m12.960s user 0m0.334s sys 0m12.561s # time ss -o state established | wc -l 3204 real 0m0.030s user 0m0.005s sys 0m0.026s
1 2 3 4 5 6 7 8 9 10 11 12 13 | netstat # time netstat -ant | grep EST | wc -l 3100 real 0m12.960s user 0m0.334s sys 0m12.561s # time ss -o state established | wc -l 3204 real 0m0.030s user 0m0.005s sys 0m0.026s |
结果很明显ss统计并发连接数效率完败netstat,在ss能搞定的情况下, 你还会在选择netstat吗, 还在犹豫吗, 看以下例子,或者跳转到帮助页面.
常用ss命令:
ss -l 显示本地打开的所有端口 ss -pl 显示每个进程具体打开的socket ss -t -a 显示所有tcp socket ss -u -a 显示所有的UDP Socekt ss -o state established '( dport = :smtp or sport = :smtp )' 显示所有已建立的SMTP连接 ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接 ss -x src /tmp/.X11-unix/* 找出所有连接X服务器的进程 ss -s 列出当前socket详细信息:
1 2 3 4 5 6 7 8 | ss -l 显示本地打开的所有端口 ss -pl 显示每个进程具体打开的socket ss -t -a 显示所有tcp socket ss -u -a 显示所有的UDP Socekt ss -o state established '( dport = :smtp or sport = :smtp )' 显示所有已建立的SMTP连接 ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接 ss -x src /tmp/.X11-unix/* 找出所有连接X服务器的进程 ss -s 列出当前socket详细信息: |
- 上一篇:Nginx如何启用ETag,提高访问速度
- 下一篇:tar 分包压缩与合并