news 2026/10/3 8:21:40

tldr 中的 `ss` 命令速查页:深入解析套接字排查的 8 个实战示例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
tldr 中的 `ss` 命令速查页:深入解析套接字排查的 8 个实战示例
  • 文档
  • 教程
  • 知识库

【免费下载链接】tldr

Collaborative cheatsheets for console commands 📚.

项目地址:https://gitcode.com/GitHub_Trending/tl/tldr
点击查看免费下载

ss是 Linux 平台上用于调查套接字(socket)与端口的命令行工具,而本文聚焦于 tldr 项目中的阿拉伯语速查页 pages.ar/linux/ss.md,以及其在英文侧对应的英文原页 pages/linux/ss.md。这篇速查页以「每页最多 8 个示例」的 tldr 规范,完整覆盖了套接字查看、状态过滤、监听检测、进程关联、UDP 精准匹配、IPv4 子网过滤与连接终结等核心场景。读完本文,你将掌握ss最常用的排查命令组合,并理解 tldr 页面如何通过占位符与选项语法被客户端正确渲染。

页面定位:tldr 中的 Linux 平台命令页

在 tldr 仓库的目录结构中,pages/linux/ss.md 与 pages.ar/linux/ss.md 分别属于主目录pages/与阿拉伯语翻译目录pages.ar/。根据 CLIENT-SPECIFICATION.md,页面按平台分组,linux目录存放仅适用于 Linux 的命令;ss属于iproute2工具集,未放入跨平台的common目录,正因为它只在 Linux 内核网络接口排查场景下典型可用。

翻译页与英文原页在结构上严格同步:标题行、一行描述(> Utility to investigate sockets.)、更多信息链接(<https://manned.org/ss>)、8 条示例一一对应。阿拉伯语翻译中还遵循 style-guide.ar.md 的约束——阿拉伯语属于从右向左书写的语言,因此页面中的占位符保持英文snake_case(如{{source_port}}),以避免反转阅读时产生混乱,这一约定同样记录在 common-arguments.md 的注释中。

示例一:全协议套接字一览

ss {{[-a|--all]}} {{--tcp|--udp|--raw|--unix}}

这是页面的第一条示例,含义是「显示所有 TCP/UDP/RAW/UNIX 套接字」。其中:

  • {{[-a|--all]}}是 tldr 的选项占位符语法:方括号内用|分隔短选项与长选项(短在左、长在右),客户端可根据用户的显示偏好渲染为-a或--all,若用户同时请求则显示[-a|--all]原文。这一约定由 CLIENT-SPECIFICATION.md 的 Page Structure 章节明确定义。
  • {{--tcp|--udp|--raw|--unix}}表示四选一的协议类型,用户替换为其中一个,即可分别聚焦 TCP、UDP、RAW 或 UNIX 域套接字。

实际运行时,ss -a --tcp会列出所有处于任意状态(含监听与已建立)的 TCP 连接。对于快速判断当前机器开放了哪些端口、建立了哪些对外连接,这是最直接的入口。

示例二:按连接状态过滤

ss {{state|exclude}} {{bucket|big|connected|synchronized|...}}

ss内置的状态过滤器允许两种用法:state表示「只显示处于指定状态的套接字」,exclude表示「排除指定状态的套接字」。常见状态包括bucket、big、connected、synchronized、established、listen、syn-sent、syn-recv、fin-wait-1、fin-wait-2、time-wait、closed、close-wait、last-ack、listening、closing等,末尾的...表示可继续补充其他状态。例如排查大量TIME-WAIT连接堆积时,可用ss state time-wait快速量化;需要聚焦服务端就绪连接时,ss state established更为实用。

示例三:查看连接本地 HTTPS 端口(443)的 TCP 套接字

ss {{[-t|--tcp]}} src :443

src :443是ss的表达式过滤语法,src匹配本地(源)地址与端口。这里的端口名443也可替换为/etc/services中定义的服务名(如:https)。此命令常用于确认 Web 服务的接入情况:ss -t src :443会列出所有以本地 443 端口为源的 TCP 连接,是排查 HTTPS 服务并发连接的常用检查手段。

示例四:查看本地 8080 端口的监听套接字

ss {{[-lt|--listening --tcp]}} src :8080

-l(--listening)只显示监听状态(LISTEN)的套接字,与-t组合为{{[-lt|--listening --tcp]}},表示「显示正在监听本地 8080 端口的 TCP 套接字」。注意这里遵循了 style-guide.ar.md 与中文 style-guide.zh.md 中的选项组合建议:当程序支持时将多个短选项合并为一个占位符(如-lt而非-l -t),同时用长选项给出完整语义。这个命令是判断端口是否被正确 bind、服务是否已就绪的黄金组合,等价于netstat -ltn | grep 8080但输出更友好。

示例五:显示与远程 SSH 端口相关的进程

ss {{[-pt|--processes --tcp]}} src :8080

-p(--processes)让ss额外显示每个套接字对应的进程名与 PID,需要 root 权限才能看到属于其他用户的进程信息。dst :ssh中的dst匹配远程(目标)地址与端口,而:ssh使用服务名替代端口号 22。组合{{[-pt|--processes --tcp]}}后,一条命令即可回答「当前哪些进程正在与 SSH 端口建立连接」。排查异常外联、确认服务进程是否存活时,这是比lsof -i :22更高效的选择。

示例六:按源端口与目标端口精确匹配 UDP 套接字

ss {{[-u|--udp]}} 'sport == :{{source_port}} and dport == :{{destination_port}}'

ss的过滤表达式除了前缀式src/dst,还支持完整的比较运算符:sport ==、dport ==、src ==、dst ==等,并可用and/or组合多个条件。整个表达式需要放在单引号内以阻止 shell 展开。占位符{{source_port}}与{{destination_port}}分别代表源端口和目的端口,用户需替换为实际端口号。该示例展示了ss表达式引擎的强大之处——相比netstat,ss可以直接在命令行完成「源端口等于 X 且目标端口等于 Y」的组合查询,非常适合抓包前的定向观测或排查特定通信对。

示例七:过滤本地 192.168.0.0/16 子网的 TCP IPv4 套接字

ss {{[-4t|--ipv4 --tcp]}} src 192.168/16
  • {{[-4t|--ipv4 --tcp]}}是-4(仅显示 IPv4 套接字)与-t(TCP)的组合占位符。
  • src 192.168/16使用 CIDR 记法匹配源地址属于 192.168.0.0/16 网段的所有本地连接,/16表示掩码前缀长度。

这一组合用于查看「本机与某个内网子网之间建立的 TCP 连接」,在排查内网通信、多网卡路由问题时能迅速收敛范围。若需 IPv6 场景,可替换为-6与对应的 IPv6 子网。

示例八:终结指定目的地址与端口的套接字连接

ss {{[-K|--kill]}} dst {{192.168.1.17}} dport = {{8080}}

-K(--kill)是ss的破坏性操作选项,用于直接关闭匹配条件的连接,而不是仅仅展示。示例中dst {{192.168.1.17}}指定目的 IP,dport = {{8080}}指定目的端口,组合后即可终结与该地址/端口的连接。tldr 风格指南对这类不可逆操作有明确要求(见 style-guide.ar.md 的「特殊情形」章节):必须使用{{占位符}}提示用户替换真实值,避免示例被盲目复制粘贴后对线上连接造成误杀。执行--kill通常需要 root 权限,且请先通过前几条查询命令确认目标连接无误。

从速查页到客户端渲染:占位符与选项的真实呈现

tldr 页面本身只是 CommonMark Markdown 文本,真正的高亮与短/长选项切换由客户端完成。根据 CLIENT-SPECIFICATION.md:

  • {{与}}包裹的是用户需替换的可编辑值,客户端渲染时必须移除花括号并做高亮,例如`ss {{[-a|--all]}}`渲染为用户可见的ss -a(或ss --all);
  • {{[与]}}之间的短|长形式表示同一选项的两种写法,客户端在用户只要求短/长形式时去掉方括号;
  • 当页面名称解析失败时,客户端会按「当前平台 →common→ 其他平台」的顺序回退查找,并最终回退到英文页面——这正是 pages.ar/linux/ss.md 与 pages/linux/ss.md 能同时被不同语言环境用户查阅的原理。

本地校验与提交规范

若你希望为本页新增示例或修正翻译,style-guide.ar.md 与 style-guide.md 提供了统一的格式约束(页面不超过 8 个示例、描述使用祈使句、禁止斜体与加粗等)。提交前可用 linter 校验:

npm install --global tldr-lint tldr-lint pages.ar/linux/ss.md

仓库的 scripts/test-tldr-lint.sh 显示,阿拉伯语页面默认启用TLDR104检查,并额外追加TLDR003、TLDR004、TLDR015等规则,从而保证翻译页与英文原页在结构上严格对齐。

小结

从「全量查看」到「按协议、状态、端口、子网过滤」,再到「关联进程」与「直接终结连接」,pages.ar/linux/ss.md 用 8 个示例勾勒出ss的核心能力图谱。相比传统netstat,ss直接读取内核的套接字信息,速度更快、过滤语法更强大,而这页 tldr 速查正是快速上手它的最短路径——无需通读 man 手册,照着示例替换占位符即可投入实际排查。

  • 文档
  • 教程
  • 知识库

【免费下载链接】tldr

Collaborative cheatsheets for console commands 📚.

项目地址:https://gitcode.com/GitHub_Trending/tl/tldr
点击查看免费下载

相关推荐

上一篇:4步终极指南:用OpenCore Legacy Patcher让老旧Mac焕发新生
下一篇:Informer时间序列预测完整指南:从入门到实战的终极教程

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/3 8:21:37

Playnite:三步跑通多平台游戏库管理

Playnite&#xff1a;三步跑通多平台游戏库管理 【免费下载链接】Playnite Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games. 项目地址: https://gitcode.com/…

作者头像 李华