[转帖]Linux ss命令详解

linux,ss,命令,详解 · 浏览次数 : 0

小编点评

**ss 命令** ss 是一个用于获取 socket 统计信息的命令行工具。它可以显示和 netstat 等工具类似的内容,但效率更高、更快。 **主要命令参数:** * `-h, --help`:显示帮助信息。 * `-V, --version`:显示版本信息。 * `-n, --numeric`:不解析服务名称。 * `-r, --resolve`:解析服务名称。 * `-a, --all`:显示所有套接字。 * `-l, --listening`:显示正在监听的套接字。 * `-o, --options`:显示选项信息。 * `-p, --processes`:显示正在使用的进程数量。 * `-i, --info`:显示内部 TCP 信息。 * `-s, --summary`:显示套接字状态摘要。 * `-4, --ipv4`:只显示 IP 版本 4 sockets。 * `-6, --ipv6`:只显示 IP 版本 6 sockets。 * `-0, --packet`:只显示 RAW sockets。 * `-x, --unix`:只显示 Unix domain sockets。 * `-f, --family=FAMILY`:显示特定类型的套接字信息。 * `-D, --diag=FILE`:将 Raw 信息写入文件。 * `-F, --filter=FILE`:从文件中读取信息。 * `-p, --progress`:显示进度。 * `-n, --numeric`:不解析服务名称。 * `-m, --memory`:显示内存占用情况。 * `-s, --summary`:显示套接字状态摘要。 * `-p, --processes`:显示正在使用的进程数量。 * `-i, --info`:显示内部 TCP 信息。 **示例命令:** ```bash # 显示 TCP 连接信息 ss -t -a # 显示所有打开的网络连接端口 ss -l # 显示 Sockets 摘要 ss -s # 显示处于 FIN-WAIT-1 状态的源端口 ss -o state FIN-WAIT-1 dst 192.168.25.100/24 # 显示所有状态为 established 的 SMTP 连接 ss -o state established '( dport = :smtp or sport = :smtp )' ```

正文

 

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

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

ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。

ss常见命令参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Usage: ss [ OPTIONS ]
       ss [ OPTIONS ] [ FILTER ]
   -h, --help           this message
   -V, --version        output version information
   -n, --numeric        don't resolve service names
   -r, --resolve       resolve host names
   -a, --all            display all sockets
   -l, --listening      display listening socket
   -o, --options       show timer information
   -e, --extended      show detailed socket information
   -m, --memory        show socket memory usage
   -p, --processes      show process using socket
   -i, --info           show internal TCP information
   -s, --summary        show socket usage summary
 
   -4, --ipv4          display only IP version 4 sockets
   -6, --ipv6          display only IP version 6 sockets
   -0, --packet display PACKET sockets
   -t, --tcp            display only TCP sockets
   -u, --udp            display only UDP sockets
   -d, --dccp           display only DCCP sockets
   -w, --raw            display only RAW sockets
   -x, --unix           display only Unix domain sockets
   -f, --family=FAMILY display sockets of type FAMILY
 
   -A, --query=QUERY, --socket=QUERY
       QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
 
   -D, --diag=FILE      Dump raw information about TCP sockets to FILE
   -F, --filter=FILE   read filter information from FILE
       FILTER := [ state TCP-STATE ] [ EXPRESSION ]

 

常用的命令展示

ss -t -a 【显示TCP连接】

  -t: tcp

  -a:  all

  -l:  listening         【ss -l列出所有打开的网络连接端口】

  -s:  summary        【显示 Sockets 摘要】

  -p:  progress

  -n:  numeric         【不解析服务名称】

  -r:  resolve        【解析服务名称】

  -m: memory        【显示内存情况】

查看进程使用的socket

1
ss –pl

image

找出打开套接字/端口应用程序

1
ss -lp | grep 22

image

显示所有UDP Sockets

1
ss -u –a

image

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

1
2
3
ss -o state 'established'
 
ss -o state established '( dport = :smtp or sport = :smtp )'

image

列举出处于 FIN-WAIT-1状态的源端口为 80或者 443,目标网络为 193.233.7/24所有 tcp套接字

1
ss -o state FIN-WAIT-1 dst 192.168.25.100/24

匹配远程地址和端口号

1
2
ss dst 192.168.25.100
ss dst 192.168.25.100:50460

匹配本地地址和端口号

1
ss src 192.168.25.140

ss 和 netstat 效率对比

time netstat –an 【效率低】

image

time ss    【效率高】

image

本文来自博客园,作者:茄子_2008,转载请注明原文链接:https://www.cnblogs.com/xd502djj/p/12565943.html

与[转帖]Linux ss命令详解相似的内容:

[转帖]Linux ss命令详解

ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。 当服务器的socket连接数量变得非常大时,无论是使用nets

[转帖]如何在 Linux 中使用ss命令监控网络连接

https://zhuanlan.zhihu.com/p/99421574 ss命令是用于在Linux系统上显示与网络套接字相关的信息的工具。 该工具显示netstat命令的更多详细信息,该命令用于显示活动的套接字连接。 在本教程中,我们会举例说明ss命令如何用于在Linux中显示各种网络连接信息。

[转帖]Linux 命令 —— ss 网络 Socket 统计工具

Linux 命令 —— ss 网络 Socket 统计工具 https://shockerli.net/post/linux-tool-ss/ 文章目录 命令格式 命令参数 应用实例 显示 socket 概况 列出所有监听的网络端口 显示 TCP 连接信息 ss 和 netstat 效率对比 参考资

[转帖]linux 统计 TCP 网络连接状态

https://www.cnblogs.com/leffss/p/15471501.html 两种方法: awk 统计 $ ss -a|grep '^tcp'|awk '{ ++State[$2] } END { for (i in State) print i,State[i] }' LISTEN

[转帖]Linux 磁盘I/O 调度算法 说明

2022-08-23 13:031361转载Linux 1 Linux 4.0 IO协议栈框架图 I/O 调度算法在各个进程竞争磁盘I/O的时候担当了裁判的角色。他要求请求的次序和时机做最优化的处理,以求得尽可能最好的整体I/O性能。 Linux 4.0 IO协议栈框架图 I/O调度程序的总结 当向

[转帖]Linux中常见IO调度器

https://www.jianshu.com/p/3c16e39a005a 单队列调度算法多队列调度算法 deadline mqdeadlines cfq bfq noop none kyber 对于磁盘I/O,Linux提供了cfq, deadline和noop三种调度策略 cfq: 这个名字是

[转帖]Linux 平台使用shc 工具加密shell 脚本

2021-08-03 20:4510030原创Linux 本文链接:https://www.cndba.cn/dave/article/4642 1 shc 工具说明 shell 脚本是常用脚本,运维中经常使用,但有时候在shell 脚本中会包含一些敏感的信息,比如密码或者特殊的参数,此时我们就可以

[转帖]Linux系统多网卡环境下的路由配置

https://www.cnblogs.com/connect/p/linux-static-route.html Linux下路由配置命令 1. 添加主机路由 route add -host 192.168.1.11 dev eth0 route add -host 192.168.1.12 gw

[转帖]linux命令行下如何格式化json并进行各种json处理操作

https://blog.csdn.net/penriver/article/details/122016563 有时需要在linux 的命令行下,需要查看json的内容或针对json进行各种操作,本文针对此进行梳理、总结。 在Linux系统下基于python json.tool可以格式化json,

[转帖]Linux grep、egrep使用命令详解

https://segmentfault.com/a/1190000040654123?utm_source=sf-similar-article grep egrep区别 grep 默认不支持扩展 但可以通过-E 选择来支持扩展正则egrep 支持扩展正则 关于正则与扩展正则的区别可以看我另一篇s