ss是Socket Statistics的缩写。顾名思义,ss命令能够用来获取socket统计信息,它能够显示和netstat相似的内容。但ss的优点在于它可以显示更多更详细的有关TCP和链接状态的信息,并且比netstat更快速更高效。html
1、ss命令的参数以下服务器
Usage: ss [ OPTIONS ]
ss [ OPTIONS ] [ FILTER ]
-h, --help this message #显示帮助菜单
-V, --version output version information #输出版本信息
-n, --numeric don't resolve service names #不解析服务名
-r, --resolve resolve host names #解析主机名
-a, --all display all sockets #显示全部的套接字
-l, --listening display listening sockets #显示监听状态的socket
-o, --options show timer information #显示计时器信息
-e, --extended show detailed socket information #展现详细的socket信息
-m, --memory show socket memory usage #展现socket的内存使用
-p, --processes show process using socket #展现使用socket的进程
-i, --info show internal TCP information #展现tcp内部信息
-s, --summary show socket usage summary #展现socket使用汇总
-4, --ipv4 display only IP version 4 sockets #只显示ipv4的sockets
-6, --ipv6 display only IP version 6 sockets #只显示ipv6的sockets
-0, --packet display PACKET sockets #显示包通过的网络接口
-t, --tcp display only TCP sockets #显示tcp套接字
-u, --udp display only UDP sockets #显示udp套接字
-d, --dccp display only DCCP sockets #显示dccp套接字
-w, --raw display only RAW sockets #显示raw套接字
-x, --unix display only Unix domain sockets #显示unix套接字
-f, --family=FAMILY display sockets of type FAMILY #显示指定类型的套接字
-A, --query=QUERY, --socket=QUERY #查看某种类型
QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D, --diag=FILE Dump raw information about TCP sockets to FILE #将关于TCP套接字的原始信息转储到文件中
-F, --filter=FILE read filter information from FILE #使用此参数指定的过滤规则文件,过滤某种状态的链接
FILTER := [ state STATE-FILTER ] [ EXPRESSION ]
STATE-FILTER := {all|connected|synchronized|bucket|big|TCP-STATES}
TCP-STATES := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|closed|close-wait|last-ack|listen|closing}
connected := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
synchronized := {established|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
bucket := {syn-recv|time-wait}
big := {established|syn-sent|fin-wait-{1,2}|closed|close-wait|last-ack|listen|closing}
2、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详细信息
3、ss与 netstat对比:dom
ss命令是iproute工具集(CentOS 最小化安装带有);netstat命令是net-tools工具集;socket
当服务器的socket链接数量变得很是大时,不管是使用netstat命令仍是直接cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感觉,但请相信我,当服务器维持的链接达到上万个的时候,使用netstat等于浪费 生命,而用ss才是节省时间。tcp
天下武功惟快不破。ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,能够得到Linux 内核中第一手的信息,这就确保了ss的快捷高效。固然,若是你的系统中没有tcp_diag,ss也能够正常运行,只是效率会变得稍慢。(但仍然比 netstat要快。)工具
参考或来源:
https://blog.csdn.net/jiajiren11/article/details/80887528
https://blog.csdn.net/fenglailea/article/details/51810977
https://www.cnblogs.com/kevingrace/p/6211509.htmlthis