小编最近遇到这样一个问题:在内网进行开发,但需调用外网的接口,由于目前通道没打通,外网ip地址没在内网进行映射。数据库、中间件都在内网部署,如果服务连外网由于没环境则无法正常启动。这时可能会想到以下几点:
写个模板测外网的接口,内网再造假数据写好代码,等打通通道后再测试;
在外网再部署一套环境,但这种得考虑外网是否有资源;
外网接口相关服务在内网部署一套,但这种也得考虑内网是否有资源;
能否通过修改配置同时访问内外网,但这可能面临数据泄露、 病毒传播等安全风险。
这里小编就第4点"通过静态路由配置 指定不同流量的走向,实现内外网互通"展开讲讲,注意这仅供学习交流与知识普及之用。
1. 核心思路
-
有线网卡(以太网)用于内网通信,需为内网网段配置静态路由;
-
无线网卡(WLAN)用于外网通信,保留其默认网关作为外网流量的出口;
-
通过
route命令添加静态路由,确保不同网段的流量走对应网卡。
2. 具体配置步骤
1) 网卡跃点数的系统级配置:调整路由优先级与跃点数
当前网络环境中,有线网卡(192.168.192.88)和无线网卡(192.168.54.168)同时存在。若有线网卡的跃点数低于无线网卡 ,系统会优先将外网流量导向有线网卡的网关(192.168.192.252),但该网关可能无法访问外网,导致流量丢失。
检查网卡的 "自动跃点" 配置,强制指定无线网卡的跃点数低于有线网卡 ,让外网流量优先走无线,并确保内网流量走有线,实现双网卡的流量分流。
- 打开网络连接:点击 "开始"→"设置"→"网络和 Internet"→"高级网络设置"→"更改网络适配器选项";


- 右键点击"无线网卡(WLAN)"→"属性"→双击"Internet 协议版本 4(TCP/IPv4)"→"高级";


- 取消勾选 "自动跃点" ,手动设置跃点数为 1;

-
同理,右键点击"有线网卡(以太网)"→"属性"→"Internet 协议版本 4(TCP/IPv4)"→"高级";
-
取消勾选 "自动跃点" ,手动设置跃点数为 2;
-
重启电脑配置即可生效。
2)以管理员权限打开命令提示符(CMD),查询网络配置
通过window桌面左下角的搜索框,输入cmd,右键点击 "命令提示符" 选择 "以管理员身份运行"。

在命令提示符窗口输入ipconfig查询网络配置:

3)清除原有默认路由(避免冲突)
route delete 0.0.0.0
4)添加外网默认路由(走无线网卡)
假设无线网卡的默认网关是 192.168.54.66,添加外网所有流量的路由:
route -p ADD 0.0.0.0 MASK 0.0.0.0 192.168.54.66 METRIC 1
-
-p:永久路由(重启后不丢失); -
0.0.0.0 MASK 0.0.0.0:匹配所有外网地址; -
192.168.54.66:无线网卡的默认网关; -
METRIC 1:跃点数(优先级,数值越小优先级越高)。
5)添加内网静态路由(走有线网卡)
假设内网网段是 192.168.192.0/24(与有线网卡同网段),添加内网流量的路由:
route -p ADD 192.168.192.0 MASK 255.255.255.0 192.168.192.252 METRIC 2
-
192.168.192.0 MASK 255.255.255.0:内网网段,这里255.255.255.0是内网子网掩码,对应连通的内网网段为xxx.xxx.xxx.0,如当前内网IPv4地址为192.168.192.88,对应的内网网段就是192.168.192.0。 -
192.168.192.252:有线网卡的默认网关; -
METRIC 2:跃点数(低于外网路由,确保内网流量优先走有线)。
6)验证路由配置
执行 route print -4 查看路由表,确认以下条目存在:

-
外网默认路由:
0.0.0.0指向192.168.54.66,跃点数1; -
内网静态路由:
192.168.192.0指向192.168.192.252,跃点数2。
7)测试连通性
在命令提示符的窗口中,通过执行"ping xxx.xxx.xxx.xxx"来测试连通性。
-
访问外网地址(ping www.baidu.com):应通过无线网卡正常访问;
-
访问内网地址(ping 192.168.192.xxx):应通过有线网卡正常访问。
3. 常见问题解决
1)内网子网掩码需与内网的网络配置一致,避免有冲突问题。
route -p ADD 192.0.0.0 MASK 255.0.0.0 192.168.192.88 METRIC 2
上面的命令存在以下问题:
-
192.0.0.0 MASK 255.0.0.0范围过广,会覆盖所有内网和外网流量,导致冲突; -
网关
192.168.192.88是有线网卡自身的 IP,而非网关,无法转发流量。
2)经过上面配置内外网互通,但还是无法访问部分内网地址(如 172.25.2.38)!
解决该问题需针对这些内网网段添加静态路由 ,明确指定流量走有线网卡的网关192.168.192.252。以下是具体步骤:
route -p ADD 172.25.2.0 MASK 255.255.255.0 192.168.192.252 METRIC 2
-
172.25.2.0 MASK 255.255.255.0:目标内网网段; -
192.168.192.252:有线网卡的网关; -
METRIC 2:跃点数(与已有内网路由保持一致,确保优先级)。
3)子网掩码与网关的匹配
若内网网段的子网掩码不是 255.255.255.0(如 255.255.0.0),需调整 MASK 参数。例如,若 172.17.0.0/16 网段的掩码是 255.255.0.0,则路由命令应为:
route -p ADD 172.17.0.0 MASK 255.255.0.0 192.168.192.252 METRIC 2
需根据实际内网的子网规划调整网段和掩码,确保路由条目能准确匹配目标流量。