序间

WirePulse:三端 WireGuard 客户端

把节点管理、连接检测与自定义分流放进一个清晰的界面,覆盖 Windows、Android 和 Linux。

从连接到管理

WirePulse 是我围绕 WireGuard 做的一套跨平台客户端。项目把导入配置、管理节点、检查连通性和选择路由方式串成完整流程,让日常连接与后续维护都能在应用里完成。

三端已经分别发布 1.0:Windows 提供 x64 安装程序,Android 提供 APK,Linux 提供面向 Ubuntu 的 DEB。各平台有独立源码分支,发行包附带校验和、构建报告与源码版本记录。

三种路由方式

原配置模式沿用节点配置;智能路由结合域名与 IP 信息选择出口;自定义模式允许配置域名、CIDR、直连白名单以及未匹配请求的处理方式。白名单具有明确优先级,规则调整后可以重新应用并检查连接状态。

智能路由优先使用请求中的原始域名,域名未知时才使用 IP 规则补充判断。这样既能表达“这个服务走哪条路径”,也能为局域网设备保留直接访问入口。

各平台的实现

Windows 使用 C++20、Win32 和 WebView2,配合 WireGuardNT、Wintun 以及用户态网络组件;Android 使用 Kotlin、Jetpack Compose 和 VpnService;Linux 使用 GTK4、WebKitGTK、NetworkManager 与 Polkit。

连接配置和凭据也遵循各平台的存储方式:Windows 使用 DPAPI,Android 使用 Keystore 与 AES-GCM,Linux 接入 Secret Service。

这次打磨的重点

1.0 集中处理了 TCP 建连、DNS 请求合并、底层网络切换和旧隧道清理等问题。比起只显示“已连接”,我更关心连接切换后资源是否释放、请求是否真的通过、失败状态是否能解释清楚。

后续仍需要持续观察复杂网络下的表现。Linux 智能路由期间的局域网主动 SSH 与 ping 回程限制,已保留在对应版本说明中。

Windows 1.0 · Android 1.0 · Linux 1.0

项目仓库

评论

正在检查登录状态…

正在加载评论…