linux下网络连接socket统计工具ss学习小结

来源:互联网 发布:网络新技术专题报告 编辑:程序博客网 时间:2024/05/22 01:41

1.ss

      ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
      当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。当服务器维持的连接达到上万个的时候,使用netstat会比较慢,而用ss会节省大量的时间。ss比较快的原因在于它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux内核中第一手的信息,这就确保了ss的快捷高效。当然,如果你的系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢(但仍然比 netstat要快)。


2.命令格式

ss [option] [过滤]

常见的选项:

-a   ——  显示所有套接字(sockets)

-l  ——  仅显示处在监听状态的套接字(sockets)

-t  ——  仅显示TCP套接字(sockets)

-u —— 仅显示UCP套接字(sockets)

-d —— 仅显示DCCP套接字(sockets)

-w —— 仅显示RAW套接字(sockets)

-x —— 仅显示Unix套接字(sockets)

-s —— 显示套接字(socket)简要信息

-p —— 显示使用套接字(socket)的进程

-4, --ipv4  —— 仅显示IPv4的套接字(sockets)

-6, --ipv6  —— 仅显示IPv6的套接字(sockets)

-n ——不解析主机IP

-r  ——  解析主机名


3.使用举例

#1.显示TCP连接ss -t -a#2.显示Sockets摘要信息ss -s#3.列出所有处在listening状态的socketss -l#4.查看进程使用的socketss -lp#5.显示所有UDP Socketsss -u -a#6.显示所有状态为established的SMTP连接ss -o state established '( dport = :smtp or sport = :smtp )'#7.显示所有状态为Established的HTTP连接ss -o state established '( dport = :http or sport = :http )'


学习资料来源于:

http://www.cnblogs.com/peida/archive/2013/03/11/2953420.html

0 0