WinRoute Lite 是一个面向 Windows 的轻量透明 TCP 路由工具。它用 WinDivert 接管命中规则的 TCP 连接,再按目标主机和端口转发到 SOCKS5、SOCKS4 或 HTTP 上游代理。
这个项目的重点不是做一个复杂的通用代理客户端,而是解决一类很具体的运维场景:
- 一个
frps服务端暴露很多个frpc出口。 - 每个
frpc对应一个不同端口、账号或协议的代理服务。 - 本机浏览器、SSH、FinalShell 等程序不想逐个配置代理。
- 希望把“服务器地址”和“每个出口服务”拆开管理,便于对比、启停和规则分流。
- WinDivert 透明接管,命中规则的 TCP 程序无需单独配置代理。
- 一个服务器下可配置多个代理服务,适合
frps+ 多frpc出口场景。 - 上游支持 SOCKS5、SOCKS4、HTTP CONNECT。
- 规则按目标主机和目标端口匹配,动作支持代理转发、直连、阻止。
- 服务器总开关控制整组代理服务;单个代理可启用或禁用。
- 未命中的流量不接管,继续走系统原本网络路径。
- 不修改 Windows 系统代理设置,不覆盖其他代理客户端的系统代理配置。
- 托盘后台运行,可从托盘打开窗口、启停服务器组、退出程序。
假设你有一台 frps:
127.0.0.10
它后面连接了很多 frpc,每个 frpc 在 frps 上暴露一个代理端口:
127.0.0.10:7001 -> frpc-a SOCKS5
127.0.0.10:7002 -> frpc-b SOCKS5
127.0.0.10:7003 -> frpc-c HTTP
在 WinRoute Lite 中只需要创建一个服务器 127.0.0.10,然后把 7001、7002、7003 分别建成代理服务。每个代理服务可以配置自己的协议、账号密码和路由规则。
例如:
目标主机: 10.0.*
目标端口: 22,80,443
动作: 代理转发
这样 FinalShell、SSH、浏览器访问命中规则的目标时会自动走指定出口;其他网站不命中规则,仍然按系统原路访问。
WinDivert 需要管理员权限。开发模式下可以直接运行:
npm install
npm start如果没有管理员权限,程序会尝试弹出 UAC 重新启动。
npm run dist打包产物在 release/ 目录。安装包和便携版都会请求管理员权限。
主机规则支持:
10.0.*
192.0.2.10
127.0.0.1
端口规则支持:
22
80,443
8000-9000
建议优先使用 IP 或 IP 段规则。WinDivert 只能在内核层精确识别 IP/端口;域名规则需要依赖 HTTP Host 或 TLS SNI,部分非 HTTP/TLS 协议无法可靠识别域名。
assets/windivert/ WinDivert 运行文件和原始许可说明
renderer/ Electron 渲染层界面
resources/screenshot/ README 截图资源
scripts/ WinDivert PowerShell/C# helper
src/ 规则、存储、透明接管和上游连接逻辑
main.js Electron 主进程
preload.js Renderer IPC bridge
WinRoute Lite 使用自有名称、界面和实现,不包含任何商业代理软件的图标、驱动、二进制文件或配置文件。项目底层透明接管使用官方 WinDivert 2.2.2,相关文件保留在 assets/windivert/,并随附原始 LICENSE、README、VERSION。
项目源码以 MIT License 发布。第三方依赖和 WinDivert 的许可见 THIRD_PARTY_NOTICES.md。
