一、教程前言
日常运维场景中,我们经常会遇到本地物理内网与CloudNet虚拟网络隔离的问题:本地电脑无法直接访问 CloudNet 内的云端虚拟服务器。
本文手把手教大家通过「内网Linux中转服务器」配置路由转发 + NAT 规则,实现本地电脑无感知访问 172.16.0.0/24 全量虚拟网段,无需修改云端服务器任何配置,适配所有 CloudNet 环境。
二、环境架构与需求说明
1. 网络环境信息
-
中转服务器(内网Linux):物理内网 IP
172.18.188.21,CloudNet 虚拟网卡 IP172.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/16 与 172.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 环境。