公网转发服务器访问超时问题排查总结
一、问题基础信息
1. 业务架构
采用公网跳板机反向代理内网服务架构(企业常用内网服务外网隔离方案):
公网跳板机IP:218.xx.xx.xx(云服务器,外网唯一入口)
域名:client.xxx-domain.com(DNS解析指向上述公网IP)
80端口:对外公开业务后台系统,全网可访问
443端口:对外公开客户端后台系统,支持全网可访问,适配外网用户访问客户端后台业务
2. 故障现象
http://218.xx.xx.xx:80:正常连通、页面可正常访问
https://218.xx.xx.xx:443:请求超时、TCP连接失败
业务影响:外网无法正常访问客户端后台系统
网页报错:网页解析失败,可能是不支持的网页类型,请检查网页或稍后重试
3. 本地网络校验结果
外网正常:百度443端口连通正常,本地网络、防火墙无异常
端口差异化异常:仅目标服务器443端口阻断,80端口完全通畅
二、核心原理:为何域名能访问内网服务器?
内网服务器为私有IP网段,无法直接被外网访问,依靠公网跳板机 + Nginx反向代理实现外网访问内网服务,完整流程:
本地DNS解析:client.xxx-domain.com 解析到公网跳板IP 218.xx.xx.xx
本地发起TCP连接,访问跳板机对应端口
云安全组校验流量,放行后进入跳板机系统
跳板机Nginx根据域名/端口匹配对应内网服务
跳板机通过内网专线转发请求至真实内网业务服务器
内网服务处理请求,原路返回数据至本地
端口业务定位逻辑:80端口、443端口均为对外公开业务端口,承载不同模块的后台系统,均需支持全网访问;原外网隔离策略已取消,适配公开业务需求
三、443端口超时根本原因(精准定位)
网络访问存在两层防火墙拦截机制,必须同时放行才可连通,缺一不可:
1. 第一层:云平台安全组(外网入口)
默认配置:仅放行80端口全网访问,443端口默认未对外开放,外网流量直接在云网关被丢弃,需手动配置全网放行规则。
2. 第二层:服务器系统内部防火墙(本机入口)
即使安全组放行443,服务器Windows/Linux内部防火墙未添加443入站规则,流量进入服务器后被系统拦截,TCP握手失败。
3. 辅助潜在原因
Nginx未监听443端口、SSL证书异常,服务未启动
运维安全策略:443端口为公开客户端后台业务,需放开全网访问权限,默认未开放,需手动配置两层防火墙放行规则
四、完整问题处理流程(从临时解决到根治)
方案二:根治方案(运维配置,永久恢复443访问)
核心:两层防火墙必须同时放行443端口
步骤1:云安全组放行443端口(优先IP白名单,安全可控)
规则方向:入方向
协议:TCP
端口:443/443
授权对象:0.0.0.0/0(全网所有IPv4地址),实现443端口全网可访问
步骤2:服务器内部防火墙放行443端口
Windows服务器:防火墙高级设置 → 新建入站规则 → 放行TCP 443端口
Linux服务器(CentOS):
firewall-cmd --add-port=443/tcp --permanent firewall-cmd --reload
步骤3:校验服务状态
确认Nginx正常监听443端口、SSL证书配置正常
确认跳板机与内网客户端服务链路通畅
步骤4:本地验证连通性
Test-NetConnection 218.xx.xx.xx -Port 443
返回 TcpTestSucceeded: True 即为配置生效,可正常对外提供客户端后台访问服务
五、关键核心结论(避坑重点)
只开安全组、不开系统防火墙,443绝对无法访问,两层防火墙缺一不可
ping超时 ≠ 服务宕机,服务器可禁用ICMPping,端口连通性才是业务可用标准
80和443为两套独立服务、独立防火墙规则,80通不代表443通
443端口为对外公开客户端后台系统,可配置0.0.0.0/0全网放行,面向全网用户提供服务,需做好系统登录鉴权、接口安全防护、漏洞加固等配置
最优长期方案:开发连接公司VPN,内网环境天然放行443端口,无需修改安全组
六、排查命令汇总
# 测试公网连通性 Test-NetConnection www.baidu.com -Port 443
# 测试目标80端口连通性 Test-NetConnection 218.xx.xx.xx -Port 80
# 测试目标443端口连通性 Test-NetConnection 218.xx.xx.xx -Port 443
# 路由追踪故障节点 tracert 218.xx.xx.xx
