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等.

展示他之前来做个对比,统计服务器并发连接数


  1. eal 0m12.960s  
  2. user 0m0.334s  
  3. sys 0m12.561s  
  4. # time ss -o state established | wc -l  
  5. 3204  
  6. real 0m0.030s  
  7. user 0m0.005s  
  8. sys 0m0.026s  
  9. netstat  
  10. # time netstat -ant | grep EST | wc -l  
  11. 3100  

结果很明显ss统计并发连接数效率完胜netstat,在ss能搞定的情况下, 你还会在选择netstat吗, 还在犹豫吗, 看以下例子,或者跳转到帮助页面.

常用ss命令:


  1. ss -l 显示本地打开的所有端口  
  2. ss -pl 显示每个进程具体打开的socket  
  3. ss -t -a 显示所有tcp socket  
  4. ss -u -a 显示所有的UDP Socekt  
  5. ss -o state established '( dport = :smtp or sport = :smtp )' 显示所有已建立的SMTP连接  
  6. ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接  
  7. ss -x src /tmp/.X11-unix/* 找出所有连接X服务器的进程  
  8. ss -s 列出当前socket详细信息: 

显示sockets简要信息,列出当前已经连接,关闭,等待的tcp连接


  1. # ss -s  
  2. Total: 3519 (kernel 3691)  
  3. TCP: 26557 (estab 3163, closed 23182, orphaned 194, synrecv 0, timewait 23182/0), ports 1452  
  4. Transport Total IP IPv6  
  5. * 3691 – –  
  6. RAW 2 2 0  
  7. UDP 10 7 3  
  8. TCP 3375 3368 7  
  9. INET 3387 3377 10  
  10. FRAG 0 0 0 

列出当前监听端口

【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章