外网访问内网服务器,只做策略NAT(端口映射)是不够的,必须配套一条 Untrust→Trust(或 DMZ)的安全策略放通,否则流量到了防火墙也会被安全策略丢掉的。H3C 官方典型配置也是这么干的:NAT 内部服务器 + 安全策略两步配套 。下面把外到内的完整做法和测试排查讲清楚。
一、外到内访问的完整配置(两步缺一不可)
以"外网口 G1/0/1,公网地址 202.1.1.100,内网服务器 192.168.1.88:8081"为例。
第 1 步:在外部接口上配 NAT 内部服务器(即端口映射 / 目的 NAT)
命令行方式(在外网接口下):
[H3C] interface GigabitEthernet1/0/1
[H3C-GigabitEthernet1/0/1] nat server protocol tcp global 202.1.1.100 8081 inside 192.168.1.88 8081
Web 方式:策略 → NAT → NAT 内部服务器 → 策略配置 → 新建,选中外网口,协议 TCP,填外网地址/端口和内部服务器地址/端口 。
第 2 步:建一条 Untrust → Trust 的安全策略放通
[H3C] security-policy ip
[H3C-security-policy-ip] rule name WAN_to_OA
[H3C-security-policy-ip-rule-WAN_to_OA] source-zone untrust
[H3C-security-policy-ip-rule-WAN_to_OA] destination-zone trust
[H3C-security-policy-ip-rule-WAN_to_OA] destination-address host 192.168.1.88
[H3C-security-policy-ip-rule-WAN_to_OA] service tcp-8081 # 或对应服务对象
[H3C-security-policy-ip-rule-WAN_to_OA] action permit
💡 关键点:H3C 防火墙对入向 DNAT 流量,安全策略匹配的是 NAT 转换后的内网服务器真实 IP(也就是 192.168.1.88),不是公网 IP 。所以目的地址栏填内网服务器 IP 才是对的。
Web 配置路径:策略 → 安全策略 → 新建,源安全域 Untrust、目的安全域 Trust、目的 IP 选服务器地址对象、服务选 8081 服务对象、动作允许 。
二、怎么测试外部到内部通不通
1. 从外网客户端直接访问
telnet 202.1.1.100 8081
# 或浏览器访问 http://202.1.1.100:8081
2. 在防火墙上查看会话表(最有效的验证手段)
display session table ipv4
或者 Web 监控 → 会话列表。如果能看到一条会话,且目的 IP 已经被转换成 192.168.1.88,说明 NAT 生效、安全策略也放通了,问题在服务器侧;如果根本看不到会话,说明 NAT 或安全策略没配对 。
3. 验证命令汇总
display nat server —— 查 NAT 内部服务器配置是否正确
display security-policy —— 确认安全策略已生效
display session table —— 看实时会话
三、配完了还是不通?按这个顺序排查
外网口 IP 是不是真公网 IP:如果是运营商大内网(10.x、100.x 开头),外网根本访问不到
端口是否被运营商屏蔽:80、443、8080 等常见 Web 端口通常需要备案才能开放
安全策略的目的地址写对了没:入向 DNAT 要写内网服务器真实 IP,不是公网 IP
安全策略的顺序:前面有没有 deny 规则把这条流量先匹配掉了
服务器本身:内网用户能不能直接用 192.168.1.88:8081 访问到?服务器本地防火墙有没有关?
回包路由:服务器回包能不能回到防火墙(服务器网关指向防火墙内网口)
端口映射的协议:TCP 服务别配成 UDP,FTP 这类多端口应用需要开 ALG
⚠️ 一个最常踩的坑:只在接口上做了 NAT server,忘了建 Untrust→Trust 的安全策略。结果是 NAT 转换发生了,但报文被安全策略丢弃,外网死活访问不了,防火墙会话表里也看不到条目。所以"策略 NAT + 安全策略"两步必须配套做。
四、关于"策略 NAT"这个说法
H3C V7 防火墙的 Web 界面里,"策略 > 策略 NAT"和"策略 > 接口 NAT > NAT 内部服务器"都能实现外到内的目的地址转换。两者本质一样,区别是:
接口 NAT(NAT 内部服务器):绑定在具体外网接口下,配置直观,适合单接口发布服务
策略 NAT:不绑定接口,按"源安全域 + 目的地址 + 服务"匹配,适合复杂策略或需要在安全策略中匹配内网 IP 的场景(需开启 nat server policy-dst-nat enable)
一般场景用接口 NAT 内部服务器就够了,更简单也不容易出错。
暂无评论
策略 > NAT > NAT内部服务器(或接口NAT)中配置。策略 > 安全策略。telnet <公网IP> <外网端口> 或 nc -v <公网IP> <外网端口>。display security-policy rule name <策略名> 或 display nat-policy rule name <策略名>。display nat session(可结合目的公网 IP 或端口进行过滤)。暂无评论
关键点:只配置策略 NAT(目的地址转换 DNAT)是不能通的!必须配套安全策略放行 Untrust‑>TrustH3C。 接口 NAT 里的
nat server就是传统端口映射;策略 NAT‑目的地址转换,也可以实现端口映射效果,二者不要混用。
❌不行。
流量顺序(首包): 外网报文进入 Untrust 接口 → 匹配目的策略 NAT修改目的 IP / 端口 → 匹配安全策略 Untrust‑>Trust允许通过 → 转发到内网服务器。
⚠️策略 NAT(目的 DNAT)单向转换,不会自动生成 server‑map 表;回程流量不会自动做源转换;回程靠会话表驱动转换,不是双向静态映射。 对比:接口 NAT 的
nat server会生成静态 server‑map,双向映射,优先级高于策略 NAT。不要同一公网端口同时配置 nat server 和策略 NAT,会冲突H3C。
适合简单端口发布;绑定物理接口;生成静态 server‑map 表。
interface GigabitEthernet1/0/0 #untrust外网接口
nat server protocol tcp global 202.1.1.1 80 inside 10.1.1.10 80
优点:配置简单;有 server‑map,内网访问公网 IP 也可以通(公网回环访问)。 缺点:绑定接口;匹配条件简单,只能基于目的 IP 端口,不能匹配源地址对象。
不绑定接口,全局策略,可以匹配源地址、目的地址、服务,做精细化 DNAT,也支持端口映射(转换后端口填写)H3C。
nat global‑policy
rule name extern_2_web
source‑zone untrust
destination‑ip host 202.1.1.1
service http
action dnat ip‑address 10.1.1.10 port 80
#配套安全策略!必须配置
security‑policy ip
rule name permit_extern_web
source‑zone untrust
destination‑zone trust
destination‑ip host 10.1.1.10
service http
action pass
Web 界面:策略‑策略 NAT,新建,模式选目的地址转换;源安全域 Untrust;目的地址填写公网 IP;转换方式 IP 地址转换,填写内网服务器 IP、转换后端口。
⚠️策略 NAT‑目的 DNAT 没有 server‑map,内网机器访问公网 IP 不会自动 DNAT;内网需要访问服务器,要么走内网网段直接访问,额外做 DNS‑mapping。
重点!安全策略目的地址写转换完成后的内网 IP,不要写公网 IP。报文在 NAT 阶段已经把目的改成内网 IP,安全策略匹配转换之后的报文。
debugging nat packet看是否命中目的 NAT 转换,确认目的 IP 是否改成内网服务器地址。display session table verbose,看是否建立会话;如果无会话,大概率安全策略拒绝。nat server和策略目的 NAT 共存;nat server 优先级更高,策略 NAT 不生效。
nat server迁移策略 NAT:先删除接口下 nat server,新建目的地址转换策略;安全策略目的填内网真实 IP。display session table verbose是定位外‑内 NAT 故障最直接手段。暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论