你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Linuxss命令——显示socket状态

[复制链接]
gaosmile 发布时间:2020-11-11 19:03
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. # time netstat -ant | grep EST | wc -l
  3. 3100

  4. real 0m12.960s
  5. user 0m0.334s
  6. sys 0m12.561s
  7. # time ss -o state established | wc -l
  8. 3204

  9. real 0m0.030s
  10. user 0m0.005s
  11. sys 0m0.026s
复制代码

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

常用ss命令:

  1. ss -l 显示本地打开的所有端口
  2. ss -pl 显示每个进程具体打开的socket
  3. ss -t -a 显示所有tcp socket
  4. ss -u -a 显示所有的UDP Socekt
  5. ss -o state established '( dport = :smtp or sport = :smtp )' 显示所有已建立的SMTP连接
  6. ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接
  7. ss -x src /tmp/.X11-unix/* 找出所有连接X服务器的进程
  8. ss -s 列出当前socket详细信息:
复制代码

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

  1. # ss -s
  2. Total: 3519 (kernel 3691)
  3. TCP: 26557 (estab 3163, closed 23182, orphaned 194, synrecv 0, timewait 23182/0), ports 1452

  4. Transport Total IP IPv6
  5. * 3691 - -
  6. RAW 2 2 0
  7. UDP 10 7 3
  8. TCP 3375 3368 7
  9. INET 3387 3377 10
  10. FRAG 0 0 0
复制代码

列出当前监听端口

  1. # ss -lRecv-Q Send-Q Local Address:Port Peer Address:Port
  2. 0 10 :::5989 :::*
  3. 0 5 *:rsync *:*
  4. 0 128 :::sunrpc :::*
  5. 0 128 *:sunrpc *:*
  6. 0 511 *:http *:*
  7. 0 128 :::ssh :::*
  8. 0 128 *:ssh *:*
  9. 0 128 :::35766 :::*
  10. 0 128 127.0.0.1:ipp *:*
  11. 0 128 ::1:ipp :::*
  12. 0 100 ::1:smtp :::*
  13. 0 100 127.0.0.1:smtp *:*
  14. 0 511 *:https *:*
  15. 0 100 :::1311 :::*
  16. 0 5 *:5666 *:*
  17. 0 128 *:3044 *:*
复制代码

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

  • # ss -pl


ss列所有的tcp sockets

  • # ss -t -a


ss列出所有udp sockets

  • # ss -u -a


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

  • # ss -o state established '( dport = :http or sport = :http )'

·以上包含对外提供的80,以及访问外部的80
·用以上命令完美的替代netstat获取http并发连接数,监控中常用到

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

  • # ss -x src /tmp/.X11-unix/*


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

  • # ss -o state fin-wait-1 '( sport = :http or sport = :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 : All of the above states
  13. connected : All the states except for listen and closed
  14. synchronized : All the connected states except for syn-sent
  15. bucket : Show states, which are maintained as minisockets, i.e. time-wait and syn-recv.
  16. big : Opposite to bucket state.
复制代码

ss使用IP地址筛选

  1. ss src ADDRESS_PATTERN
  2. src:表示来源
  3. ADDRESS_PATTERN:表示地址规则
  4. 如下:
  5. ss src 120.33.31.1 # 列出来之20.33.31.1的连接

  6. # 列出来至120.33.31.1,80端口的连接
  7. ss src 120.33.31.1:http
  8. ss src 120.33.31.1:8
复制代码

ss使用端口筛选

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

OP运算符如下:

  1. <= or le : 小于等于 >= or ge : 大于等于
  2. == or eq : 等于
  3. != or ne : 不等于端口
  4. < or lt : 小于这个端口 > or gt : 大于端口
复制代码

OP实例

  1. ss sport = :http 也可以是 ss sport = :80
  2. ss dport = :http
  3. ss dport \> :1024
  4. ss sport \> :1024
  5. ss sport \< :32000
  6. ss sport eq :22
  7. ss dport != :22
  8. ss state connected sport = :http
  9. ss \( sport = :http or sport = :https \)
  10. ss -o state fin-wait-1 \( sport = :http or sport = :https \) dst 192.168.1/24
复制代码

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

ss命令帮助

  1. # ss -h
  2. Usage: ss [ OPTIONS ]
  3.        ss [ OPTIONS ] [ FILTER ]
  4.    -h, --help           this message
  5.    -V, --version        output version information
  6.    -n, --numeric        don't resolve service names
  7.    -r, --resolve       resolve host names
  8.    -a, --all            display all sockets
  9.    -l, --listening      display listening sockets
  10.    -o, --options       show timer information
  11.    -e, --extended      show detailed socket information
  12.    -m, --memory        show socket memory usage
  13.    -p, --processes      show process using socket
  14.    -i, --info           show internal TCP information
  15.    -s, --summary        show socket usage summary
  16.    -4, --ipv4          display only IP version 4 sockets
  17.    -6, --ipv6          display only IP version 6 sockets
  18.    -0, --packet display PACKET sockets
  19.    -t, --tcp            display only TCP sockets
  20.    -u, --udp            display only UDP sockets
  21.    -d, --dccp           display only DCCP sockets
  22.    -w, --raw            display only RAW sockets
  23.    -x, --unix           display only Unix domain sockets
  24.    -f, --family=FAMILY display sockets of type FAMILY
  25.    -A, --query=QUERY, --socket=QUERY
  26.        QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
  27.    -D, --diag=FILE      Dump raw information about TCP sockets to FILE
  28.    -F, --filter=FILE   read filter information from FILE
  29.        FILTER := [ state TCP-STATE ] [ EXPRESSION ]
复制代码

收藏 评论0 发布时间:2020-11-11 19:03

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版