Windows 网卡出口一键切换工具 —— 插着网线也能让默认流量走 WiFi,图形界面单文件零依赖。
Windows 的多网卡选路靠跃点数(InterfaceMetric)竞争:有线网卡自动基数小(25),WiFi 大(30~50),数值小者赢。所以网线 + WiFi 同时连接时,流量永远走网线——WiFi 只是挂着,根本不承担流量。
想临时改走 WiFi(比如 WiFi 是另一条独立出口),只能进适配器设置改跃点数,操作繁琐还容易忘恢复。NicSwitch 把它变成两次点击:
- WiFi 优先模式:把 WLAN 跃点数固定为 10(手动)→ 网线+WiFi 并存时默认走 WiFi,持久生效(重启/重连不丢,微软文档确认该设置存储在活动策略存储)
- 恢复系统默认:WLAN 回到自动跃点,与装机默认逐位一致
- 想换回,再跑一次恢复即可——系统里只留下这一个静态值,无任何后台/自启
- 深色图形界面(tkinter,Python 标准库自带,零第三方依赖)
- 状态徽章:当前模式 / WiFi 未连接提醒 / 网卡连接状态与跃点数 / 出口公网 IP
- 10 秒自动刷新,运行期间网络变化实时可见
- 切换执行中自动禁用按钮防误触;已设置时"切到 WiFi 优先"自动置灰
- 无黑窗(全部子进程
CREATE_NO_WINDOW) - 附带 3 个命令行 bat(切热点优先 / 恢复默认 / 查看状态),适合脚本化场景
要求:Windows 10/11 + Python 3.8+(仅标准库)
- 下载
switch_gui.py和nic-switch.ps1放同一目录 - 双击运行(或
pythonw switch_gui.py隐藏控制台)→ UAC 点"是" - 点按钮切换
命令行方式(管理员):
powershell -NoProfile -ExecutionPolicy Bypass -File nic-switch.ps1 hotspot # WiFi 优先
powershell -NoProfile -ExecutionPolicy Bypass -File nic-switch.ps1 restore # 恢复默认
powershell -NoProfile -ExecutionPolicy Bypass -File nic-switch.ps1 status # 查看状态双击 切热点优先.bat / 恢复校园网默认.bat / 查看网络状态.bat 同效(自动弹 UAC)。
生效(hotspot): Set-NetIPInterface -InterfaceAlias WLAN -InterfaceMetric 10
→ 自动跃点关闭(Disabled),手动值 10 < 有线自动值 25 → WiFi 恒赢
恢复(restore): Set-NetIPInterface -InterfaceAlias WLAN -AutomaticMetric Enabled
→ 回到系统按链路速度自动计算,装机默认状态
只改"选路权重",不动 IP/DNS/任何网卡配置;速度由被选中链路自身决定,与跃点数值无关。
- WiFi 优先模式下全部流量走 WiFi:若 WiFi 是手机热点,注意流量消耗;校园网内网资源(10.x 地址)可能不通——本工具不提供分流,需要"内网走有线、特定流量走 WiFi 并存"的请搜索 clash/mihomo 的
interface-name绑定方案 - 固定 metric 后 WiFi 优先不再随链路速度自适应(连上更慢的 WiFi 也会优先它),恢复默认即回到自动
- 接口名硬编码为中文系统默认名
WLAN/以太网,被改名过会自动按网卡描述(Wi-Fi/Wireless/802.11)兜底匹配
- 中文系统接口名(WLAN/以太网)为第一优先匹配;英文系统用户若匹配失败请手动改名或提交 issue
- PowerShell 5.1(系统自带)即可,无需升级
- 提权环境下
Get-NetIPInterface -InterfaceAlias存在 CIM 查询异常(WHERE 条件被搅坏),故本工具全部按InterfaceIndex整数键操作,免疫此坑
MIT