1. ss命令可用来获取socket统计信息,这个命令输出的结果类似于netstat输出的内容,但是它能够显示更多更详细的TCP连接状态的信息,且比netstat更快更高效。
ss命令能够从内核空间直接得到信息,netstat命令读取各种/proc 文件收集信息, 然而当有很多连接时它的性能下降很快,使得变的很慢。
2. ss命令的参数:
-a或--all 显示所有套接字
-d或--dccp 仅显示DCCP套接字
-D或--diag=FILE 将原始TCP套接字(sockets)信息转储到文件
-e或--extended 显示详细的套接字信息
-f或--family=FAMILY 显示FAMILY类型的套接字,支持 unix, inet, inet6, link,netlink
-F或--filter=FILE 从文件中都去过滤器信息
-h或--help 帮助信息
-i或--info 显示tcp内部信息
-l或--listening 显示监听状态的套接字
-m或--memory 显示套接字的内存使用情况
-n或--numeric 不解析服务名称
-o或--options 显示计时器信息
-p或--processes 显示使用套接字的进程
-r或--resolve 解析主机名
-s或--summary 显示套接字的使用状况
-t或--tcp 仅显示TCP套接字
-u或--udp 仅显示udp套接字
-V或--version 程序版本信息
-w或--raw 仅显示RAW套接字
-x或--unix 仅显示Unix套接字
-4或--ipv4 仅显示IPv4的套接字
-6或--ipv6 仅显示IPv6的套接字
-0或--packet 显示PACKET套接字
3. 使用方法
ss:列出所有连接该输出包括所有tcp,udp,unix套接字连接细节,如下图所示:
ss –ta:显示所有的TCP连接,如下图所示:
ss –ua:显示所有的UDP连接,如下图所示:
ss –tanlp:显示所有的TCP连接,并且显示时不解析服务名称,显示使用进程的pid,也是最常用的选项,如下图所示:
ss -o state established '( dport = :http or sport = :http )':显示所有状态为Established的HTTP连接,如下图所示: