首页/安全/安全加固速查/监听地址收敛(只绑内网/回环)
服务与端口收敛50 条

监听地址收敛(只绑内网/回环)

端口是否对外暴露取决于绑定地址:让服务只绑 127.0.0.1 或内网地址,比单纯依赖防火墙更直接可控。

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

暴露面由监听地址决定

一个端口是否对外可用,取决于它绑定在哪个地址,而不是端口号本身。绑 0.0.0.0(IPv6 写 ::)表示所有网卡都能连;绑 127.0.0.1 只有本机进程能连;绑具体内网地址则限定在某个网段。数据库、缓存、消息队列、监控采集端口大多只需要本机或内网访问,把绑定地址收紧比单纯依赖边界防火墙更贴近数据源:防火墙规则被误改或漏配时,绑定依然挡着。

基本信息

加固项监听地址收敛
适用平台Linux/Windows 服务与容器化应用
权限要求服务配置修改权限
达标判据仅需本地访问的服务绑 127.0.0.1,跨机访问绑内网地址
常见位置服务配置文件、systemd 单元参数、容器端口映射

典型使用场景

  • 数据库、缓存只给本机应用访问时改成回环绑定
  • 同机部署 Nginx 与应用,后端服务只绑本地并走反向代理
  • 微服务只在内网互通,绑内网网卡地址而非全部地址
  • 容器宿主机把容器端口映射到回环,避免直接对公网暴露
  • 暴露面巡检发现某服务监听在 0.0.0.0 后做整改

识别监听全地址的服务

识别监听全地址的服务
ss -tulnp | awk '{print $1, $5, $7}' | grep -E '0\.0\.0\.0|\[::\]'   # 找出对所有地址开放的服务
ss -tulnp | grep -E ':6379|:27017|:9200|:3306|:5432'   # 抽查常见数据库与缓存端口
ss -x | head -20                                        # 本地通信用 unix socket 时不涉及网络暴露

整改示例

整改示例
# MySQL:/etc/my.cnf 中 bind-address = 127.0.0.1
# Redis:redis.conf 中 bind 127.0.0.1 -::1,并保持 protected-mode yes
# Tomcat:Connector 增加 address="127.0.0.1"
# Nginx 反向代理的后端:listen 127.0.0.1:8080;
# 容器:docker run -p 127.0.0.1:6379:6379 只映射到宿主机回环
systemctl restart <服务> && ss -tulnp | grep <端口>   # 复核绑定地址已变化

绑定写法对照

绑定地址可访问范围适用判断
0.0.0.0 / ::所有网卡,任何可达主机只用于确实需要对外提供服务的入口
127.0.0.1 / ::1仅本机数据库、缓存、同机后端服务的默认选择
具体内网地址该网段可达的主机集群内部互通,配合防火墙限源
unix socket仅本机且有文件权限约束本机通信最佳,兼顾性能与收敛
容器场景要分清两层:容器内监听 0.0.0.0 是正常的,真正的暴露面由宿主机的端口映射决定,所以写成 -p 127.0.0.1:6379:6379 而不是 -p 6379:6379。Docker 的端口发布默认会写入 nat 表,改动后要用 ss 与 iptables -t nat -S 两侧确认。
改绑定地址要与反向代理、负载均衡探活、监控采集配置联动:改完先在一台机器上回归业务,确认代理与探活都正常,再批量推进。贸然全量变更可能出现“服务是活的但谁也连不上”的情况,而探活又恰好只检查进程是否存在。

易错点

  • 只改 IPv4 绑定漏掉 IPv6 的 ::,服务仍对全网开放,核查时必须同时看两种地址族
  • 改绑定地址后没有同步调整反向代理与探活配置,导致业务中断或误判服务宕机
  • 认为改了端口号就等于收敛:端口变成非默认值只是降低被扫到的概率,绑定地址与认证才是关键
  • 容器映射写 -p 6379:6379,把只应本机访问的服务直接发布到所有网卡

数据来源与参考

  • 各服务官方配置文档(bind/address 参数)
  • CIS Benchmark:网络服务绑定核查

相关工具

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