ss命令详细使用讲解文章

ss 命令作为 iproute2 软件包的一部分,是Socket Statistics的缩写,也称为IPC(Inter-process Communication)套接字统计

ss命令用于显示sockets(套接字)的状态。与netstat类似,但它通常提供更详细的统计信息和更快的性能。但ss更高效因为它直接利用了内核的TCP连接跟踪状态信息(通过tcp_diag)模块,并且提供了更丰富和详细的网络连接状态视图。
ss 命令的输出可以与 grepawksort 等命令结合使用,进行更复杂的数据处理和过滤。

ss:基本语法

ss [选项] [过滤器]

常见命令选项 

用法:ss [OPTIONS]
ss        [选项]       [过滤器]
-h、   --帮助此消息
-V、  --版本输出版本信息
-n、或  --numeric: --数字不解析服务名称,(不进行 DNS 解析,直接显示 IP 地址和端口号。)
-r、或  --resolve: --解析主机名。尝试解析 IP 地址到主机名和端口号到服务名。
-a、  --所有显示所有插座
-l、   --监听显示监听插座
-o、 或  --options:  显示计时器和套接字选项。
-e、  --extended --扩展显示详细的套接字信息 ,(显示更多详细信息,如套接字的标记、队列长度等。)
-m、  --内存显示套接字内存使用情况
-p、 或  --processes   --进程显示使用套接字的进程。(显示与套接字关联的进程 ID 和名称。)
-i、    --info显示内部TCP信息
-s、   --summary显示套接字使用情况摘要
-b、   --bpf显示bpf筛选器套接字信息
-E、  --事件在套接字被破坏时不断显示套接字
-Z、  --上下文显示进程SELinux安全上下文
-z、  --上下文显示进程和套接字SELinux安全上下文
-N、 --net切换到指定的网络命名空间名称
-4,  --ipv4仅显示IP版本4套接字
-6,  --ipv6仅显示IP版本6套接字
-0, --数据包显示packet套接字
-t、  --tcp仅显示tcp套接字
-S、 --sctp仅显示sctp套接字
-u、 --udp仅显示udp套接字
-d、 --dccp仅显示dccp套接字
-w、 --仅原始显示raw套接字
-x、  --unix仅显示unix域套接字
--vsock  仅显示vsock套接字
-f、 --family=family类型的family显示插座
系列:={inet|inet6|link|unix|netlink|vsock|help}
-K、 --kill强制关闭套接字,显示关闭的内容
-H、 --无标题取消标题行
 -A, --query=QUERY, --socket=QUERY
       QUERY := {all|inet|tcp|udp|raw|unix|unix_dgram|unix_stream|unix_seqpacket|
-D、 --diag=FILE将有关TCP套接字的原始信息转储到FILE
-F、 --filter=FILE从FILE读取筛选器信息
        FILTER:=[state state-FILTER][EXPRESSION]
        STATE-FILTER:={all|connected|synchronized|bucket|big|TCP-STATES}
        TCP-STATES:={已建立|已发送同步|已同步recv|fin-wait-{1,2}|时间等待|关闭|关闭等待|最后一次确认|侦听|关闭}
        connected:={已建立|同步发送|同步recv | fin wait-{1,2}|时间等待|关闭等待|最后一次确认|关闭}
        synchronized:={已建立|syn-recv|fin-wait-{1,2}|时间等待|关闭等待|最后一次确认|关闭}
        bucket:={syn-recv | time wait}
        big:={已建立|syn-sent|fin-wait-{1,2}|closed|close-wait|last-ack|listen|closed}

显示所有套接字

ss 或 ss -a:显示所有类型的套接字,包括监听(Listening)和非监听状态的。

ss -a

 仅显示监听套接字

ss -l:列出所有监听状态的套接字。

ss -l

 TCP 和 UDP 连接

ss -t:显示所有 TCP 连接。

ss -u:显示所有 UDP 连接。

ss -t
ss -u
结合选项 

ss -at:显示所有 TCP 连接(包括监听和非监听)。

ss -au:显示所有 UDP 连接。

ss -at
ss -au

 过滤与排序

  • 可以通过 -f 或 --filter 加上表达式来过滤输出,比如 state established 只显示已建立的连接。
  • 使用 -o 后可以加上列名对输出进行排序,例如,-o state 按照状态排序。

要查看所有正在监听的 TCP 连接

ss -lt

要查看所有 TCP 连接,并解析主机名和端口号

ss -ane

要查看所有连接,并显示进程信息

ss -ap

输出排序与限制

  • 排序:使用 -o 或 --sort 选项可以对输出进行排序,例如按接收或发送的数据量排序。
  • 限制输出数量:使用 -n (与 -t-u-x 等结合) 限制输出的条目数,如 ss -nt 10 只显示前10个TCP连接。

目标筛选

  • 指定目标IP或端口:通过 dst 或 sportdport 参数筛选特定目标或端口的连接,例如 ss dst 192.168.1.1 或 ss sport = :80

统计与分析

  • 统计信息-s 或 --summary 提供了关于各种协议(TCP, UDP, RAW, UNIX等)的统计信息,包括连接数、接收/发送字节数等。
  • 计时器信息:使用 -o 选项可以显示每个套接字的计时器信息,这有助于分析网络延迟问题。

高级应用

  • 与其它命令结合ss 的输出可以方便地与 grepawksedsort 等命令结合使用,进行更复杂的过滤和数据分析。
  • 实时监控:配合 watch 命令,如 watch -n 1 'ss -ant',可以实时查看网络连接的变化情况,其中 -n 1 表示每秒更新一次。

替代传统命令

  • ss 命令因其高效性和详细信息,常被推荐作为 netstatifconfigroute 等传统网络管理命令的替代品。它不仅提供更详尽的TCP连接状态,还支持现代协议如DCCP和SCTP。

 连接状态筛选

状态筛选:你可以根据连接的状态来筛选输出。例如,ss state ESTABLISHED 会显示所有已建立的连接。

ss state established

常见的状态包括:SYN-SENTSYN-RECVESTABLISHEDFIN-WAIT-1FIN-WAIT-2TIME-WAITCLOSEDCLOSE-WAITLAST-ACKLISTENCLOSING

  1. CLOSED:

    • 这是TCP连接的初始状态,表示没有连接活动。
  2. LISTEN:

    • 服务器端socket处于此状态,表示它正在监听来自客户端的连接请求。
  3. SYN_SENT:

    • 客户端发起连接请求,发送SYN报文后进入此状态,等待服务器响应。
  4. SYN_RECEIVED:

    • 服务器接收到客户端的SYN报文后,会以SYN+ACK响应,并进入此状态,等待客户端的确认。
  5. ESTABLISHED:

    • 客户端收到服务器的SYN+ACK后,回复ACK,连接建立成功,双方进入此状态,开始数据传输。
  6. FIN_WAIT_1:

    • 连接终止的第一步,主动关闭方发送FIN报文后进入此状态,等待对方的FIN报文或ACK。
  7. FIN_WAIT_2:

    • 主动关闭方收到对方对FIN的ACK后,进入此状态,等待对方的FIN报文。
  8. CLOSE_WAIT:

    • 被动关闭方收到FIN后,回应ACK并进入此状态,此时连接还未完全关闭,等待应用程序关闭连接。
  9. CLOSING:

    • 双方几乎同时尝试关闭连接,即双方都发送了FIN且至少一端收到了ACK,但还没收到对方的FIN。
  10. LAST_ACK:

    • 被动关闭方在发送完自己的FIN后,等待最后一个ACK到来的状态。
  11. TIME_WAIT:

    • 主动关闭方在接收到对方的FIN并发送ACK后进入此状态,等待足够长的时间以确保所有分组在网络中消失,防止延迟的数据包引起混淆。
  12. CLOSED:

    • 连接彻底关闭,回到初始状态。

这些状态反映了TCP连接建立(三次握手)和拆除(四次挥手)的整个过程,以及连接期间可能出现的其他情况,如一方请求关闭连接而另一方继续处理数据等。

连接状态筛选案例

1. 查看所有已建立的连接(ESTABLISHED)

1ss state established

这个命令会显示所有TCP连接中状态为“ESTABLISHED”的连接,即数据传输正在进行中的连接。

2. 查看监听状态的套接字(LISTEN)

1ss state listening

此命令会列出所有正在监听并等待连接请求的套接字,这对于了解哪些服务正在运行并监听端口非常有用。

3. 查找处于SYN_SENT状态的连接

1ss state syn-sent

此命令显示那些已发送SYN包但尚未收到SYN+ACK确认的连接,这可能意味着连接建立过程中出现了延迟或问题。

4. 查看TIME_WAIT状态的连接

1ss state time-wait

TIME_WAIT状态表示连接已经关闭,但是为了确保所有数据包都被正确接收,套接字在一段时间内保持打开。过多的TIME_WAIT状态可能表明之前有很多连接被快速打开和关闭。

5. 查找CLOSE_WAIT状态的连接

1ss state close-wait

CLOSE_WAIT状态意味着本地端已经接收到对方的关闭连接请求,但还没有完成关闭操作。长时间处于此状态可能意味着程序未正确关闭连接。

6. 显示所有状态的连接,包括不常见状态

1ss state all

此命令将显示所有状态的网络连接,包括但不限于上述提到的状态,有助于全面了解系统的网络连接状况。

7. 结合其他条件进行筛选

例如,查找特定IP的ESTABLISHED连接:

1ss state established dst 10.0.0.1

这会显示所有与IP地址10.0.0.1之间已建立的TCP连接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/37552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WebKit 简介及工作流程探秘

在探索现代互联网世界的奥秘时,浏览器引擎是不可或缺的一环,而 WebKit 正是其中的佼佼者。WebKit,这个开源的浏览器渲染引擎,以其卓越的性能和广泛的支持度,成为了 Safari、早期的 Chrome 以及其他众多浏览器的核心。本…

【笔试记录】华为 | 20230823 | cpp

获取连通的相邻节点列表 题目描述 在网元内,存在了 N 个转发节点,每个转发节点有自己唯一的标识 TB 且每个节点有 M 个端口,节点间通过端口进行报文通讯。出于业务隔离的需求,服务器内的端口被划分为多个通讯平面(用 VLAN 隔离&…

取消lfs, 使用原始文件上传的办法

查询当前仓库使用lfs的文件,然后删除 git lfs ls-files 删除lfs文件后,提交commit git add . git commit -m"remove lfs file" 查询本地lfs配置 git config --local --list 重置本地lfs配置 git config --unset filter.lfs.smudgegit co…

从0到1搭建微服务框架

目录 1.技术栈: 2.模块介绍: 3.关键代码讲解 3.1基础公共模块(common)依赖: 3.3授权模块(auth)依赖: 3.4授权模块核心配置类(AuthrizatonConfig): 3.4 SecurityConfig.java 3.5 bootstrap的核心配置文件(其他服务配置类似这个): 3.6n…

防爆巡检终端在石化工厂安全保障中的应用

防爆巡检终端在石化工厂安全保障中的应用是广泛而关键的,其设计旨在确保在易燃易爆环境中进行安全、有效的巡检工作。以下是防爆巡检终端在石化工厂安全保障中的详细应用描述: 1. 环境监测与预警 防爆巡检终端配备了各种传感器,能够实时监测…

网银U盾多又乱?后悔没早点用USB Server远程连接管理!

一、引言 网银服务已成为企业日常运营中不可或缺的一部分。但随着企业规模的扩大和业务的增多,网银U盾的数量也随之激增,又多又乱,只能频繁插拔、分散管理,不仅效率低下,而且存在严重的安全隐患。 事实上&#xff0…

ADS131A04硬件设计与软件调试

一、IC基本信息 ADS131A0x 双通道或四通道 24 位 128kSPS 同步采样 Δ-Σ ADC •双通道或四通道同步采样差分输入 • 数据速率:高达 128kSPS • 高性能: – 单通道精度:在 10,000:1 动态范围内优于 0.1% – 有效分辨率:20.6位…

SpringCloud-服务网关-Gateway

1.服务网关在微服务中的应用 (1)对外提供服务的难题分析: 微服务架构下的应用系统体系很庞大,光是需要独立部署的基础组件就有注册中心、配置中心和服务总线、Turbine异常聚合和监控大盘、调用链追踪器和链路聚合,还有Kaka和MQ之类的中间件&…

海思NNIE部署yolov5-shufflenet

1.简要说明 由于NNIE上transpose支持的顺序是固定的,shufflenet那种x=torch.transpose(x,1,2).contiguous() 的操作一般是不支持的。需要进行调整。 2.使用工程以及修改 使用的是开源工程:GitHub - Lufei-github/shufflev2-yolov5: shufflev2-yolov5:lighter, faster and ea…

c++应用网络编程之一基本介绍

一、网络编程介绍 c编程的应用场景在前面分析过,一个重要的方向就是网络编程。一般来说,开发者说的服务端编程在c方向上简单的可以认为是网络编程。首先需要说明的,本系列不对网络编程的相关基础知识展开详细的说明,因为这种知识…

玛格家居从深交所转板北交所:营收净利润连年下滑,销售费用大增

《港湾商业观察》施子夫 近日,玛格家居股份有限公司(以下简称,玛格家居)发布公告,重庆证监局已经受理其北交所上市的备案申请,辅导机构为国泰君安证券。 公开信息显示,2022年1月,玛…

【转】Android静态集成X5内核

项目中的老机器使用webview 无法加载vue3打包的网页,只能用独立的webview内核,采用静态加载x5内核的方式, 以下内容转自简书作者漆先生的博客,仅用作备份记录 之前在项目中在线集成的X5内核,但是效果不好,只…

基于STM32的智能电池管理系统

目录 引言环境准备智能电池管理系统基础代码实现:实现智能电池管理系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统实现4.4 用户界面与数据可视化应用场景:电池管理与优化问题解决方案与优化收尾与总结 1. 引言 智能电池管理系统(Ba…

【昇思25天学习打卡营打卡指南-第十三天】ShuffleNet图像分类

ShuffleNet图像分类 ShuffleNet网络介绍 ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型,和MobileNet, SqueezeNet等一样主要应用在移动端,所以模型的设计目标就是利用有限的计算资源来达到最好的模型精度。ShuffleNetV1的设计核心是引入了两种操…

GPT-5 一年半后发布,打开人工智能新世纪

关于GPT-5一年半后发布的消息,这一预测主要基于OpenAI首席技术官Mira Murati的采访和声明。然而,需要明确的是,这个时间点(即2025年底或2026年初)已经与早期传闻有所不同,显示了OpenAI对产品质量的重视&…

react18.x+播放文本内容

需要调接口将文字传递给后端将文字转换成音频文件,然后播放,同时每次播放不同文本时,当前播放的文本需要暂停,切换到播放新点击的文本 可以设置缓存播放过的音频,也可以不设置缓存: 设置缓存的代码如下&am…

骁龙相机拍照流程分析

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 1.deliverInputEvent 拍照点击事件处理 2.submitRequestList Camera 提交拍照请求 3.createCaptureRequest 拍照请求帧数 骁龙相机通过binder 数据传输…

idea 内存参数修改不生效问题解决 VM参数设置不生效解决

很多人配置idea 内存参数,怎么配置都不生效,主要原因是配置文件用的不是你修改的那个。 系统环境变量中的这个才是你真正要修改的配置文件。 找到并修改后保存,重启idea就可生效

C++ | Leetcode C++题解之第208题实现Trie(前缀树)

题目&#xff1a; 题解&#xff1a; class Trie { private:vector<Trie*> children;bool isEnd;Trie* searchPrefix(string prefix) {Trie* node this;for (char ch : prefix) {ch - a;if (node->children[ch] nullptr) {return nullptr;}node node->children[…

人工与智能系统之间的交互方式

人工与智能系统之间的交互方式 #mermaid-svg-xSsFZWak2bsyV0un {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-xSsFZWak2bsyV0un .error-icon{fill:#552222;}#mermaid-svg-xSsFZWak2bsyV0un .error-text{fill:#5522…