Skip to content

Latest commit

 

History

History
18 lines (11 loc) · 848 Bytes

File metadata and controls

18 lines (11 loc) · 848 Bytes

VPN 客户端开发

VPN 客户端至少包含展示层、账号会话、配置服务、隧道适配器和本地安全存储五个部分。

平台适配

  • Android:将隧道运行在系统 VPN Service 边界内,处理前后台限制。
  • iOS/macOS:使用 Network Extension,并按 Apple 权限和签名要求配置。
  • Windows:将 UI 与具有最小权限的隧道服务分离。
  • macOS:处理 Network Extension、系统扩展和签名公证。

连接状态机

客户端不应只保存“已连接/未连接”。建议区分:

idle → preparing → authenticating → connecting → connected → reconnecting → disconnecting → failed

每次状态变化都应有明确触发原因和超时策略。错误信息要能帮助用户处理网络、权限和订阅问题,但不要泄露密钥或内部节点凭据。