从连接到管理
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 回程限制,已保留在对应版本说明中。
评论
正在检查登录状态…
正在加载评论…