首页/安全/安全加固速查/监听端口全量盘点(ss/netstat)
服务与端口收敛50 条

监听端口全量盘点(ss/netstat)

以本机监听清单为底账:哪些端口、绑定哪个地址、属于哪个进程,逐条与“批准清单”比对。

安全加固速查安全更新于 2026-10-13

端口清单是暴露面的底账

端口治理的起点不是关端口,而是先有一份准确清单:本机在听哪些端口、绑定在哪个地址、由哪个进程带起来。把清单与“批准清单”逐条比对,多出来的就是待收敛项,通常来自测试残留、默认安装的服务、或被改成监听全部地址的业务组件。清单还要能对比出漂移:新装一个软件就多出几个默认端口,没有基线快照就只能靠记忆判断。

基本信息

加固项监听端口最小化与归属确认
适用平台Linux(ss 来自 iproute2)
权限要求看进程归属需要 root
达标判据每个监听端口都能说明业务用途与责任人
常用选项-t TCP、-u UDP、-l 监听、-n 数字端口、-p 进程

典型使用场景

  • 新接手服务器时的暴露面盘点
  • 月度巡检对比上期快照,发现端口漂移
  • 安全事件排查:确认有没有新增的可疑监听
  • 上线前自查,避免把测试端口带到生产
  • 容器宿主机上确认有没有容器把端口映射到全部地址

生成清单

生成清单
ss -tulnp                                    # 全量清单:TCP/UDP、数字端口、进程
ss -tulnp | grep -v '127.0.0.1\|::1'         # 只看对外暴露的项
ss -lunp | grep ':161'                       # 按端口反查,排查同类风险
ss -s                                        # 套接字与连接统计概览
ss -x                                        # unix socket:本地与容器通信不在 tcp/udp 清单里
sudo lsof -i -P -n | grep LISTEN | head -30  # 交叉验证,能带出更多进程信息

ss -tulnp 逐列读法

列含义关注点
Netidtcp 或 udpTCP 未授权暴露风险更高,UDP 还要考虑反射放大
State连接状态UDP 通常显示 UNCONN,没有 LISTEN
Local Address:Port监听地址与端口0.0.0.0 或 :: 表示对所有地址开放
Peer Address:Port对端地址监听项一般为空或 *:*
Process进程名与 PID需 root 可见,是确认归属的关键列
重要节点建议把清单定期快照留存(命令输出加时间戳归档),既能对比漂移,也是事件取证材料:出事后能回答“这个端口是什么时候出现的”,整改前后也能直接对照举证。快照建议纳入巡检脚本,避免依赖人工记忆。
两个常见盲区:一是 -p 需要 root,普通用户跑 ss 看不到进程归属,会漏掉关键线索;二是容器内的监听进程不在宿主机的进程命名空间里,只看宿主机可能看到端口却找不到进程,需要进入对应网络命名空间(如 nsenter -t <PID> -n ss -tulnp)再核查。

易错点

  • 用普通用户身份跑 ss 看不到进程列,误判为“没有归属”,核查应以 root 执行
  • 只统计 TCP 漏掉 UDP:161、11211、53 这类 UDP 口同样构成暴露面,且更容易被用来做反射放大
  • 忽略 0.0.0.0 与 127.0.0.1 的区别:只看端口号不看绑定地址,会把本地服务当成对外暴露
  • unix socket 与容器内监听完全不在清单里,宿主机视角看起来干净实际仍有服务在跑

数据来源与参考

  • ss(8) 手册
  • 等保 2.0:最小服务与端口
  • CIS Benchmark:网络服务核查

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌