• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Linux之ss命令

linux 搞代码 3年前 (2022-03-03) 26次浏览 已收录 0个评论

ss是Socket Statistics的缩写。顾名思义,ss命令能够用来获取socket统计信息,它能够显示和netstat相似的内容。但ss的劣势在于它可能显示更多更具体的无关TCP和连贯状态的信息,而且比netstat更疾速更高效。

当服务器的socket连贯数量变得十分大时,无论是应用netstat命令还是间接cat /proc/net/tcp,执行速度都会很慢。

ss快的秘诀在于,它利用到了TCP协定栈中tcp_diag。tcp_diag是一个用于剖析统计的模块,能够取得Linux内核中第一手的信息,这就确保了ss的快捷高效。当然,如果你的零碎中没有tcp_diag,ss也能够失常运行,只是效率会变得稍慢。(但依然比netstat要快。)

ss命令用于显示socket状态. 他能够显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计. 它比其余工具展现等多tcp和state信息. 它是一个十分实用、疾速、无效的跟踪IP连贯和sockets的新工具.SS命令能够提供如下信息

命令格局

ss [参数]
ss [参数] [过滤

命令性能

比 netstat 好用的socket统计信息,iproute2 包附带的另一个工具,容许你查问 socket 的无关统计信息

命令参数

  • -h, –help 帮忙信息
  • -V, –version 程序版本信息
  • -n, –numeric 不解析服务名称
  • -r, –resolve 解析主机名
  • -a, –all 显示所有套接字(sockets)
  • -l, –listening 显示监听状态的套接字(sockets)
  • -o, –options 显示计时器信息
  • -e, –extended 显示具体的套接字(sockets)信息
  • -m, –memory 显示套接字(socket)的内存应用状况
  • -p, –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 仅显示 Unix套接字(sockets)
  • -f, –family=FAMILY 显示 FAMILY类型的套接字(sockets),FAMILY可选,反对 unix, inet, inet6, link, netlink
  • -A, –query=QUERY, –socket=QUERY QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
  • -D, –diag=FILE 将原始TCP套接字(sockets)信息转储到文件
  • -F, –filter=FILE 从文件中读取过滤器信息 FILTER := [ state TCP-STATE ] [ EXPRESSION ]

显示TCP连贯

> ss -a -t

显示UDP链接

> ss -a -u

显示Sokets摘要

> ss -s

列出以后的established, closed, orphaned and waiting TCP sockets

显示本地关上的所有端口

> ss -ln

查看过程应用的socket

> ss -pl

找出关上套接字/端口应用程序

> ss -nlp | grep 3306

显示所有状态为established的SMTP连贯

> ss -o state established '( dport = :smtp or sport = :smtp )'

显示所有状态为Established的HTTP连贯

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

用TCP 状态过滤Sockets

> ss -4 state FILTER-NAME-HERE 
> ss -6 state FILTER-NAME-HERE

FILTER-NAME-HERE能够是上面的任何一个

  • listen:侦听来自远方的TCP端口的连贯申请
  • syn-sent:再发送连贯申请后期待匹配的连贯申请(客户端)
  • syn-recv:再收到和发送一个连贯申请后期待对方对连贯申请的确认(服务器)
  • established:代表一个关上的连贯
  • fin-wait-1:期待近程TCP连贯中断请求,或先前的连贯中断请求的确认
  • fin-wait-2:从近程TCP期待连贯中断请求
  • close-wait:期待从本地用户发来的连贯中断请求
  • closing:期待近程TCP对连贯中断的确认
  • last-ack:期待原来的发向近程TCP的连贯中断请求的确认
  • time-wait:期待足够的工夫以确保近程TCP接管到连贯中断请求的确认
  • closed:没有任何连贯状态
  • all : 所有以上状态
  • connected : 除了listen and closed的所有状态
  • synchronized :所有已连贯的状态除了syn-sent
  • bucket : 显示状态为maintained as minisockets,如:time-wait和syn-recv.
  • big : 和bucket相同.

匹配近程地址和端口号

> ss dst ADDRESS_PATTERN
> ss dst 192.168.1.1
> ss dst 192.168.21.1:http 
> ss dst 192.168.21.1:smtp 
> ss dst 192.168.21.1:443

将本地或者近程端口和一个数比拟

> ss  sport = :http 
> ss  dport = :http 
> ss  dport \> :1024 
> ss  sport \> :1024 
> ss sport \< :32000 
> ss  sport eq :22 
> ss  dport != :22 
> ss  state connected sport = :http 
> ss \( sport = :http or sport = :https \) 
> ss -o state fin-wait-1 \( sport = :http or sport = :https \) dst 192.168.1/24

ss dport OP PORT 近程端口和一个数比拟;ss sport OP PORT 本地端口和一个数比拟。

  • OP 能够代表以下任意一个:
  • <= or le : 小于或等于端口号
  • >= or ge : 大于或等于端口号
  • == or eq : 等于端口号
  • != or ne : 不等于端口号
  • < or gt : 小于端口号
  • > or lt : 大于端口号

ss 和 netstat 效率比照

  • time netstat -at
  • time ss
> time netstat -at
real    0m10.849s
user    0m0.013s
sys    0m0.008s
> time ss
real    0m0.008s
user    0m0.004s
sys    0m0.004s

用time 命令别离获取通过netstat和ss命令获取程序和概要占用资源所应用的工夫。在服务器连接数比拟多的时候,netstat的效率齐全没法和ss比。

原文链接:https://rumenz.com/rumenbiji/&#8230;
微信公众号:入门小站


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Linux之ss命令

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址