当前位置: 首页 > Linux

Linux网络状态工具ss命令详解【转】

时间:2023-04-06 20:46:19 Linux

本文转载于:Linux网络状态工具ss命令使用详解ss命令用于显示socket状态。它可以显示PACKET套接字、TCP套接字、UDP套接字、DCCP套接字、RAW套接字、Unix域套接字等统计信息。它比其他工具更好地显示和更多的tcp和状态信息。它是一个非常实用、快速和有效的新工具,用于跟踪IP连接和套接字。SS命令可以提供以下信息:所有TCP套接字所有UDP套接字所有ssh/ftp/ttp/https持久连接使用状态连接到Xserver的所有本地进程(例如:connected、synchronized、SYN-RECV、SYN-SENT、TIME-WAIT),地址,端口过滤器所有状态FIN-WAIT-1tcpsocket连接和许多更流行的所有Linux发行版都支持ss,许多监控工具使用ss命令。熟悉该工具将有助于您更好地发现和解决系统性能问题。我强烈推荐用ss命令来代替一些netstat命令,比如netsat-ant/lnt等,之前show他做个对比统计服务器并发连接数netstat#timenetstat-ant|grepEST|wc-l3100real0m12.960suser0m0.334ssys0m12.561s#timess-ostateestablished|wc-l3204真正的0m0。030suser0m0.005ssys0m0.026s结果很明显ss统计并发连接数的效率完全被netstat打败了。如果ss可以搞定,你还会选择netstat吗?你还在犹豫?请参阅以下示例,或跳转到帮助页面。常用的ss命令:ss-l显示本地打开的所有端口ss-pl显示每个进程专门打开的sockets-t-a显示所有tcpsockets-u-a显示所有UDPsockets-ostateestablished'(dport=:smtporsport=:smtp)'显示所有已建立的SMTP连接ss-ostateestablished'(dport=:httporsport=:http)'显示所有已建立的HTTP连接ss-xsrc/tmp/.X11-unix/*找出连接到X服务器的所有进程ss-s列出当前套接字详细信息:显示套接字简要信息列出当前连接、关闭和等待的tcp连接#ss-sTotal:3519(kernel3691)TCP:26557(estab3163,closed23182,orphaned194,synrecv0,timewait23182/0),ports1452TransportTotalIPIPv6*3691--RAW220UDP1073TCP337533687INET3387337710FRAG000列出当前监听端口#ss-lRecv-QSend-QLocalAddress:PortPeerAddress:Port010:::5989:::*05*:rsync*:*0128:::sunrpc:::*0128*:sunrpc*:*0511*:http*:*0128:::ssh:::*0128*:ssh*:*0128::35766::*0128127.0.0.1:ipp*:*0128::1:ipp::*0100::1:smtp::*0100127.0.0.1:smtp*:*0511*:https*:*0100:::1311:::*05*:5666*:*0128*:3044*:*ss列出每个进程名称和监听端口ss-plss列出所有tcpsocketsss-t-ass列出所有udpsocketsss-u-ass列出http连接中的所有连接ss-ostateestablished'(dport=:httporsport=:http)'以上包括对外提供的80个,对外访问的80个.使用以上命令可以完美替代netstat获取http并发连接数。监控中常用ss列出本地有哪些进程连接了x台服务器s-xsrc/tmp/.X11-unix/*ss列出FIN-WAIT-1状态下的http和https连接ss-ostatefin-wait-1'(sport=:httporsport=:https)'ss常用状态status:establishedsyn-sentsyn-recvfin-wait-1fin-wait-2time-waitclosedclose-waitlast-acklistenclosingall:以上所有状态connected:除了listen和closed之外的所有状态synchronized:除了syn-sentbucket之外的所有连接状态:显示状态,这是维护的minisockets,即time-wait和syn-recv.big:与bucketstate.ss相反使用IP地址过滤sssrcADDRESS_PATTERNsrc:表示来源ADDRESS_PATTERN:表示地址规则如下:sssrc120.33.31.1#列出来自20.33的连接。31.1# 列出连接端口120.33.31.1,80sssrc120.33.31.1:httpsssrc120.33.31.1:80ss使用端口过滤ssdportOPPORTOP:yesoperatorPORT:表示端口dport:表示过滤目标端口,相反sportOP运算符如下:<=或le:小于或等于>=或ge:大于或等于==或eq:等于!=或ne:不等于端口<或lt:小于此port>或gt:大于端口OP示例sssport=:http也可以是sssport=:80ssdport=:httpssdport\>:1024sssport\>:1024sssport\<:32000sssporteq:22ssdport!=:22ssstateconnectedsport=:httpss\(sport=:httporsport=:https\)ss-ostatefin-wait-1\(sport=:httporsport=:https\)dst192.168.1/24为什么ss比netstat快:netstat遍历/proc下的各个PID目录,ss直接读取/proc/net下的统计信息。所以ss在执行ss命令时比netstat消耗的资源和时间要少得多helpss-h用法:ss[OPTIONS]ss[OPTIONS][FILTER]-h,--helpthismessage-V,--version输出版本信息-n,--numeric不解析服务名-r,--resolve解析主机名-a,--all显示所有套接字-l,--listening显示监听套接字-o,--options显示计时器信息-e,--extended显示详细的套接字信息-m,--memory显示套接字内存使用情况-p,--processes显示使用套接字的进程-i,--info显示内部TCP信息-s,--summary显示套接字使用摘要-4,--ipv4仅显示IP版本4套接字-6,--ipv6仅显示IP版本6套接字-0,--packet显示PACKET套接字-t,--tcp仅显示TCP套接字-u,--udp仅显示UDP套接字-d,--dccp仅显示DCCP套接字-w,--raw仅显示RAW套接字-x,--unix仅显示Unix域套接字-f,--family=FAMILY显示FAMILY类型的套接字-A,--query=QUERY,--socket=QUERYQUERY:={all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]-D,--diag=FILE将有关TCP套接字的原始信息转储到FILE-F,--filter=FILE从FILEFILTER中读取过滤器信息:=[状态TCP-STATE][表达式]