在 H3C 路由器(或 H3C 交换机作为网关)上设置“虚拟服务器”,通常指的是配置 NAT Server(端口映射/静态 NAT),这允许外部网络通过路由器的公网 IP 和特定端口访问内部局域网中的某台服务器。
以下是详细的配置步骤和逻辑说明,适用于大多数 H3C Comware V7 版本系统(常见于 MSR 系列路由器、S 系列交换机等)。
📌 核心概念
- 外部 IP (Public IP):路由器连接互联网接口的 IP 地址。
- 内部 IP (Private IP):局域网内服务器的真实 IP 地址。
- 端口映射:将外部访问的端口映射到内部服务器的端口。
✅ 配置步骤
第一步:确认接口与 IP 地址
确保你的路由器已经正确配置了内网和外网接口,并启用了 NAT。
system-view interface GigabitEthernet 1/0/1 # 假设这是内网接口 ip address 192.168.1.1 255.255.255.0 quit interface GigabitEthernet 1/0/0 # 假设这是外网接口(连接光猫/互联网) ip address 203.0.113.1 255.255.255.0 # 示例公网 IP nat outbound 3000 # 确保已配置出向 NAT(NAPT),以便内网能上网 quit
💡 注意:
nat outbound 3000是常见的动态 NAT 配置,用于内网用户访问互联网,如果未配置,内网可能无法上网。
第二步:创建 ACL 匹配外部流量(可选但推荐)
为了安全,建议先定义一个 ACL,只允许特定外部 IP 或所有外部 IP 访问。
acl number 3000 rule 5 permit tcp destination-port eq 80 # 允许外部访问 TCP 80 端口 rule 10 permit tcp destination-port eq 443 # 允许 HTTPS rule 15 permit tcp destination-port eq 22 # 允许 SSH rule 20 deny ip # 默认拒绝其他 quit
⚠️ 如果希望所有外部 IP 都能访问,可以跳过此步,直接使用
any。
第三步:配置 NAT Server(虚拟服务器)
这是最关键的一步,在外网接口下配置端口映射。
假设:
- 公网 IP:
0.113.1 - 内网服务器 IP:
168.1.100 - 服务类型:Web 服务(TCP 80)
interface GigabitEthernet 1/0/0 # 进入外网接口 nat server protocol tcp global 203.0.113.1 inside 192.168.1.100 quit
🔹 更详细的写法(指定端口):
如果外部端口和内部端口不同,外部访问 8080,内部服务器是 80。
interface GigabitEthernet 1/0/0 nat server protocol tcp global 203.0.113.1 8080 inside 192.168.1.100 80 quit
🔹 绑定 ACL(增强安全性):
只允许特定外部 IP 访问:
interface GigabitEthernet 1/0/0 nat server protocol tcp global 203.0.113.1 80 inside 192.168.1.100 80 acl 3000 quit
第四步:验证配置
display nat server
你应该能看到类似输出:
Protocol Global Address Inside Address ACL tcp 203.0.113.1:80 192.168.1.100:80 -
🌐 常见服务映射示例
| 服务 | 协议 | 外部端口 | 内部端口 | 配置命令示例 |
|---|---|---|---|---|
| Web 服务 | TCP | 80 | 80 | nat server protocol tcp global 203.0.113.1 inside 192.168.1.100 |
| HTTPS | TCP | 443 | 443 | nat server protocol tcp global 203.0.113.1 443 inside 192.168.1.100 443 |
| SSH | TCP | 2222 | 22 | nat server protocol tcp global 203.0.113.1 2222 inside 192.168.1.100 22 |
| FTP | TCP | 21 | 21 | nat server protocol tcp global 203.0.113.1 21 inside 192.168.1.100 21 |
| 远程桌面 | TCP | 3389 | 3389 | nat server protocol tcp global 203.0.113.1 3389 inside 192.168.1.100 3389 |
⚠️ 重要注意事项
-
防火墙/安全策略:
- H3C 设备默认可能启用安全策略(尤其是较新版本),如果配置后仍无法访问,请检查:
display firewall packet-filter rule all
确保没有规则拒绝来自外网到内网服务器的流量。
- H3C 设备默认可能启用安全策略(尤其是较新版本),如果配置后仍无法访问,请检查:
-
运营商封锁端口:
- 国内大多数家庭宽带运营商(电信/联通/移动)封锁 80、443、8080 等常见 Web 端口
。
- 解决方案:使用非标准端口(如 8081、8082)进行映射,并在访问时使用
http://公网IP:8081。
- 国内大多数家庭宽带运营商(电信/联通/移动)封锁 80、443、8080 等常见 Web 端口
IPv6 支持:
如果你的网络支持 IPv6,H3C 也支持 IPv6 NAT Server,命令类似,但需启用 IPv6 路由和 NAT。
-
DMZ 主机(替代方案):
- 如果你希望开放所有端口给某台内网服务器,可以配置 DMZ:
interface GigabitEthernet 1/0/0 dmz server 192.168.1.100 quit
⚠️ DMZ 安全性较低,仅建议在测试环境使用。
- 如果你希望开放所有端口给某台内网服务器,可以配置 DMZ:
-
重启后配置保留:
- 配置完成后,务必执行:
save
否则重启后配置丢失。
- 配置完成后,务必执行:
❓ 常见问题排查
-
问题:外网能 ping 通公网 IP,但无法访问服务。
- 检查:
- 内网服务器是否开启了防火墙(如 Windows 防火墙)并允许对应端口?
- 是否配置了正确的 NAT Server?
- 运营商是否封锁了该端口?
- 检查:
-
问题:内网用户无法通过公网 IP 访问自己的服务器。
- 解决方案:启用 NAT 回流(NAT Hairpinning) 或 NAT Server 内网访问:
nat server protocol tcp global 203.0.113.1 inside 192.168.1.100 nat-server-inner-access
- 解决方案:启用 NAT 回流(NAT Hairpinning) 或 NAT Server 内网访问:
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/476380.html



