比 netstat 好用?Linux 网络状态工具 ss 详解

2025-05-27 0 22

比 netstat 好用?Linux 网络状态工具 ss 详解

ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计. 它比其他工具展示等多tcp和state信息. 它是一个非常实用、快速、有效的跟踪IP连接和sockets的新工具.SS命令可以提供如下信息:

  • 所有的TCP sockets
  • 所有的UDP sockets
  • 所有ssh/ftp/ttp/https持久连接
  • 所有连接到Xserver的本地进程
  • 使用state(例如:connected, synchronized, SYN-RECV, SYN-SENT,TIME-WAIT)、地址、端口过滤
  • 所有的state FIN-WAIT-1 tcpsocket连接以及更多

很多流行的Linux发行版都支持ss以及很多监控工具使用ss命令.熟悉这个工具有助于您更好的发现与解决系统性能问题.本人强烈建议使用ss命令替代netstat部分命令,例如netsat -ant/lnt等.

展示他之前来做个对比,统计服务器并发连接数

  1. netstat
  2. #timenetstat-ant|grepEST|wc-l
  3. 3100
  4. real0m12.960s
  5. user0m0.334s
  6. sys0m12.561s
  7. #timess-ostateestablished|wc-l
  8. 3204
  9. real0m0.030s
  10. user0m0.005s
  11. sys0m0.026s

结果很明显ss统计并发连接数效率完胜netstat,在ss能搞定的情况下, 你还会在选择netstat吗, 还在犹豫吗, 看以下例子,或者跳转到帮助页面.

常用ss命令:

  1. ss-l显示本地打开的所有端口
  2. ss-pl显示每个进程具体打开的socket
  3. ss-t-a显示所有tcpsocket
  4. ss-u-a显示所有的UDPSocekt
  5. ss-ostateestablished'(dport=:smtporsport=:smtp)'显示所有已建立的SMTP连接
  6. ss-ostateestablished'(dport=:httporsport=:http)'显示所有已建立的HTTP连接
  7. ss-xsrc/tmp/.X11-unix/*找出所有连接X服务器的进程
  8. ss-s列出当前socket详细信息:

显示sockets简要信息,列出当前已经连接,关闭,等待的tcp连接

  1. #ss-s
  2. Total:3519(kernel3691)
  3. TCP:26557(estab3163,closed23182,orphaned194,synrecv0,timewait23182/0),ports1452
  4. TransportTotalIPIPv6
  5. *3691–
  6. RAW220
  7. UDP1073
  8. TCP337533687
  9. INET3387337710
  10. FRAG000

列出当前监听端口

  1. #ss-lRecv-QSend-QLocalAddress:PortPeerAddress:Port
  2. 010:::5989:::*
  3. 05*:rsync*:*
  4. 0128:::sunrpc:::*
  5. 0128*:sunrpc*:*
  6. 0511*:http*:*
  7. 0128:::ssh:::*
  8. 0128*:ssh*:*
  9. 0128:::35766:::*
  10. 0128127.0.0.1:ipp*:*
  11. 0128::1:ipp:::*
  12. 0100::1:smtp:::*
  13. 0100127.0.0.1:smtp*:*
  14. 0511*:https*:*
  15. 0100:::1311:::*
  16. 05*:5666*:*
  17. 0128*:3044*:*

ss列出每个进程名及其监听的端口

  1. #ss-pl

ss列所有的tcp sockets

  1. #ss-t-a

ss列出所有udp sockets

  1. #ss-u-a

ss列出所有http连接中的连接

  1. #ss-ostateestablished'(dport=:httporsport=:http)'

·以上包含对外提供的80,以及访问外部的80

·用以上命令完美的替代netstat获取http并发连接数,监控中常用到

ss列出本地哪个进程连接到x server

  1. #ss-xsrc/tmp/.X11-unix/*

ss列出处在FIN-WAIT-1状态的http、https连接

  1. #ss-ostatefin-wait-1'(sport=:httporsport=:https)'

ss常用的state状态:

  1. established
  2. syn-sent
  3. syn-recv
  4. fin-wait-1
  5. fin-wait-2
  6. time-wait
  7. closed
  8. close-wait
  9. last-ack
  10. listen
  11. closing
  12. all:Alloftheabovestates
  13. connected:Allthestatesexceptforlistenandclosed
  14. synchronized:Alltheconnectedstatesexceptforsyn-sent
  15. bucket:Showstates,whicharemaintainedasminisockets,i.e.time-waitandsyn-recv.
  16. big:Oppositetobucketstate.

ss使用IP地址筛选

  1. sssrcADDRESS_PATTERN
  2. src:表示来源
  3. ADDRESS_PATTERN:表示地址规则
  4. 如下:
  5. sssrc120.33.31.1#列出来之20.33.31.1的连接
  6. # 列出来至120.33.31.1,80端口的连接
  7. sssrc120.33.31.1:http
  8. sssrc120.33.31.1:8

ss使用端口筛选

  1. ssdportOPPORT
  2. OP:是运算符
  3. PORT:表示端口
  4. dport:表示过滤目标端口、相反的有sport

OP运算符如下:

  1. <=orle:小于等于>=orge:大于等于
  2. ==oreq:等于
  3. !=orne:不等于端口
  4. <orlt:小于这个端口>orgt:大于端口

OP实例

  1. sssport=:http也可以是sssport=:80
  2. ssdport=:http
  3. ssdport\\>:1024
  4. sssport\\>:1024
  5. sssport\\<:32000
  6. sssporteq:22
  7. ssdport!=:22
  8. ssstateconnectedsport=:http
  9. ss\\(sport=:httporsport=:https\\)
  10. ss-ostatefin-wait-1\\(sport=:httporsport=:https\\)dst192.168.1/24

为什么ssnetstat快:

netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多

ss命令帮助

  1. #ss-h
  2. Usage:ss[OPTIONS]
  3. ss[OPTIONS][FILTER]
  4. -h,–helpthismessage
  5. -V,–versionoutputversioninformation
  6. -n,–numericdon'tresolveservicenames
  7. -r,–resolveresolvehostnames
  8. -a,–alldisplayallsockets
  9. -l,–listeningdisplaylisteningsockets
  10. -o,–optionsshowtimerinformation
  11. -e,–extendedshowdetailedsocketinformation
  12. -m,–memoryshowsocketmemoryusage
  13. -p,–processesshowprocessusingsocket
  14. -i,–infoshowinternalTCPinformation
  15. -s,–summaryshowsocketusagesummary
  16. -4,–ipv4displayonlyIPversion4sockets
  17. -6,–ipv6displayonlyIPversion6sockets
  18. -0,–packetdisplayPACKETsockets
  19. -t,–tcpdisplayonlyTCPsockets
  20. -u,–udpdisplayonlyUDPsockets
  21. -d,–dccpdisplayonlyDCCPsockets
  22. -w,–rawdisplayonlyRAWsockets
  23. -x,–unixdisplayonlyUnixdomainsockets
  24. -f,–family=FAMILYdisplaysocketsoftypeFAMILY
  25. -A,–query=QUERY,–socket=QUERY
  26. QUERY:={all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
  27. -D,–diag=FILEDumprawinformationaboutTCPsocketstoFILE
  28. -F,–filter=FILEreadfilterinformationfromFILE
  29. FILTER:=[stateTCP-STATE][EXPRESSION]

原文链接:https://mp.weixin.qq.com/s/hKqsczBzk4y2KYxAH5RZvg

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 比 netstat 好用?Linux 网络状态工具 ss 详解 https://www.kuaiidc.com/61623.html

相关文章

发表评论
暂无评论