Windows 平台一键网络故障排查与修复工具 · 对标火绒「断网修复」· Fluent Design (Win11) 界面 · 纯本地运行
NetRepair 是一个完全在本地运行的 Windows 网络修复桌面程序。它把常见的 netsh / ipconfig / PowerShell 网络修复操作封装成可视化的「一键修复」与「逐项修复」,并配套一套双路网络诊断,先定位病因再做最小修复。
全部操作基于系统自带命令,不上传任何数据、不联网校验、不捆绑任何组件、不常驻后台,可放心用于办公与生产环境排障。
- 14 项修复能力,覆盖 95% 的「能连 Wi‑Fi 但上不了网」场景:
- 默认勾选(8 项):刷新 DNS 缓存、清理 ARP/NetBIOS 缓存、修复网络系统服务、重置 Winsock、重置 TCP/IP 协议栈、修复默认网关、恢复 DNS 自动获取、重置浏览器代理
- 默认不勾选(6 项):修复 Internet 选项(安全)、优化 TCP 全局参数(常规)、重置 Hosts 文件、重启网络适配器、重置 Windows 防火墙、清理路由表残留(后四项为谨慎级,需手动确认)
- 10 项网络诊断(双路探测):同时走「直连 socket」与「系统代理路径」两条链路,对比定位病因(真断网 / 代理劫持 / DNS 故障 / LSP 损坏),仅对异常项给出自动勾选建议。
- 日志与备份:修复前自动备份被修改的配置(Hosts、系统代理、防火墙策略等),日志落盘到
%ProgramData%,可追溯、可还原。 - Fluent Design 界面:基于 QFluentWidgets 的 Windows 11 风格,支持 Mica 云母背景、亚克力侧边栏、明暗主题自适应、5 套主题色。
- 零依赖分发:PyInstaller 打包为单文件 exe(
NetRepair.exe,无需安装任何依赖);需要完整修复能力时右键「以管理员身份运行」即可。
- 修复「双击无窗口」:PyInstaller onefile 对中文 exe 文件名不兼容 +
--uac-admin提权清单与 Qt 窗口初始化冲突,两者叠加导致程序静默退出。改为 ASCII 文件名NetRepair.exe、不内嵌提权清单(需要时右键以管理员身份运行)。 - 启动提速约 3 倍:程序图标去白底从运行时(纯 Python 逐像素,约 1.2s)移至构建期(PIL+numpy),新增
gen_icon_b64.py。 - 新增快速目录版:
python build.py --onedir生成免解压目录版,启动约 2-3 秒(单文件版约 5-6 秒)。 - 崩溃不再静默:新增 SEH 原生崩溃过滤器(弹窗 + 写
%TEMP%/NetRepair_crash.log)、Qt 消息钩子、启动逐步诊断日志(%TEMP%/NetRepair_diag.log)。 - 不再排除任何 PySide6 模块(体积换 100% 兼容)。
- 首个公开发布版本:14 项修复 + 10 项双路诊断 + 备份还原 + Fluent Design 界面。
| 关于页 | 运行日志 | 诊断页 |
|---|---|---|
![]() |
![]() |
![]() |
| 备份页 | 首页 |
|---|---|
![]() |
![]() |
| 项 | 要求 |
|---|---|
| 操作系统 | Windows 10 / 11(x64) |
| Python | 3.10+(推荐 3.13,开发环境使用 3.13) |
| 权限 | 修复网络配置需要 管理员权限 |
| 运行依赖 | PySide6 + PySide6-Fluent-Widgets |
# 1. 克隆仓库
git clone https://github.com/cv-superding/NetRepair.git
cd NetRepair
# 2. 创建虚拟环境并安装依赖
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
# 3. 运行(建议右键「以管理员身份运行」终端,否则部分修复项会被跳过)
python main.py前往 Releases 下载最新版:
NetRepair-v1.2.0.exe(单文件版,方便分享)NetRepair-v1.2.0-onedir.zip(目录版,启动更快,约 2-3 秒)
双击运行即可,无需安装任何依赖。需要完整修复能力(修改网络配置)时,请右键 →「以管理员身份运行」。
# 安装打包依赖
pip install pyinstaller pillow
# 一键打包(生成 dist/NetRepair.exe 单文件版)
python build.py
# 或打包快速启动的目录版(免解压,启动 ~2s;生成 dist/NetRepair/ 文件夹)
python build.py --onedir单文件版用 ASCII 文件名 NetRepair.exe(PyInstaller onefile 在本机对中文文件名有兼容问题,已实测确认),窗口标题与界面仍为中文「网络修复工具」。不内嵌 UAC 清单,提权由界面提示引导。
程序启动后分为五个页面:
- 一键修复(首页):列出 14 项修复能力,每项标注风险等级(安全 / 常规 / 谨慎)。可点击「智能勾选」(先跑诊断、自动勾选异常项),或对单项点击「单独修复」。
- 网络诊断:运行 10 项双路探测,逐项显示 ✅/❌ 状态与病因结论;异常项可直接一键跳转修复页并自动勾选。
- 运行日志:实时查看每条命令的执行结果(按级别着色),支持复制全部、清空显示与打开日志目录。
- 备份还原:查看与管理系统生成的配置备份(Hosts、代理设置、防火墙策略导出等);Hosts 与代理备份支持一键还原,防火墙策略导出(.wfw)需手动导入。
- 关于:版本信息、作者信息(邮箱一键复制/发送)、外观设置(明暗主题 + 主题色,选择自动记忆)、数据目录自定义、开源许可与使用须知。
💡 提示:标记为「谨慎」的修复项会清除自定义配置或短暂中断网络(Hosts、防火墙策略、路由表、网卡重启等),其中 Hosts 与防火墙策略执行前会自动备份,确认无误再点。
NetRepair/
├── main.py # 程序入口:启动 GUI + 崩溃诊断(SEH/日志),不自动提权
├── build.py # 打包脚本:生成图标 / 版本信息 / 调用 PyInstaller(单文件或 --onedir)
├── gen_icon_b64.py # 构建期图标预处理:去白底 → 内嵌透明 PNG(消除运行时像素循环,加速启动)
├── requirements.txt # 运行与打包依赖
├── LICENSE # GPLv3 全文
├── assets/ # 图标源图与构建产物(app-icon-source.png 入仓,*.ico/*.txt 为生成物)
├── netfix/ # 核心包
│ ├── __init__.py # 包元信息(名称/版本/作者/许可)
│ ├── sysutil.py # 底层工具:命令执行、管理员判定、日志、备份目录
│ ├── engine.py # 14 个修复项实现(含备份与还原)
│ ├── diagnose.py # 10 项网络诊断(双路探测 + 病因结论)
│ ├── icons.py # 内嵌图标(base64,无需外部资源文件)
│ ├── theme.py # 旧版自制界面的莫奈配色方案(当前 ui.py 基于 QFluentWidgets,未引用,保留备用)
│ ├── anim.py # 旧版自制界面的悬停动效组件(当前未引用,保留备用)
│ └── ui.py # Fluent Design 图形界面(5 个页面)
├── shots/ # 界面截图(用于 README)
└── docs/ # 设计调研(本地,不入仓)
| 分层 | 说明 |
|---|---|
界面层 ui.py |
基于 FluentWindow + QFluentWidgets 组件,5 个 addSubInterface 子页面;主题色与明暗主题全链路自适应。 |
业务层 engine.py / diagnose.py |
纯函数式封装系统命令,不依赖 GUI;修复前自动备份、执行后可还原。 |
支撑层 sysutil.py |
进程提权(runas / UAC)、命令执行与超时、日志(%ProgramData% 落盘)、备份目录管理。 |
资源层 icons.py |
程序图标以 base64 内嵌,解决单文件 exe 找不到外部资源的问题;透明通道由 gen_icon_b64.py 在构建期用 PIL+numpy 处理好,运行时只解码缩放(启动提速关键,约省 1.2s)。 |
打包 build.py |
由 MJ 源图生成多尺寸 ICO 与版本信息;支持单文件(python build.py)与快速目录版(python build.py --onedir);不内嵌 UAC 清单、不排除任何模块(体积换 100% 兼容)。 |
设计理念:诊断与修复解耦——诊断只负责「定位病因并给出最小修复建议」,修复只负责「执行勾选项」,二者通过建议列表联动,避免「无差别全量修复」带来的不必要风险。
| 类型 | 路径 |
|---|---|
| 运行日志 | %ProgramData%\NetRepairTool\logs\ |
| 配置备份 | %ProgramData%\NetRepairTool\backups\ |
可在「运行日志」页与「备份还原」页一键打开所在文件夹;在「关于 → 数据目录」中可自定义日志与备份的存放位置(立即生效,已有文件不自动迁移)。
本项目在交互与实现上参考了以下优秀开源项目,在此致谢:
| 项目 | 可借鉴点 |
|---|---|
| AlexRabbit/Ultimate-Internet-Repair | 29 步修复链、UAC manifest、%ProgramData% 日志落盘方案 |
| scoggeshall/netsh-reset | ARP/NetBIOS 缓存清理、防火墙与 WinHTTP 代理重置、带时间戳日志 |
| JonathanAsf/internet-reset | release/renew/registerdns + nbtstat 组合流程 |
| dongsheng123132/Open365 | 「先诊断定位病因再做最小修复」的交互思路、连通性逐项亮灯 |
Q:为什么需要管理员权限? A:修复网络配置(重置 Winsock/TCP 协议栈、修改 Hosts、防火墙策略等)本质是修改系统设置,必须由管理员执行;未提权时程序仍可启动,但需提权的修复项会执行失败,界面会给出提示。
Q:修复后还是上不了网? A:多为运营商线路或路由器/光猫故障,软件层面已尽力。请尝试重启光猫与路由器,或联系宽带客服。
Q:会修改我的个人文件或上传数据吗? A:不会。所有操作仅作用于系统网络配置,且全部在本地执行;谨慎类操作执行前会自动备份,可随时还原。
Q:杀软误报怎么办?
A:单文件 exe 因内嵌 Python 运行时可能被部分杀软误报。源码完全公开,可自行 python build.py 重建校验;如确认误报,欢迎邮件反馈以便处理。
欢迎 Issue 与 Pull Request!
- Fork 本仓库并克隆到本地。
- 使用
python -m venv venv && pip install -r requirements.txt准备环境。 - 新建分支:
git checkout -b feature/your-feature。 - 保持代码风格一致,提交信息清晰。
- 发起 Pull Request,描述改动动机与验证方式。
叶神鼬-丁
- 邮箱:2943629243@qq.com
- GitHub:@cv-superding
使用中遇到问题、发现误报或有功能建议,欢迎邮件反馈。
本项目采用 GNU General Public License v3.0 授权,完整条款见 LICENSE。
Copyright (C) 2026 叶神鼬-丁
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
为什么是 GPLv3:界面组件库 QFluentWidgets 采用 GPLv3 授权,依据其传染性(copyleft)条款,本项目在对外分发时必须同样以 GPLv3 开源。若仅自己使用、不做任何分发,则不触发该义务。
| 组件 | 许可证 |
|---|---|
| PySide6 | LGPLv3 |
| PySide6-Fluent-Widgets | GPLv3 |
| PyInstaller | GPLv2 + 例外条款(打包产物不受传染) |
本软件按「原样」提供,作者不对因使用本软件造成的任何直接或间接损失负责。涉及系统级网络配置的修复存在一定风险,请在执行前确认已备份重要配置,并仅在理解相关操作后果的前提下使用。




