目录
- 1. 基本知识
- 2. 基本命令
- 2.1 查套接字
- 2.2 查端口
1. 基本知识
ss 用于在 Linux 系统中显示网络套接字统计信息的命令
- 是 netstat 命令的现代替代品,提供了更快、更详细的输出
- 是 iproute2 套件的一部分,支持许多高级网络功能
基本的功能如下:
- 显示套接字(sockets)的状态,包括 TCP、UDP、UNIX 域套接字等
- 提供有关网络连接的详细信息,比如连接状态、监听端口、IP 地址、进程信息等
基本的安装如下:
sudo apt-get install iproute2 # Debian/Ubuntu 系列
sudo yum install iproute # CentOS/RHEL 系列
基本语法如下:
ss [选项] [过滤器]
基本选项如下:
-
-n, --numeric:以数字格式显示地址和端口,不解析为主机名和服务名
-
-t, --tcp: 仅显示 TCP 套接字信息
-
-u, --udp: 仅显示 UDP 套接字信息
-
-l, --listening:仅显示处于监听状态的套接字
-
-a, --all:显示所有套接字信息,包括监听和非监听状态的套接字
-
-r, --resolve: 尝试解析主机名和服务名(默认行为,-n 选项禁用此功能)
-
-p, --processes:显示与每个套接字相关联的进程信息,包括进程 ID 和进程名称
-
-e, --extended: 显示详细的 TCP 套接字信息,包括各种内部状态和队列信息
-
-s, --summary:显示套接字统计摘要信息,如每种类型的套接字数量和状态
2. 基本命令
-
显示所有套接字:
ss -a
,-a 选项表示显示所有套接字,包括监听和非监听的 -
显示 TCP 套接字:
ss -t
-
显示 UDP 套接字:
ss -u
-
显示监听的套接字:
ss -l
-
显示每个套接字的详细信息:
ss -a -p
,-p 选项表示显示每个套接字的进程信息(PID 和进程名) -
过滤显示特定的地址和端口:
# src 和 dst 选项用于过滤源地址和目标地址
ss -t -a src 192.168.1.1
ss -t -a dst :80
-
显示特定状态的套接字:
ss -t -a state established
-
显示连接队列的信息:
ss -t -l
2.1 查套接字
查看套接字:
- 查看所有套接字:ss
- 查看特定套接字:-t(TCP) -u、-a(所有)
查看更详细套接字:ss -o state established '( dport = :22 or sport = :22 )'
对应的解释如下:
- 只显示状态为 established 的连接,也就是成功的状态
- 指定只显示目标端口(destination port)或源端口(source port)为 22 的连接,22为ssh服务
2.2 查端口
- 查看所有:ss -l
- 查看特定:
ss -lnp | grep :5000
, 查看端口号为 5000的套接字,通过查询服务也可看出pid对应一致
列出所有连接到 80 端口的连接和对80端口的监听: ss -r state all dport = :80