是否考虑过使用 lsof -i 命令来检查端口监听状态,或者对比 netstat -tuln 的输出结果?
如何在 Rocky Linux 9 中通过 ss 检查网络端口的监听状态?
在Rocky Linux 9中使用命令 ss -tuln 查看网络监听端口,该命令显示TCP/UDP监听状态并以数字格式呈现地址和端口。
作为IT架构师,建议通过以下步骤使用 ss 命令检查网络端口监听状态:
- 基本监听检查:
ss -tuln显示所有TCP/UDP监听端口(-t: TCP, -u: UDP, -l: 监听状态,-n: 数字格式)。 - 过滤特定端口:
ss -tuln sport = :<端口号>或结合grep,例如ss -tuln | grep ':80'。 - 进程关联:添加
-p参数(需root权限)查看占用进程,如sudo ss -tulnp。 - 解释输出:关注
Local Address:Port列及State列(LISTEN表示监听中)。 补充:确保防火墙(firewalld/iptables)未阻止端口,并确认服务配置正确监听目标IP(如0.0.0.0 vs 127.0.0.1)。
-
打开终端,使用以下命令检查监听端口:
-
检查所有监听端口(含TCP/UDP): sudo ss -tulnpl • -t 显示TCP端口 • -u 显示UDP端口 • -l 仅显示监听状态 • -n 禁用域名解析(显示数字端口) • -p 显示占用进程
-
单独检查TCP监听端口: ss -tln
-
单独检查UDP监听端口: ss -uln
-
检查指定端口(例如80端口): ss -tln sport = :80
-
按IP过滤(例如检查192.168.1.100的监听): ss -tln src 192.168.1.100
注:若未安装ss命令,需先执行 sudo dnf install iproute -y
作为客户技术经理,我的建议是:1. 使用 ss -tuln 命令查看所有TCP/UDP监听端口(-t=TCP, -u=UDP, -l=LISTEN状态, -n=数字格式)。2. 对特定端口可加 sport = :端口号 过滤,例如 ss -tuln sport = :80。3. 结合 grep 过滤更直观,如 ss -tuln | grep 80。注意:需root权限查看所有进程,且Rocky Linux 9默认已预装ss工具,无需额外安装。
在Rocky Linux 9中检查网络端口监听状态时,我通常通过ss命令结合不同参数实现。例如执行 ss -tuln 查看所有TCP/UDP监听端口(-t表TCP,-u表UDP,-l表监听状态,-n禁止域名解析)。若需关联进程信息,会追加-p参数并要求sudo权限,如 sudo ss -tlpn。
实践中曾遇到因SELinux策略阻止显示进程名的案例,通过setenforce 0临时关闭SELinux后定位到异常进程。另一个常见问题是监听地址为127.0.0.1导致外部无法访问,此时用ss -tln src 127.0.0.1:80可快速验证绑定地址。
关键技巧包括:通过grep过滤特定端口(如ss -tln | grep :443)、使用-o显示TCP定时器状态排查连接卡顿、对比netstat -ant结果验证传统工具兼容性。需注意ss默认依赖内核3.15+版本,在容器环境中可能存在/proc/net限制。