公网服务无法访问:DNS、NAT、ACL、运营商链路全流程

本文用于排查网站、VPN、API、邮件网关等内部服务经防火墙发布后,出现“公网打不开”“偶发超时”或“仅部分用户无法访问”的问题。适用于 DNAT、端口映射、虚拟 IP(VIP)等常见发布方式;不同设备厂商的对象名称不同,判断逻辑相同。

安全原则:仅发布必要服务和端口;SSH、RDP、网络设备管理等运维入口优先使用 VPN、零信任或堡垒机。任何变更均应在维护窗口实施,保留旧配置、日志和明确的回滚方案。

一、完整访问路径

外部用户 → DNS 解析 → 运营商/Internet → 公网 IP/上游路由
         → 防火墙 WAN 接口 → DNAT/VIP/端口映射 → ACL/安全策略
         → 内部路由/VLAN → 服务器本机防火墙 → 应用/IIS/Nginx
         → 按正确回程路径返回防火墙 → 外部用户

“公网打不开”不等于 NAT 有问题。必须确定请求停在上图的哪个环节,再进行对应处理。

二、先记录故障现象

项目 示例 作用
访问地址 https://service.example.com:8443 域名、协议、端口和路径必须完整
首次故障时间 2026-08-18 10:25 与 DNS、设备和运营商变更比对
影响范围 所有人、某运营商、某地区、仅公司内 快速区分线路与本地问题
错误表现 超时、拒绝、403、404、502、证书错误 判断故障层级
最近变更 DNS、NAT、策略、证书、应用更新 优先检查变更点
服务归属 负责人、内网 IP、监听端口 便于同步应用侧验证
常见现象判断
现象 优先检查方向
域名解析失败或指向旧 IP DNS 记录、NS 委派、TTL、A/AAAA/CNAME
TCP 连接超时 运营商、上游 NAT、路由、DNAT、安全策略、回程路由
Connection refused 目标端口未监听、映射目标错误、服务器主动拒绝
HTTP 403 WAF/CDN/ACL、IIS/Nginx 访问控制、目录权限
HTTP 404 网络通常已通,检查站点绑定、Host 头、应用路由
HTTP 502/504 反向代理、后端进程、应用超时、后端路由
TLS 证书错误 SNI、站点绑定、证书链、域名或服务器时间
仅部分用户失败 IPv6、DNS 差异、CDN、运营商路由或地域策略

三、排障前准备

  1. 导出防火墙 NAT、策略、路由、地址对象和 WAN 配置;变更前后均保存。
  2. 记录服务器 IP、网关、路由、监听端口和本机防火墙规则。
  3. 准备两个真实外部测试点,例如手机关闭 Wi-Fi 后使用蜂窝网络,以及异地云主机或另一运营商宽带。
  4. 公司内访问公网域名不能代替外部测试:它可能受到代理、内部 DNS 或 NAT 回流影响。
  5. 排障时不要通过关闭所有防火墙规则来“试一下”。临时放行必须最小范围、记录工单、设置清理时间。

四、第一步:DNS 解析

1. 核对 A、AAAA、CNAME 和权威 DNS

Windows 可执行:

nslookup service.example.com
nslookup -type=ns example.com
nslookup -type=aaaa service.example.com
nslookup service.example.com 223.5.5.5

Linux/macOS 可执行:

dig service.example.com A +short
dig service.example.com AAAA +short
dig example.com NS +short
dig @权威DNS服务器 service.example.com A

逐项确认:

  • A 记录是否指向当前公网 IPv4;前置 ESA/CDN 时,A/CNAME 通常应指向边缘服务,而非源站公网 IP。
  • 是否残留错误 AAAA 记录。客户端优先使用 IPv6 时,IPv6 不通会造成“部分用户打不开”。
  • 是否有多条 A 记录,其中一条已经失效,导致访问偶发成功。
  • 域名注册商处的 NS 委派是否与实际 DNS 托管平台一致。
  • 权威 DNS 已更新而公共 DNS 仍返回旧值时,通常等待 TTL 过期即可;不要反复修改同一记录。
2. DNS 通过后的判断

DNS 已解析到预期地址,只说明“用户找到了入口”,不代表端口、防火墙和应用可用。此时应转入公网链路与防火墙验证。

五、第二步:公网 IP 与运营商链路

1. 确认 WAN 是真实公网地址

在防火墙 WAN 接口查看地址,并从外部网络查询当前出口地址。两者必须匹配,或符合已知的上游静态路由/NAT 设计。

以下地址不具备直接互联网入站能力:

  • 私网:10.0.0.0/8172.16.0.0/12192.168.0.0/16
  • 运营商级 NAT:100.64.0.0/10

若 WAN 为上述地址,常见原因是光猫仍路由、上级路由器做 NAT 或运营商 CGNAT。应由具备权限的人员改桥接、配置正确的上游转发/DMZ,或向运营商申请可入站的公网地址与端口能力。

2. 运营商与上游检查表
场景 典型表现 处理方向
光猫仍路由 防火墙 WAN 为 192.168.x.x 检查桥接、DMZ 或上游端口映射
CGNAT WAN 为 100.64.x.x 联系运营商申请公网 IP/企业线路
入站端口限制 特定端口始终不通 向运营商确认端口策略,采用合规替代方案
双出口回程错误 偶发超时、会话建立后中断 检查策略路由和对称回程
公网 IP 变更 DNS、白名单、CDN 源站失效 同步更新记录和相关白名单

若防火墙日志中完全没有外部测试请求,优先检查本节,而不是服务器应用。

六、第三步:DNAT / VIP / 端口映射

将每项发布写成完整的四元映射,例如:

公网地址:端口  →  内部服务器地址:端口
203.0.113.10:443  →  10.20.30.40:443
必查项目
  1. NAT 是否绑定实际接收流量的 WAN 接口,而不是错误的备用出口或管理口。
  2. 公网 IP 是否已正确路由到该防火墙;公网地址池中的地址也需确认上游路由。
  3. 外部端口、内部 IP、内部端口是否准确,尤其是 443 → 8443 这类非对称映射。
  4. 内部服务器是否使用固定地址或 DHCP 保留;地址变化是常见的间歇性故障原因。
  5. 是否有重复的“公网 IP + 协议 + 端口”映射;可能命中错误对象。
  6. 使用反向代理时,NAT 应指向反向代理入口,不应将后端应用端口直接暴露到公网。
必须同时查看会话与日志

从外部测试点发起一次访问,在防火墙中确认:

  • 是否看到测试源 IP 建立新会话;
  • 是否命中正确的 DNAT/VIP 对象;
  • 转换后的目的 IP 和端口是否为预期服务器;
  • 会话是否被拒绝,以及拒绝规则名称;
  • 是否有服务器回包,以及回包是否转换回预期公网地址。

结论:看不到会话,问题多在上游;会话被拒绝,检查 ACL;会话转入内网但没有回包,检查服务器、内部路由和回程。

七、第四步:ACL、防火墙策略与安全服务

DNAT 仅负责地址转换,并不自动允许流量。多数防火墙仍需要单独的允许策略。

策略字段 核对内容
入/出接口或安全域 应为 WAN 到 LAN/DMZ;多区域设备注意 zone
源地址 建议限定业务所需 IP/网段;临时放行必须到期回收
目的地址 应匹配 NAT/VIP 或发布对象
服务 精确到 TCP/UDP 与端口,避免用 ALL 排障
顺序 Allow 规则不能被更宽泛的 deny 规则覆盖
安全功能 IPS、WAF、地理限制、DDoS、防暴力破解是否阻断
日志 允许与拒绝策略都应记录会话日志
ESA/CDN/WAF 前置时
  • 用户访问首先到边缘节点,边缘请求数与源站请求数未必相同。
  • 源站防火墙应只允许可信边缘回源地址访问 Web 端口,避免绕过边缘直接攻击源站。
  • 同步检查回源协议、源站端口、Host 头、SNI 和证书;边缘 52x 与源站 4xx/5xx 的排查入口不同。
  • 不要因排障临时全网暴露源站后忘记收回;按平台公布的回源地址范围和验证方式恢复最小授权。

八、第五步:路由与回程路径

请求能到服务器,不代表它能正确返回。服务器回包必须经处理 DNAT 的同一防火墙或正确的对称路径返回,否则会话表无法正确转换。

Windows 检查命令:

ipconfig /all
route print
Get-NetTCPConnection -State Listen | Where-Object LocalPort -eq 443
Test-NetConnection 10.20.30.40 -Port 443

Linux 检查命令:

ip addr
ip route
ss -lntp | grep ':443'
curl -vk https://127.0.0.1/

重点检查:

  • 默认网关是否指向发布防火墙,或是否配置了明确的返回策略路由;
  • 多网卡服务器是否设置多个默认网关;
  • 服务器 VLAN 与防火墙之间是否双向可达;
  • 双出口、SD-WAN 或策略路由是否把回包导向另一条 WAN;
  • 内网访问公网域名的 NAT 回流是否独立配置。回流失败不代表外网访问失败。

九、第六步:服务器与应用

1. 服务监听与本机防火墙
  • 应用进程必须处于运行状态,并监听预期 TCP/UDP 端口。
  • 监听地址不能仅为 127.0.0.1;否则 DNAT 到服务器内网 IP 时无法连接。
  • Windows Defender 防火墙、firewalld 或 ufw 应允许来自防火墙/DMZ 的最小必要源和端口。
  • 先从服务器本机访问,再从同网段主机访问,最后再验证公网路径。
2. IIS / Web 服务检查
  1. 站点状态为已启动,应用程序池没有停止或频繁回收。
  2. 站点绑定的端口、IP、主机名、HTTPS 证书和 SNI 与访问域名一致。
  3. 404、403、502/504 多数已不属于基础网络问题,应继续检查站点目录权限、Host 头、反向代理和应用日志。
  4. 查看 IIS 日志、Windows 事件查看器和应用日志;不要只依赖浏览器报错。
  5. 前置 ESA/CDN 时,确认回源 Host 头与 IIS 绑定相匹配。

十、外部测试与证据留存

目的 示例 说明
DNS nslookup service.example.com 仅证明名称解析
TCP 端口 Test-NetConnection service.example.com -Port 443 验证 TCP 连接
HTTP/TLS curl -Ivk https://service.example.com/ 查看证书和 HTTP 状态
指定 IP 验证 curl -vk --resolve 域名:443:公网IP https://域名/ 仅限已授权本单位资产,用于绕过公共 DNS 验证
路径辅助 tracert 公网IPtraceroute 公网IP ICMP 可能被限制,只作辅助

每次测试保留:时间、测试网络、源 IP、目标域名/端口、命令结果、防火墙会话 ID 和日志截图。禁止对非授权第三方资产进行端口扫描或高频探测。

十一、一页式决策树

外部访问失败
 ├─ 域名是否解析到预期 IP?
 │   ├─ 否:检查 A/AAAA/CNAME、TTL、NS 委派与权威 DNS
 │   └─ 是:继续
 ├─ 防火墙是否看见外部测试会话?
 │   ├─ 否:检查公网 IP、光猫/上游 NAT、CGNAT、运营商端口限制
 │   └─ 是:继续
 ├─ 是否命中正确 NAT 与允许策略?
 │   ├─ 否:检查 VIP/DNAT、策略顺序、服务对象、IPS/WAF/地理规则
 │   └─ 是:继续
 ├─ 服务器是否收到连接并返回数据?
 │   ├─ 否:检查内部路由、本机防火墙、监听地址与应用进程
 │   └─ 是:继续
 └─ 回包是否走正确出口?
     ├─ 否:检查默认网关、策略路由、双出口和 SNAT
     └─ 是:检查 IIS/应用绑定、Host/SNI、证书和业务日志

十二、变更、验收与回滚

变更前最小记录
字段 记录内容
工单号与变更目的
域名、DNS、TTL
公网 IP/端口与内网 IP/端口
NAT/VIP 对象、策略名称、允许源范围
服务负责人、实施人、验收人
维护窗口、回滚时间点、旧配置备份位置
验收清单
  • [ ] 两个不同外部网络均能正确解析并访问服务。
  • [ ] TCP、TLS、HTTP 状态与业务预期一致。
  • [ ] 防火墙 NAT、Allow 策略、日志和会话命中正确。
  • [ ] 服务器日志收到预期请求,未额外暴露不必要端口。
  • [ ] ESA/CDN/WAF 场景下,源站访问控制已恢复为可信回源范围。
  • [ ] 台账、拓扑、DNS 记录与变更工单已更新。
回滚原则

出现安全告警、业务异常或错误暴露时,应按变更单将 NAT、ACL、DNS 或反向代理恢复到变更前版本,并从外部重新验证。不要在故障期间持续叠加临时规则;应先回到已知可用状态,再分析根因。

十三、常见误区

  • 能 ping 通并不说明 TCP/HTTPS 服务正常。
  • 配置 NAT 不等于已放行安全策略。
  • 内网能访问公网域名,不等于真正外网用户能访问。
  • 浏览器返回 404 多数说明网络已经可达,应检查 Web 绑定或应用路由。
  • 使用 Any-Any 临时放行极易遗留风险,应最小授权并设置复核时间。
  • 不查看防火墙会话和日志,只凭控制台猜测,无法定位真实断点。
Copyright © https://yan-jian.com 2023 - 2026 All Right Reserved all right reserved,powered by Gitbook更新时间: 2026-08-18 20:27:53

results matching ""

    No results matching ""