GigabitEthernet1/0/1,公网 IP 为 202.100.1.1,内网服务器真实 IP 为 192.168.1.100。[H3C] interface GigabitEthernet1/0/1
[H3C-GigabitEthernet1/0/1] nat server protocol tcp global 202.100.1.1 80 inside 192.168.1.100 80
[H3C-GigabitEthernet1/0/1] quit[H3C] security-policy ip
[H3C-security-policy-ip] rule name Permit_WAN_to_Server
[H3C-security-policy-ip-0-Permit_WAN_to_Server] source-zone untrust
[H3C-security-policy-ip-0-Permit_WAN_to_Server] destination-zone trust
[H3C-security-policy-ip-0-Permit_WAN_to_Server] destination-address host 202.100.1.1 # 必须是公网IP
[H3C-security-policy-ip-0-Permit_WAN_to_Server] service tcp-80
[H3C-security-policy-ip-0-Permit_WAN_to_Server] action permit
[H3C-security-policy-ip-0-Permit_WAN_to_Server] quitnat server policy-dst-nat enable 命令,使策略匹配 NAT 转换后的私网地址。any。display session table destination <公网IP> 或 display session table destination <内网服务器IP>,观察是否有外网访问的会话生成。如果有会话但无法访问,说明是回包路径或服务器问题;如果无会话,说明流量在防火墙入口就被丢弃(重点查安全策略或物理链路)。
SecPath F1000 NAT Server(服务映射)外网无法访问完整排查流程 + 标准正确配置
一、组网基础梳理
内网域:trust,内网服务器:192.168.1.100 端口 80
外网域:untrust,外网接口 GE1/0/0,公网 IP:203.0.113.10
需求:外网访问 203.0.113.10:80 映射到内网 192.168.1.100:80
二、标准完整可落地配置(i-Ware V7)
1. 接口 + 安全域绑定
bash
运行
system-view
# 外网接口untrust
interface GigabitEthernet 1/0/0
port link-mode route
ip address 203.0.113.10 255.255.255.0
security-zone untrust
# 内网接口trust
interface GigabitEthernet 1/0/1
port link-mode route
ip address 192.168.1.1 255.255.255.0
security-zone trust
2. NAT Server 服务映射
bash
运行
# 固定公网IP映射
nat server protocol tcp global 203.0.113.10 80 inside 192.168.1.100 80 rule web-map
# 若用接口动态IP,可写 current-interface
# nat server protocol tcp global current-interface 80 inside 192.168.1.100 80 rule web-map
3. 域间安全策略(最容易漏配,外网不通头号原因)
流量方向:untrust → trust,必须放行外网访问内网服务器端口
bash
运行
security-policy
rule 10 permit source any destination 192.168.1.100 0 service tcp destination-port eq 80
4. 回程路由保证(防火墙能回包给外网)
默认路由指向运营商网关(示例网关 203.0.113.1)
bash
运行
ip route-static 0.0.0.0 0 203.0.113.1 preference 60
5. 内网服务器回程路由(关键)
内网服务器网关必须填防火墙 trust 接口 IP 192.168.1.1,否则回包不经过防火墙,会话断裂。
三、分层排查流程(按顺序执行,快速定位故障点)
步骤 1:检查 NAT Server 配置是否生效
bash
运行
display nat server
正常输出能看到你配置的 global/inside 地址端口;无输出 = 配置没保存 / 敲错命令。
步骤 2:测试防火墙本机能否访问内网服务器
bash
运行
ping 192.168.1.100
telnet 192.168.1.100 80
不通:内网服务器关机、防火墙 trust 接口不通、服务器防火墙拦截、网关错误;
通:内网链路无问题,故障在外网侧 / 安全策略。
步骤 3:检查 untrust→trust 域间安全策略(最高概率故障)
bash
运行
display security-policy rule all | include 192.168.1.100
无匹配规则:外网流量被防火墙直接丢弃,新增 permit 规则;
规则存在但不生效:源 / 目的 / 端口写错、规则被 deny 规则覆盖。
步骤 4:查看 NAT 会话表,判断流量是否到达防火墙
bash
运行
display nat session table destination 192.168.1.100
无任何会话表项:外网流量根本没到防火墙
排查:运营商封禁端口、公网 IP 配置错误、上层路由没引流到防火墙;
存在入站会话、无回程会话:内网服务器无法回包
排查服务器网关、服务器本地防火墙、内网回程路由;
会话频繁创建马上消失:安全策略 deny、服务器端口未监听。
步骤 5:报文调试定位丢包位置(终极定位)
bash
运行
acl number 3000
rule permit tcp destination 192.168.1.100 0 eq 80
debugging ip packet acl 3000
terminal monitor
terminal debugging
只收到外网入包,无回程报文:内网服务器不回包;
入包直接被丢弃:安全策略拦截;
完全无报文:运营商拦截 / 公网路由问题。
步骤 6:排查运营商侧端口封禁
很多运营商封禁 22/80/443/3389/8080/9090 等端口。
测试方法:更换公网映射端口,例如公网 8080 映射内网 80
bash
运行
nat server protocol tcp global 203.0.113.10 8080 inside 192.168.1.100 80 rule web-test
换端口能访问 = 运营商封禁原端口。
步骤 7:检查服务器自身防火墙 / 监听端口
Linux:iptables/firewalld 放行对应端口,ss/nginx 正常监听;
Windows:防火墙入站规则放行 80,服务正常启动;
服务器网关必须指向防火墙 trust 接口 IP。
四、高频故障总结(90% 现场问题)
未配置 untrust 到 trust 放行安全策略(最常见)
内网服务器网关不是防火墙内网口,回包不经过防火墙,会话断裂
运营商封禁对外映射端口
NAT Server 内外端口、IP 地址书写错误
缺少默认路由,防火墙无法将应答包发回外网
服务器本地防火墙拦截外网转换后的访问源 IP
上层交换机 / 路由器 ACL 拦截公网访问防火墙公网 IP 端口
五、内网用户用公网 IP 访问服务器补充(hairpin)
若内网电脑通过公网 IP 无法访问,在出接口开启 NAT 回流:
bash
运行
interface GigabitEthernet 1/0/0
nat hairpin enable
外网访问不受 hairpin 影响,仅内网访问公网 IP 场景需要。
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论