当前位置:   article > 正文

没想到Linux ss命令那么强大!

ss命令

ssSocket Statistics)是一个用于查看套接字统计信息的强大 Linux 命令行工具。通过 ss 命令,系统管理员可以监控网络连接、查找网络问题以及优化网络性能。本文将深入介绍 ss 命令的使用方法,包括基本用法、常见选项和详细的命令示例。

安装

在大多数 Linux 发行版中,ss 命令已经默认安装。如果你的系统上尚未安装,可以使用包管理器来安装它。以下是一些常见发行版的安装方法:

Ubuntu/Debian

sudo apt-get update
sudo apt-get install iproute2
  • 1
  • 2

CentOS/RHEL

sudo yum install iproute2
  • 1

基本用法

ss 命令的基本语法如下:

ss [OPTIONS] [FILTER]
  • 1

其中,OPTIONS 是可选的命令选项,FILTER 是用于筛选结果的条件。以下是一些常用的选项:

  • -t:显示TCP套接字信息。
  • -u:显示UDP套接字信息。
  • -p:显示进程相关的信息。
  • -n:以数字形式显示IP地址和端口号。

TCP 套接字信息

显示所有 TCP 连接

要显示所有的TCP连接,可以运行以下命令:

ss -t
  • 1

此命令将列出所有的TCP套接字信息,包括本地地址、远程地址、状态等。例如:

State                Recv-Q           Send-Q                             Local Address:Port                                   Peer Address:Port            Process
ESTAB                0                0                                   192.168.0.56:8888                                 104.152.52.211:49023
  • 1
  • 2

在这个例子中,我们可以看到一个已建立的TCP连接,本地地址为 192.168.0.56:8888,远程地址为 104.152.52.211:49023

显示特定端口的TCP连接

如果你想查看特定端口的TCP连接,可以使用 FILTER 参数。例如,要查看80端口的连接,可以运行以下命令:

ss -t '( dport = :80 or sport = :80 )'
  • 1

此命令将显示所有本地端口或远程端口为80的TCP连接。

UDP 套接字信息

显示所有 UDP 连接

要显示所有的UDP连接,可以运行以下命令:

ss -u
  • 1

这将列出所有的UDP套接字信息,包括本地地址、远程地址、状态等。

显示特定端口的UDP连接

与TCP类似,你可以使用 FILTER 参数来查看特定端口的UDP连接。例如,查看53端口的UDP连接:

ss -u '( dport = :53 or sport = :53 )'
  • 1

进程相关信息

通过 -p 选项,你可以查看与套接字相关联的进程信息。

显示所有套接字及其关联的进程

ss -p
  • 1

这将显示所有套接字及其关联的进程信息,包括进程ID(PID)和进程名。

显示特定端口的进程信息

如果你只想查看特定端口的进程信息,可以使用 FILTER 参数。例如,查看80端口的进程信息:

ss -p '( dport = :80 or sport = :80 )'
  • 1

这将显示与端口80相关联的套接字及其关联的进程信息。

数字格式显示

通过 -n 选项,你可以以数字格式显示IP地址和端口号,而不是使用服务名称。

ss -nt
  • 1

此命令将以数字格式显示TCP连接的本地和远程地址。

高级过滤和排序

ss 命令允许你使用更复杂的过滤条件,以便根据特定的要求筛选套接字信息。此外,你还可以使用 -o 选项按特定的字段对结果进行排序。

根据状态过滤

你可以使用状态过滤器来筛选特定状态的套接字。例如,查看所有处于TIME-WAIT状态的TCP连接:

ss -t state time-wait
  • 1

根据地址过滤

通过指定地址,你可以筛选出与特定主机或网络相关的套接字。例如,查看所有与IP地址为 192.168.1.1 的主机建立的TCP连接:

ss dst 192.168.1.1
  • 1

按端口范围过滤

你还可以使用端口范围来筛选套接字信息。例如,查看本地端口在范围 5000-6000 之间的TCP连接:

ss sport >= :5000 and sport <= :6000
  • 1

结果排序

通过 -o 选项,你可以按照指定的字段对结果进行排序。例如,按照本地地址和端口升序排序:

ss -t -o src
  • 1

实时监控

ss 命令也可以用于实时监控套接字信息的变化。通过结合 watch 命令,你可以定期执行 ss 并查看最新的套接字状态。

watch -n 1 'ss -t'
  • 1

上述命令每秒钟执行一次 ss -t,实时显示TCP连接的状态变化。

批量操作

ss 命令还支持将结果输出到文件,以便稍后分析。你可以使用重定向操作符 > 将输出保存到文件中。

ss -t > tcp_connections.txt
  • 1

此命令将TCP连接信息保存到名为 tcp_connections.txt 的文件中。

性能分析

通过 ss 命令,你可以进行网络性能分析,特别是查看套接字的接收和发送队列。下面的命令可以显示所有TCP连接的接收和发送队列大小:

ss -t -a
  • 1

这将列出所有TCP套接字的信息,包括接收队列(Recv-Q)和发送队列(Send-Q)的大小。

高级选项

除了前面介绍的基本选项外,ss 命令还有一些高级选项,如 -Z(显示 SELinux 安全上下文)、-e(显示详细的套接字信息)等。你可以使用 man ss 命令查看完整的选项列表和说明。

man ss
  • 1

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/816071
推荐阅读
相关标签
  

闽ICP备14008679号