一、教程前言

日常运维场景中,我们经常会遇到本地物理内网CloudNet虚拟网络隔离的问题:本地电脑无法直接访问 CloudNet 内的云端虚拟服务器。
本文手把手教大家通过「内网Linux中转服务器」配置路由转发 + NAT 规则,实现本地电脑无感知访问 172.16.0.0/24 全量虚拟网段,无需修改云端服务器任何配置,适配所有 CloudNet 环境。

二、环境架构与需求说明

1. 网络环境信息

  • 中转服务器(内网Linux):物理内网 IP 172.18.188.21,CloudNet 虚拟网卡 IP 172.16.0.5
  • CloudNet 虚拟网段172.16.0.0/24
  • 云端目标服务器:CloudNet 内网 IP 172.16.0.12(可扩展网段内所有设备)
  • 客户端:本地办公电脑(Windows/Mac/Linux)

2. 实现目标

本地电脑访问 172.16.0.0/24 网段所有 IP 时,流量自动经过内网中转服务器 172.18.188.21 转发至 CloudNet 虚拟网络,正常连通云端服务器。

3. 方案优势

  • 无需修改云端服务器路由、配置,零侵入线上环境
  • 基于 NAT 转发,兼容性极强,适配所有 CloudNet 版本
  • 一次配置永久生效,全网段统一转发,无需单IP配置
  • 配置简单、排错清晰,适合企业内网运维复用

三、前置检查(必做)

配置前必须确保中转服务器网络正常,否则后续配置全部失效:
在内网中转服务器 172.18.188.21 执行测试:
ping 172.16.0.12
能正常 ping 通,说明服务器 CloudNet 虚拟网络工作正常,可继续后续配置。

四、中转服务器配置(Linux)

核心配置:开启内核IP转发 + 配置iptables NAT转发规则,实现跨网段流量互通。

1. 开启内核IP转发(核心功能)

临时生效(重启失效,适合测试):
echo 1 > /proc/sys/net/ipv4/ip_forward
永久生效(生产环境推荐):
# 编辑内核配置文件
vi /etc/sysctl.conf

# 找到对应参数,修改为1(开启转发)
net.ipv4.ip_forward = 1

# 保存退出后,生效配置
sysctl -p

2. 配置 iptables 转发规则

执行以下命令,放行跨网段转发流量,并配置地址伪装,解决回程路由问题:
# 放行内网与CloudNet虚拟网段双向转发流量
iptables -A FORWARD -s 172.18.0.0/16 -d 172.16.0.0/24 -j ACCEPT
iptables -A FORWARD -d 172.18.0.0/16 -s 172.16.0.0/24 -j ACCEPT

# 配置地址伪装(通用方案,无需绑定网卡)
iptables -t nat -A POSTROUTING -s 172.18.0.0/16 -d 172.16.0.0/24 -j MASQUERADE

3. 保存防火墙规则(防止重启失效)

CentOS 系统:
service iptables save
Ubuntu/Debian 系统:
iptables-save > /etc/iptables/rules.v4

4. Firewalld 防火墙放行(开启防火墙环境必配)

若服务器开启了 firewalld,需执行以下命令放行转发规则:
firewall-cmd --add-masquerade --permanent
firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.18.0.0/16 destination address=172.16.0.0/24 accept' --permanent
firewall-cmd --reload

五、本地电脑路由配置

本地电脑添加静态路由,指定 172.16.0.0/24 网段流量全部转发至中转服务器172.18.188.21

1. Windows 电脑配置(管理员CMD)

临时路由(重启失效):
route add 172.16.0.0 mask 255.255.255.0 172.18.188.21
永久路由(重启保留,推荐):
route -p add 172.16.0.0 mask 255.255.255.0 172.18.188.21
常用查询/删除命令:
# 查看本机路由表
route print

# 删除配置的路由
route delete 172.16.0.0

2. Mac / Linux 电脑配置

添加静态路由:
sudo route add -net 172.16.0.0/24 gw 172.18.188.21
删除路由:
sudo route delete 172.16.0.0/24

六、全网验证测试

所有配置完成后,在本地电脑执行连通性测试:
ping 172.16.0.12
若能正常收到回包,说明转发配置成功,本地电脑可正常访问所有 172.16.0.0/24 网段云端设备。
服务器抓包排错命令(异常时使用):
# 抓取目标网段流量,排查转发是否生效
tcpdump -i eth0 host 172.16.0.12

七、常见问题与避坑指南

1. 配置完成后依旧无法连通

大概率是 CloudNet 策略限制:CloudNet 虚拟网络默认可能隔离本地物理网段与虚拟网段,需登录 CloudNet 管理后台,放行 172.18.0.0/16172.16.0.0/24 双向访问策略。

2. 云端服务器看不到本地真实IP

本文采用 MASQUERADE 地址伪装方案,云端只会识别中转服务器虚拟IP 172.16.0.5,属于正常现象。若需要保留本地真实IP,可采用纯路由转发方案(需云端配置回程路由)。

3. 重启服务器后配置失效

未开启永久IP转发、未保存iptables规则,重新执行本文「永久配置」步骤即可解决。

4. SELinux 拦截转发流量

临时关闭 SELinux 测试连通性:
setenforce 0

八、方案总结

本方案通过「Linux中转路由+NAT地址转发」的方式,低成本、零侵入实现了本地内网与 CloudNet 虚拟网络的互通。配置简单、稳定性高,适配企业日常运维、云端设备调试、内网资源访问等场景,可直接复用至所有相同架构的 CloudNet 环境。