《linux命令:ss命令》由会员分享,可在线阅读,更多相关《linux命令:ss命令(13页珍藏版)》请在金锄头文库上搜索。
1、转载注明出处:http:/ linux命令(57): ss命令ss是 Socket Statistics的缩写。顾名思义,ss 命令可以用来获取 socket统计信息,它可以显示和 netstat类似的内容。但 ss的优势在于它能够显示更多更详细的有关 TCP和连接状态的信息,而且比 netstat更快速更高效。当服务器的 socket连接数量变得非常大时,无论是使用 netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用 netstat等于浪费 生命,而用 ss才是节省时间。天下武功唯快不破
2、。ss 快的秘诀在于,它利用到了 TCP协议栈中 tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得 Linux 内核中第一手的信息,这就确保了 ss的快捷高效。当然,如果你的系统中没有 tcp_diag,ss 也可以正常运行,只是效率会变得稍慢。(但仍然比 netstat要快。)1.命令格式:ss 参数ss 参数 过滤2.命令功能:ss(Socket Statistics的缩写)命令可以用来获取 socket统计信息,此命令输出的结果类似于 netstat输出的内容,但它能显示更多更详细的 TCP连接状态的信息,且比netstat 更快速高效。它使用了 TCP协议栈中 tc
3、p_diag(是一个用于分析统计的模块),能直接从获得第一手内核信息,这就使得 ss命令快捷高效。在没有 tcp_diag,ss 也可以正常运行。3.命令参数:-h, -help 帮助信息-V, -version 程序版本信息-n, -numeric 不解析服务名称-r, -resolve 解析主机名-a, -all 显示所有套接字(sockets)-l, -listening 显示监听状态的套接字(sockets)-o, -options 显示计时器信息-e, -extended 显示详细的套接字(sockets)信息-m, -memory 显示套接字(socket)的内存使用情况-p, -
4、processes 显示使用套接字(socket)的进程-i, -info 显示 TCP内部信息-s, -summary 显示套接字(socket)使用概况-4, -ipv4 仅显示 IPv4的套接字(sockets)-6, -ipv6 仅显示 IPv6的套接字(sockets)-0, -packet 显示 PACKET 套接字(socket)-t, -tcp 仅显示 TCP套接字(sockets)-u, -udp 仅显示 UCP套接字(sockets)-d, -dccp 仅显示 DCCP套接字(sockets)-w, -raw 仅显示 RAW套接字(sockets)-x, -unix 仅显示
5、 Unix套接字(sockets)-f, -family=FAMILY 显示 FAMILY类型的套接字(sockets),FAMILY 可选,支持unix, inet, inet6, link, netlink-A, -query=QUERY, -socket=QUERYQUERY := all|inet|tcp|udp|raw|unix|packet|netlink,QUERY-D, -diag=FILE 将原始 TCP套接字(sockets)信息转储到文件-F, -filter=FILE 从文件中都去过滤器信息FILTER := state TCP-STATE EXPRESSION 4.使
6、用实例:实例 1:显示 TCP连接命令:ss -t -a输出:rootlocalhost # ss -t -aState Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 0 127.0.0.1:smux *:* LISTEN 0 0 *:3690 *:* LISTEN 0 0 *:ssh *:* ESTAB 0 0 192.168.120.204:ssh 10.2.0.68:49368 rootlocalhost # 说明:实例 2:显示 Sockets 摘要命令:ss -s输出:rootlocalhost # ss -s
7、Total: 34 (kernel 48)TCP: 4 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 3Transport Total IP IPv6* 48 - - RAW 0 0 0 UDP 5 5 0 TCP 4 4 0 INET 9 9 0 FRAG 0 0 0 rootlocalhost # 说明:列出当前的 established, closed, orphaned and waiting TCP sockets实例 3:列出所有打开的网络连接端口命令:ss -l输出:rootlocalhost #
8、ss -lRecv-Q Send-Q Local Address:Port Peer Address:Port 0 0 127.0.0.1:smux *:* 0 0 *:3690 *:* 0 0 *:ssh *:* rootlocalhost # 说明:实例 4:查看进程使用的 socket命令:ss -pl输出:rootlocalhost # ss -plRecv-Q Send-Q Local Address:Port Peer Address:Port 0 0 127.0.0.1:smux *:* users:(snmpd,2716,8)0 0 *:3690 *:* users:(svns
9、erve,3590,3)0 0 *:ssh *:* users:(sshd,2735,3)rootlocalhost #说明:实例 5:找出打开套接字/端口应用程序命令:ss -lp | grep 3306输出:rootlocalhost # ss -lp|grep 19350 0 *:1935 *:* users:(fmsedge,2913,18)0 0 127.0.0.1:19350 *:* users:(fmsedge,2913,17)rootlocalhost # ss -lp|grep 33060 0 *:3306 *:* users:(mysqld,2871,10)rootloca
10、lhost # 说明:实例 6:显示所有 UDP Sockets命令:ss -u -a输出:rootlocalhost # ss -u -aState Recv-Q Send-Q Local Address:Port Peer Address:Port UNCONN 0 0 127.0.0.1:syslog*:* UNCONN 0 0 *:snmp *:* ESTAB 0 0 192.168.120.203:39641 10.58.119.119:domain rootlocalhost #说明:实例 7:显示所有状态为 established的 SMTP连接命令:ss -o state established ( dport = :smtp or sport = :smtp ) 输出:rootlocalhost # ss -o state established ( dport = :smtp or sport = :smtp ) Recv-Q Send-Q Local Address:Port Peer Address:Port rootlocalhost #说明:实例 8:显示所有状态为 Established的 HTTP连接命