百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux之ss命令 linux sse

myzbx 2024-12-18 15:47 55 浏览

【Linux常用命令速查手册】关注【入门小站】,后台回复 「1001」 自取。

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/linux-ss.html
微信公众号:入门小站

【Linux常用命令速查手册】关注【入门小站】,后台回复 「1001」 自取。

相关推荐

如何设计一个优秀的电子商务产品详情页

加入人人都是产品经理【起点学院】产品经理实战训练营,BAT产品总监手把手带你学产品电子商务网站的产品详情页面无疑是设计师和开发人员关注的最重要的网页之一。产品详情页面是客户作出“加入购物车”决定的页面...

怎么在JS中使用Ajax进行异步请求?

大家好,今天我来分享一项JavaScript的实战技巧,即如何在JS中使用Ajax进行异步请求,让你的网页速度瞬间提升。Ajax是一种在不刷新整个网页的情况下与服务器进行数据交互的技术,可以实现异步加...

中小企业如何组建,管理团队_中小企业应当如何开展组织结构设计变革

前言写了太多关于产品的东西觉得应该换换口味.从码农到架构师,从前端到平面再到UI、UE,最后走向了产品这条不归路,其实以前一直再给你们讲.产品经理跟项目经理区别没有特别大,两个岗位之间有很...

前端监控 SDK 开发分享_前端监控系统 开源

一、前言随着前端的发展和被重视,慢慢的行业内对于前端监控系统的重视程度也在增加。这里不对为什么需要监控再做解释。那我们先直接说说需求。对于中小型公司来说,可以直接使用三方的监控,比如自己搭建一套免费的...

Ajax 会被 fetch 取代吗?Axios 怎么办?

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!今天给大家带来的主题是ajax、fetch...

前端面试题《AJAX》_前端面试ajax考点汇总

1.什么是ajax?ajax作用是什么?AJAX=异步JavaScript和XML。AJAX是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX可以使网页实...

Ajax 详细介绍_ajax

1、ajax是什么?asynchronousjavascriptandxml:异步的javascript和xml。ajax是用来改善用户体验的一种技术,其本质是利用浏览器内置的一个特殊的...

6款可替代dreamweaver的工具_替代powerdesigner的工具

dreamweaver对一个web前端工作者来说,再熟悉不过了,像我07年接触web前端开发就是用的dreamweaver,一直用到现在,身边的朋友有跟我推荐过各种更好用的可替代dreamweaver...

我敢保证,全网没有再比这更详细的Java知识点总结了,送你啊

接下来你看到的将是全网最详细的Java知识点总结,全文分为三大部分:Java基础、Java框架、Java+云数据小编将为大家仔细讲解每大部分里面的详细知识点,别眨眼,从小白到大佬、零基础到精通,你绝...

福斯《死侍》发布新剧照 &quot;小贱贱&quot;韦德被改造前造型曝光

时光网讯福斯出品的科幻片《死侍》今天发布新剧照,其中一张是较为罕见的死侍在被改造之前的剧照,其余两张剧照都是死侍在执行任务中的状态。据外媒推测,片方此时发布剧照,预计是为了给不久之后影片发布首款正式预...

2021年超详细的java学习路线总结—纯干货分享

本文整理了java开发的学习路线和相关的学习资源,非常适合零基础入门java的同学,希望大家在学习的时候,能够节省时间。纯干货,良心推荐!第一阶段:Java基础重点知识点:数据类型、核心语法、面向对象...

不用海淘,真黑五来到你身边:亚马逊15件热卖爆款推荐!

Fujifilm富士instaxMini8小黄人拍立得相机(黄色/蓝色)扫二维码进入购物页面黑五是入手一个轻巧可爱的拍立得相机的好时机,此款是mini8的小黄人特别版,除了颜色涂装成小黄人...

2025 年 Python 爬虫四大前沿技术:从异步到 AI

作为互联网大厂的后端Python爬虫开发,你是否也曾遇到过这些痛点:面对海量目标URL,单线程爬虫爬取一周还没完成任务;动态渲染的SPA页面,requests库返回的全是空白代码;好不容易...

最贱超级英雄《死侍》来了!_死侍超燃

死侍Deadpool(2016)导演:蒂姆·米勒编剧:略特·里斯/保罗·沃尼克主演:瑞恩·雷诺兹/莫蕾娜·巴卡林/吉娜·卡拉诺/艾德·斯克林/T·J·米勒类型:动作/...

停止javascript的ajax请求,取消axios请求,取消reactfetch请求

一、Ajax原生里可以通过XMLHttpRequest对象上的abort方法来中断ajax。注意abort方法不能阻止向服务器发送请求,只能停止当前ajax请求。停止javascript的ajax请求...