📅  最后修改于: 2023-12-03 15:32:42.689000             🧑  作者: Mango
ss
是一个 Linux 命令,它代表 socket statistics
也叫做 socket status
,它被用来显示网络系统中的套接字(sockets)信息。
安装 ss
命令非常简单。
在 Debian / Ubuntu 系统中可以使用以下命令
sudo apt-get install iproute2
在 Fedora / CentOS / RHEL 系统中可以使用以下命令
sudo yum install iproute2
ss
命令可以用来显示当前系统网络套接字的状态和统计信息。
以下是一些基本用法:
# 显示所有的 SOCKET 端口状态
$ ss -a
# 显示所有 TCP 端口状态
$ ss -at
# 显示所有 UDP 端口状态
$ ss -au
# 显示所有 UNIX 域套接字状态
$ ss -ax
以下是一些进阶用法:
# 统计所有在 TCP 状态为 SYN-SENT 的套接字
$ ss -a -o state syn-sent '( dport = :80 or sport = :80 )'
# 统计所有在 TCP 状态为 ESTABLISHED 的套接字
$ ss -t -o state established '( dport = :80 or sport = :80 )'
ss
命令支持以下标识符:
| 标识符 | 说明 |
|--------|------|
| a
| 显示所有套接字 |
| t
| 显示所有 TCP 套接字 |
| u
| 显示所有 UDP 套接字 |
| d
| 显示所有 DCCP 套接字 |
| w
| 显示所有 RAW 套接字 |
| x
| 显示所有 UNIX 域套接字 |
| f
| 显示所有已知套接字 |
| e
| 显示所有已知但未被使用的套接字 |
| m
| 显示内存使用情况 |
| n
| 不解析服务名称 |
ss
命令支持以下输出格式:
| 输出格式 | 说明 |
|---------|------|
| t
| 将 TCP 端口名称转换为数字形式 |
| r
| 将 IP 地址转换为主机名 |
| n
| 不解析服务名称 |
例如,使用以下命令将显示所有 TCP 套接字:
$ ss -tln
输出结果的第一列将是"State",它表示套接字的状态。这个状态代表了套接字是打开的,被监听,还是被关闭了等等。其他的列表示协议名称,套接字类型,本地地址,远程地址,本地地址端口,远程地址端口,和进程 ID。
ss
命令是一个非常有用的工具,它可以让你查看正在运行的套接字的状态和统计信息。通过使用不同的标识符和输出格式,你可以收集到更多有用的信息。如果你是一名 Linux 系统管理员或开发人员,那么 ss
将是你工具箱中的必备品之一。