专栏首页技术博文linux ss命令使用详解

linux ss命令使用详解

ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用netstat等于浪费 生命,而用ss才是节省时间。

天下武功唯快不破。ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。当然,如果你的系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢。(但仍然比 netstat要快。)

SS命令可以提供如下信息:

所有的TCP sockets 所有的UDP sockets 所有ssh/ftp/ttp/https持久连接 所有连接到Xserver的本地进程 使用state(例如:connected, synchronized, …

1.命令格式:

ss [参数]

ss [参数] [过滤]

2.命令功能:

ss(Socket Statistics的缩写)命令可以用来获取 socket统计信息,此命令输出的结果类似于 netstat输出的内容,但它能显示更多更详细的 TCP连接状态的信息,且比 netstat 更快速高效。它使用了 TCP协议栈中 tcp_diag(是一个用于分析统计的模块),能直接从获得第一手内核信息,这就使得 ss命令快捷高效。在没有 tcp_diag,ss也可以正常运行。

3.命令参数:

-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 ]

ss和netstat效率对比

time netstat -at

time ss

用time 命令分别获取通过netstat和ss命令获取程序和概要占用资源所使用的时间。在服务器连接数比较多的时候,netstat的效率完全没法和ss比。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 经典加密解密函数

    <?php /** * 加密解密函数 * @param string $string 明文 或 密文 * @param string $oper...

    joshua317
  • 微信公众平台开发接口PHP SDK完整版

    官方提供的SDK只有一个文本消息功能,我们将所有消息的消息类型及事件响应都整理了进来,并且加入日志记录,代码如下: 更新日志: 2013-01-01 版本1.0...

    joshua317
  • PHP抓取采集类snoopy

    snoopy是一个php类,用来模仿web浏览器的功能,它能完成获取网页内容和发送表单的任务。官方网站 http://snoopy.sourceforge.ne...

    joshua317
  • 币猫COINCAT—一个95%代币由用户流通做主的交易即挖矿平台

    在最近几个月,交易挖矿模式的交易所层出不穷,先有Fcoin平台币FT上涨百倍,后有OXC的连续暴涨,当然这些币之后都出现了不同程度的下跌,但第一批的玩家都是赚了...

    区块链领域
  • js中的函数声明你真的会了吗???

    2、只有在function内部新声明的才是局部变量,在if,while,for等声明的变量其实是全局变量(除非本身在function内部)

    李才哥
  • Vue-router路由判断页面未登录跳转到登录页面

    router.beforeEach((to, from, next) => { if (to.matched.some(record => record.m...

    蓓蕾心晴
  • 【统计学家的故事】世界上最长寿的统计学家:沃尔特·弗朗西斯·威尔科克斯

    沃尔特·弗朗西斯·威尔科克斯(Walter Francis Wilcox,1861—1964),美国统计学家。

    统计学家
  • OCP-052考试题库汇总(48)-CUUG内部解答版

    Which is true about the Automatic Diagnostic Repository (ADR) ?

    用户5892232
  • 对自适应的一些理解

    最近公司在招人,对于移动端自适应的问题大部分回答的都不在我认为的答案。今天说一下自己对移动端自适应的理解,有错欢迎指正。

    wade
  • joplin调整markdown展示字体大小

    joplin怎么调整字体大小呢?我相信比较少有人听过joplin,joplin是一个小众的笔记软件(https://joplinapp.org/)。但小编已经用...

    超级大猪

扫码关注云+社区

领取腾讯云代金券