跳转到内容

iOS 应用

rVPN iOS 应用与你的服务器建立全隧道 VPN 连接。所有设备流量都通过加密隧道路由。

  • iOS 16.0 或更高版本
  • 一台已部署的 rVPN 服务器
  • 你的服务器地址,以及来自其他设备的 .rvpn 配置文件导出或来自服务器管理员的预共享密钥包

App Store 安装 rVPN。

应用围绕配置文件组织——每个配置文件包含服务器地址、身份密钥、预共享密钥包以及分流规则。你最多可拥有 10 个配置文件,并从主屏幕在它们之间切换。

打开应用。在主屏幕上,点击配置文件卡片(“No Profile Selected”)打开配置文件切换器,或前往设置选项卡 → 管理配置文件

你有两个选择:

如果有人向你分享了 .rvpn 文件(来自其他设备导出或由管理员提供),请从主屏幕卡片打开配置文件切换器,并点击底部的导入图标。选择文件。配置文件会以已填入所有密钥的形式进入你的列表。

点击 Add New Profile。在配置文件编辑器中填写:

  • Name — 任意名称(例如 “Home HK”)
  • Colour — 用于快速识别配置文件的色块
  • Server Addresswss://your-server.com/api/v1/ws/tun
  • Identity Key — 点击 Generate 创建新的 X3DH 身份,或 Import 加载已有密钥文件
  • Prekey Bundle — 点击 Import Prekey Bundle 并选择服务器管理员提供的 JSON 文件

Identity Key 和 Prekey Bundle 行在填入后会显示绿色对勾。点击右上角的 Save

回到主屏幕,点击大的 Connect 按钮。首次连接时 iOS 会提示你允许 VPN 配置——请批准以继续。应用会:

  1. 通过 TLS 1.3 WebSocket 连接到你的服务器
  2. 建立前向保密加密(X3DH + Double Ratchet)
  3. 从服务器接收隧道 IP 地址
  4. 将所有流量路由通过 VPN

连接后,主屏幕会显示分配到的 IP、会话运行时长以及实时的发送/接收字节数。再次点击按钮即可断开。

在主屏幕上,点击活动配置文件卡片以打开配置文件切换器。点击另一个配置文件将其激活。如果隧道已启用,应用会断开、切换并使用新配置文件重新连接。

要将某个配置文件转交给另一台设备 —— 你的 iPad、朋友的手机、另一台 Mac —— 可以将其导出为 .rvpn 文件,然后通过你喜欢的方式(AirDrop、信息、文件)分享。

从主屏幕卡片打开配置文件切换器,在需要分享的配置文件上向左滑动,点击 导出。iOS 会询问是否包含身份密钥:

  • 不包含身份密钥 —— 更安全。接收方可以查看该配置文件,并使用自己的密钥材料连接(他们需要来自同一服务器管理员的预共享密钥包)。跨用户或分享到不完全可信的场合时请选此项。
  • 包含身份密钥 —— 接收方可以直接在另一台设备上原样连接。仅在另一台设备是你自己的、或你完全信任接收方时选择此项。导出的文件会包含你的私钥。

随后 iOS 显示分享面板 —— AirDrop、文件、信息,任选。文件以 .rvpn 扩展名生成。

一旦你至少成功连接过一次,导出的文件还会携带服务器已固定的身份(ik:1: 指纹)。这意味着接收方的客户端在服务器出示不同密钥时会拒绝连接,无需另行带外核验 —— 发送方通过转交文件为服务器做了背书。完整模型请参考 服务器身份固定

只将国际流量路由通过 VPN,本地流量直连。

打开活动配置文件的编辑器(设置 → 管理配置文件 → 点击你的配置文件)。在 Traffic 下:

  • Split Tunnel — 打开
  • Bypass Countries — 逗号分隔的国家代码,其 CIDR 范围将绕过隧道(默认为 CN
  • Bypass Domains — 额外的直连域名
  • Tunnel Domains — 即便启用分流也强制通过隧道的域名

保存。下次连接将使用新规则。

默认情况下,DNS 通过隧道解析。如需使用自定义上游解析器,请编辑配置文件 → NetworkDNS Servers 并输入以逗号分隔的列表(例如 1.1.1.1, 8.8.8.8)。

首次使用即信任 (TOFU) 默认在每个配置文件中启用,会在首次成功连接时接受并固定服务器的身份。固定值以规范的 ik:1:<base32> 形式写入,并存放在配置文件本身。

若服务器日后使用了不同的密钥,应用会弹出 Server identity changed 对话框,同时显示已固定和当次收到的两个固定值,并提供三个选项:取消删除配置文件信任新身份。若运营方通过带签名的轮换仪式更换密钥,应用会静默更新固定值 —— 不会弹出对话框。

如需更严格的验证,可在首次连接前,将运营方提供的固定值(ik:1: 形式)粘贴到配置文件的 Server Fingerprint 字段中。

若配置文件在你点击 Connect 时缺少身份密钥或预共享密钥包,应用现在会在启动隧道之前弹出明确的提示(“配置文件 “X” 需要身份密钥和预共享密钥包。请编辑配置文件并生成身份 / 导入预共享密钥包。”)—— 不再出现无声无息、原地打转的”连接中…”。

完整模型 —— 固定值格式、轮换仪式、威胁模型 —— 请参考 服务器身份固定

  • 确认服务器地址正确且以 wss:// 开头
  • 确认 Identity Key 行显示绿色对勾
  • 确认 Prekey Bundle 行显示绿色对勾
  • 确认服务器 443 端口可达

服务器的 IP 池已耗尽。请联系服务器管理员在 rvpn.toml 中扩大 DHCP 范围。

  • 确认配置文件编辑器中已启用分流
  • 确认绕过国家代码(例如 CN,而非 China
  • 切换飞行模式以刷新路由表
  • 尝试不同的 DNS 服务器
  • 检查服务器负载
  • 确认分流未把太多流量走直连

如需更多故障排查帮助,请参见 故障排查指南