Winodws 双网卡实现内外网分流
编辑
28
2025-03-20
1. 缘由
公司在网络方面做了些许限制,因此有了这次的探索。刚好电脑有两张网卡。就通过路由表
简单做一下分流即可实现一定突破。
2. 前置条件
有线网卡(专门用来连通内网)
无线网卡(专门用来连通外网)
3. 操作过程
Windows默认的流量出口优先级始终是 有线网卡 优先于 无线网卡 。因此呢,我们要尝试破坏这个优先级。
3.1 获取网卡ip及网关
打开cmd
(Win + R
input cmd
)
ipconfig
输出结果大致如下:
以太网适配器 以太网:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . :
IPv4 地址 . . . . . . . . . . . . : 192.168.1.8
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.1.254
无线局域网适配器 WLAN:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . :
IPv4 地址 . . . . . . . . . . . . : 10.0.4.6
子网掩码 . . . . . . . . . . . . : 255.255.248.0
默认网关. . . . . . . . . . . . . : 10.0.0.254
核心信息:
需要拿到 IP地址 以及 网关 后续做路由表需要用到
3.2 修改路由表
cmd
执行:
route print -4
输出结果大致如下:
IPv4 路由表
===========================================================================
活动路由:
网络目标 网络掩码 网关 接口 跃点数
0.0.0.0 0.0.0.0 192.168.1.254 192.168.1.8 25
0.0.0.0 0.0.0.0 10.0.0.254 10.0.4.6 30
10.0.0.0 255.255.248.0 在链路上 10.0.4.213 286
10.0.4.231 255.255.255.255 在链路上 10.0.4.213 286
===========================================================================
永久路由:
无
重点其实就是看最上方的 0.0.0.0
, 可以看到路由表优先让 有线网卡排在无线网卡之前 (看跃点数 越小越优先)
因此我们需要在这里做下修改。
删除默认路由
route delete 0.0.0.0
添加外网路由(走无线网卡)
route add 0.0.0.0 mask 0.0.0.0 10.0.0.254 metric 10
metric指代跃点数(优先级)
添加内网路由(走有线网卡)
# 以192.168.0.0/16为例 route add 192.168.0.0 mask 255.255.0.0 192.168.1.254 metric 5 -p
-p
指代永久路由,也就是重启也不会修改这份自己配置的路由表具体还有哪些内网需要走内网网卡的,请自行根据以上例子进行补充。
至此,就可以实现内外网分离了。但是如果每次都要输入这么一大坨命令,那可实在是太累了,因此贴一份bat
脚本
请根据自己的实际网络环境进行修改!
@echo off
echo ============================================
echo Windows内外网分流配置工具
echo author:iyyh.net
echo 时间:%date% %time%
echo ============================================
echo.
:: 检查管理员权限
net session >nul 2>&1
if %errorlevel% neq 0 (
echo 错误: 请以管理员身份运行此批处理!
echo 请右键点击此文件,选择"以管理员身份运行"。
echo.
pause
exit /b 1
)
:: 确保备份目录存在
if not exist "D:\network\network_route_print" (
echo [信息] 创建备份目录...
mkdir "D:\network\network_route_print"
)
echo [信息] 开始配置内外网分流...
echo [信息] 正在备份当前路由表...
route print > "D:\network\network_route_print\route_backup_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt"
echo [信息] 路由表已备份到 D:\network\network_route_print
echo.
echo [步骤1] 删除现有默认路由...
route delete 0.0.0.0
if %errorlevel% equ 0 (
echo [成功] 默认路由已删除
) else (
echo [警告] 删除默认路由可能出现问题,继续执行...
)
echo.
echo [步骤2] 添加外网默认路由(走无线网卡)...
route add 0.0.0.0 mask 0.0.0.0 10.0.0.254 metric 10
if %errorlevel% equ 0 (
echo [成功] 外网默认路由已添加
) else (
echo [错误] 添加外网默认路由失败!
goto error
)
echo.
echo [步骤3] 添加内网路由(走有线网卡)...
echo [信息] 添加192.168网段路由...
route add 192.168.0.0 mask 255.255.0.0 192.168.1.254 metric 5 -p
if %errorlevel% equ 0 (
echo [成功] 192.168网段路由已添加
) else (
echo [错误] 添加192.168网段路由失败!
goto error
)
echo.
echo [步骤4] 验证路由配置...
echo [信息] 当前路由表配置如下:
echo.
route print | findstr /C:"0.0.0.0" /C:"192.168"
echo.
echo ============================================
echo [成功] 内外网分流配置已完成!
echo ============================================
goto end
:error
echo.
echo [错误] 配置过程中出现错误,请检查网络连接和账户权限!
echo [建议] 请确保有线网卡和无线网卡正常工作,并以管理员身份运行此批处理。
:end
echo.
echo 按任意键退出...
pause > nul
最后,请注意数据安全!
- 0
- 0
-
分享