当前位置: 首页 > Linux

Linuxss命令

时间:2023-04-06 19:25:56 Linux

ss是SocketStatistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,可以显示类似netstat的内容。但是ss的优点是可以显示更多更详细的TCP和连接状态信息,而且比netstat更快更高效。当服务器上的socket连接数变得非常多时,无论是使用netstat命令还是直接cat/proc/net/tcp,执行速度都会很慢。ssfast的秘密在于它利用了TCP协议栈中的tcp_diag。tcp_diag是一个分析统计模块,可以获取Linux内核中的第一手信息,保证ss快速高效。当然,如果你的系统中没有tcp_diag,ss也可以正常运行,只是效率会稍微变慢。(但仍然比netstat快。)ss命令用于显示套接字状态。它可以显示PACKET套接字、TCP套接字、UDP套接字、DCCP套接字、RAW套接字、Unix域套接字等统计信息。它比其他工具显示更多的TCP和状态信息。是一款非常实用、快速、有效的跟踪IP连接和套接字的新工具。ss命令可以提供如下信息命令格式ss[参数]ss[参数][过滤命令功能优于netstatsocket统计信息,是iproute2自带的另一个包一个可以查询socket统计信息的工具命令参数-h,--help帮助信息-V,--version程序版本信息-n,--numeric不解析服务名-r,--resolve解析主机名-a,--all显示所有套接字-l,--listening显示监听套接字-o,--options显示定时器信息-e,--extended显示详细的套接字(sockets)信息-m,--memory显示套接字(socket)内存使用情况-p,--processes显示进程使用套接字(socket)-i,--info显示TCP内部信息-s,--summary显示套接字(socket)使用overview-4,--ipv4仅显示IPv4套接字(sockets)-6,--ipv6仅显示IPv6套接字(sockets)-0,--packet显示PACKET套接字(sockets)-t,--tcp只显示TCP套接字(sockets)-u,--udp只显示UCP套接字(sockets)-d,--dccp只显示DCCP套接字(sockets)-w,--raw仅显示RAW套接字(sockets)-x,--unix仅显示Unix套接字(sockets)-f,--family=FAMILY显示FAMILY类型套接字(sockets)),FAMILY可选,支持unix,inet,inet6,链接,netlink-A,--query=QUERY,--socket=QUERYQUERY:={all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]-D,--diag=FILE将原始TCP套接字信息转储到文件-F,--filter=FILE从文件中读取过滤信息FILTER:=[stateTCP-STATE][EXPRESSION]showTCPconnections>ss-a-tshowUDPlink>ss-a-ushowSoketssummary>ss-slistcurrentestablished,closed,orphanedandwaitingTCPsocketsshowallportsopenedlocally>ss-ln查看进程使用的套接字>ss-pl查找打开的套接字/端口应用程序>ss-nlp|grep3306显示所有状态已建立的SMTP连接>ss-ostateestablished'(dport=:smtporsport=:smtp)'显示所有状态已建立的HTTP连接>ss-ostateestablished'(dport=:httporsport=:http)'FilterSocketswithTCPstate>ss-4stateFILTER-NAME-HERE>ss-6stateFILTER-NAME-HEREFILTER-NAME-HERE可以是以下任何监听:监听来自远程TCP端口的连接请求syn-sent:发送连接请求后等待匹配的连接请求(client)syn-recv:接收并发送连接请求后等待对方确认连接请求(server)established:表示打开连接fin-wait-1:等待远程TCP连接中断请求,或者上一个连接中断请求的确认fin-wait-2:等待来自远程TCPRequest的连接中断close-wait:等待本地发送的连接中断请求userClosing:等待远程TCP确认连接中断last-ack:等待发送给远程TCP的原始连接中断请求的确认time-wait:等待足够的时间以确保远程TCP收到连接中断请求的确认closed:没有连接状态all:alltheabovestatesconnected:exceptAllstatesoflistenandclosedsynchronized:allconnectedstatesexceptsyn-sentbucket:显示状态保持为minisockets,如:time-wait和syn-recv.big:与bucket相反。匹配远程地址和端口号>ssdstADDRESS_PATTERN>ssdst192.168.1.1>ssdst192.168.21.1:http>ssdst192.168.21.1:smtp>ssdst192.168.21.1:443比较本地或远程端口号>sssport=:http>ssdport=:http>ssdport\>:1024>sssport\>:1024>sssport\<:32000>sssporteq:22>ssdport!=:22>ssstateconnectedsport=:http>ss\(sport=:httporsport=:https\)>ss-ostatefin-wait-1\(sport=:httporsport=:https\)dst192.168.1/24ssdportOPPORT将远程端口与数字进行比较;sssportOPPORT将本地端口与一个数字进行比较OP可以表示以下任何一种:<=或le:小于或等于端口号>=或ge:大于或等于端口号==或eq:等于端口号!=或ne:不等于端口numberorlt:大于端口号ss和netstat效率比较timenetstat-attimess>timenetstat-atreal0m10.849suser0m0.013ssys0m0.008s>timessreal0m0.008suser0m0.004ssys0m0.004s分别通过time命令获取netstat和ss命令获取程序使用的时间和汇总资源。当服务器连接数比较多的时候,netstat的效率根本无法和ss相比。原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门站