Windows 10/11 x64 便携式网卡路由助手 —— 让指定的 IPv4 设备或网段走目标网卡,其余流量继续走原来的上网出口。
适用平台:Windows 10 / 11 x64 · 运行时:.NET 8(发布包已自包含)· 当前版本:v1.4.0 · 需要管理员权限
典型场景:一台电脑既要通过工控网线直连设备(设备网段如 192.168.10.0/24),又要通过 Wi-Fi、USB 网络共享或蜂窝网卡保留外网。手工添加路由、切换默认网关既繁琐又容易把整台机器断网。
双网通把这件事变成两条规则:
- 部分流量 —— 只把指定设备或网段交给目标网卡,其余流量不受影响。
- 全部流量 —— 让所有流量只走一张网卡,并带 60 秒确认与自动恢复保护。
程序不会检测网卡能否访问互联网,不向设备共享网络,也不安装任何驱动。
- 两种流量模式:部分流量(按设备 / 网段分流)与全部流量(单网卡独占),覆盖以太网、Wi-Fi、USB / 蜂窝、VPN 和虚拟网卡。
- 灵活的规则输入:支持单个设备完整 IPv4(自动生成
/32精确路由),也支持192.168.10或192.168.10.0/24形式的网段。 - 本机地址自动处理:目标网卡已有同网段地址时直接复用;缺少时自动挑选未占用的地址(默认按
/24补充)。 - 必选其余流量出口:部分流量模式下必须选择另一张已有默认路由的网卡,作为未匹配 IPv4 流量的优先出口。
- 明确的存在性判定:设备是否在线以指定源地址的 ARP 响应为准,Ping 仅作诊断,不会把只能 Ping 通的地址当成真实设备。
- 事务保护与分流清理:应用失败会尝试回滚;清除分流时移除分流路由和辅助地址,将所选网卡切换为 DHCP,同时保留分流前的静态地址和手动 DNS。
- 高风险模式双重保护:全部流量需在 60 秒内确认,否则独立的监护进程会自动恢复基线。
- 浅色 / 深色主题,选择结果自动记忆。
- 便携运行:单个自包含 EXE,状态文件统一放在
%LocalAppData%\DualNet,EXE 旁无需任何文件。
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 10 / 11 x64 |
| 权限 | 管理员(清单已声明 requireAdministrator,会弹出 UAC) |
| 运行时 | 从发布包运行无需安装 .NET;从源码构建需 .NET 8 SDK |
| 显示 | 窗口默认 1040×780,最小 900×620,支持 Per-Monitor V2 DPI |
-
获取发布 ZIP(由
scripts/publish.ps1产出,或从 Releases 页面下载)。 -
解压到任意目录,其中包含
双网通.exe和SHA256SUMS.txt。 -
建议先核对哈希,再运行
双网通.exe并允许管理员授权:Get-FileHash .\双网通.exe -Algorithm SHA256
-
程序未附带商业代码签名证书,首次运行可能出现 SmartScreen“未知发布者”提示。
dotnet build .\src\DualNet.App\DualNet.App.csproj -c Release- 选择“部分流量”,再选择分流网卡(即设备所在的那张网卡)。
- 添加规则:单个设备 IPv4(例如
192.168.10.6)或目标网段(例如192.168.10、192.168.10.0/24)。 - 选择“其余流量出口”,让未匹配的 IPv4 默认流量优先走 USB 网络共享、Wi-Fi、蜂窝或 VPN 等网卡。该网卡须已有 Windows 默认路由,且不能与分流网卡相同。
- 点击“应用部分流量”。
已在目标网卡配置的同网段本机地址会直接复用,缺少时自动尝试 .200/24 等未占用地址。需要说明:添加 /32 设备规则时,自动补充的本机地址仍使用 /24,因此同一 /24 内的其他地址也可能经目标网卡访问。
- 选择“全部流量”,确认或填写目标网卡的 IPv4、前缀、网关和可选 DNS。
- 点击“应用全部流量”。其他可见网卡的 IPv4 / IPv6 会被暂时关闭。
- 必须在 60 秒内点击“保留此配置”,否则独立监护进程会自动恢复原网络。
此模式可能瞬间切断当前网络,请确保你仍能物理接触到这台机器。
- 配置更新后可点击“更新路由”,底部会显示当前处理阶段。
- 不再需要分流时点击“清除分流并启用 DHCP”。该操作清除规则、分流路由和辅助地址,将分流网卡及其余流量出口切换为 DHCP;原有静态 IPv4 和手动 DNS 会保留。
- 若程序异常中断,下次启动会提示恢复原始网络基线;严格模式超时也会自动恢复该基线。
- 原始基线:首次应用前,把可见网卡的协议绑定、DHCP、IPv4、DNS、路由和指标保存到
%LocalAppData%\DualNet\baseline.json。 - 基线不被覆盖:重复更新不会重写原始基线,因此始终存在一个可回退的起点。
- 失败回滚:应用过程出错会尝试自动回滚。
- 60 秒监护:全部流量模式会启动独立监护进程,超时未确认即恢复基线。
- DHCP 冻结:在 DHCP 网卡上添加辅助本机地址时,当前租约的地址、网关和 DNS 会临时冻结为静态配置;清除分流时删除辅助地址并重新启用 DHCP。
- 版本迁移:旧的 v1.1 规则会迁移至部分流量模式。若旧版网络配置仍生效,请先清除分流并启用 DHCP,再应用新版。
- 恢复路径优先:真机应用 / 恢复会实际更改路由、DHCP、IP 或协议绑定,涉及“全部流量”时还会关闭其他网卡。请始终保留恢复路径。
-
完全离线:代码中没有任何 HTTP 客户端、遥测或更新检查,程序不会向任何服务器发送数据。它对网络的操作分为两类:查询本机网卡与路由(PowerShell / CIM 本地调用),以及向用户指定的本地目标地址发送 ARP 请求和诊断 Ping。
-
数据只在本机:所有状态文件都位于
%LocalAppData%\DualNet\,不写注册表,也不随仓库分发。文件 用途 baseline.json首次修改前的原始网络基线 pending.json尚未确认的待恢复操作 profile.json保存的规则配置 ui-settings.json主题等界面偏好 watchdog-<id>.armed/.confirmed60 秒监护状态 dualnet.log运行日志 -
请勿提交这些文件:
.gitignore已排除构建产物与发布目录,状态文件位于仓库之外。
dualnet/
├─ DualNet.sln
├─ README.md 用户文档(中文)
├─ AGENTS.md 工程信息与 AI 交接文档(英文)
├─ LICENSE MIT 许可证
├─ scripts/publish.ps1 打包脚本
├─ src/
│ ├─ DualNet.App/ WPF 图形界面(窗口、主题、视图模型)
│ └─ DualNet.Core/ 网卡清单、路由规则、配置事务、快照与监护
├─ tests/DualNet.Tests/ MSTest 自动测试
└─ work/UiSmoke/ XAML 绑定与预览冒烟检查(不修改真实网络)
| 职责 | 位置 |
|---|---|
| 窗口布局、规则行、确认横幅、底部操作栏 | src/DualNet.App/MainWindow.xaml |
| 主题资源与通用控件模板 | src/DualNet.App/App.xaml、Themes/ |
| UI 状态、命令、应用 / 恢复交互 | src/DualNet.App/ViewModels/ |
| 数据模型 | src/DualNet.Core/Models/ |
| 参数解析、网段计算、网卡推荐 | src/DualNet.Core/Networking/ |
| 配置事务、快照、60 秒监护 | src/DualNet.Core/Services/ |
窗口 Logo 使用 App.xaml 中的矢量 DrawingImage;EXE 与任务栏图标为 src/DualNet.App/Assets/app.ico。
需要 .NET 8 SDK(dotnet 在 PATH 中):
# 还原并构建
dotnet build .\DualNet.sln -c Release
# 仅构建主程序
dotnet build .\src\DualNet.App\DualNet.App.csproj -c Releasesrc/DualNet.Core 目标框架为 net8.0,界面与冒烟工程为 net8.0-windows。
自动测试位于 tests/DualNet.Tests(MSTest),共 50 个用例,覆盖 CIDR 计算与地址推荐、路由规则解析、网卡推荐、配置事务与回滚、快照存储及 PowerShell 转义。
dotnet test .\DualNet.sln -c Releasework/UiSmoke 是不触碰真实网络的 XAML 绑定与预览检查,用于验证下拉框鼠标交互、控件绑定初始化等界面行为:
dotnet run --project .\work\UiSmoke\UiSmoke.csproj -c Release修改网络事务时请补充对应的失败与恢复测试;修改界面时请检查浅色 / 深色主题、下拉鼠标操作、900px 最小宽度、空规则状态和 60 秒确认横幅。
.\scripts\publish.ps1 -DotNetExe 'C:\path\to\dotnet.exe' -Version '1.4.0'脚本会发布 Windows x64 自包含单文件 EXE,生成 SHA-256 清单,并打包为 ZIP。发布包内只有 双网通.exe 与 SHA256SUMS.txt,不包含 README。注意脚本会覆盖同版本的本地发布目录和 ZIP。
若行为发生变化,请先确定新的版本号,并同步更新工程文件、应用清单、README 与发布脚本中的版本号。
- 全部流量模式不处理系统回环和隐藏内核接口。
- 部分流量规则仅支持 IPv4,不涉及 IPv6 分流。
- 不提供 VPN 管理、Internet 连接共享(ICS)或厂商专用设备发现协议。
- 不检测目标网卡或其余流量出口的实际互联网连通性;出口选择只调整默认流量优先级,不保证真能联网。
- “部分流量”无法保证同一
/24内的其他地址绝不经过目标网卡。 - 未附带代码签名证书。
首次运行提示“未知发布者”?
程序未做商业代码签名,这是已知的交付限制。请核对随包附带的 SHA256SUMS.txt 后再运行。
应用“全部流量”后网络断了怎么办? 等待 60 秒监护自动恢复原始基线,或重新启动程序后按提示恢复。底部“清除分流并启用 DHCP”会清理分流设置,不等同于完整基线恢复。
可以删除程序了吗? 请先点击“清除分流并启用 DHCP”,确认网络状态正常,再删除程序目录。
配置文件在哪里?
全部位于 %LocalAppData%\DualNet\,详见隐私与本地数据。
AGENTS.md—— 工程信息与 AI 交接文档(英文):架构与代码入口、开发与发布流程、安全与隐私约束,以及已经废弃的历史设计。
本项目采用 MIT 许可证,可自由使用、修改、商用与再分发。