先确认客户端与配置格式

iPhone 使用 Clash Meta 规则,第一步不是搜索同名安装包,而是确认客户端接受哪种配置。Clash Meta 后续以 mihomo 名称发展;mihomo 是代理内核,订阅是获取配置或节点资料的入口,规则则决定请求交给哪个出站。这三者不是同一个对象。

iOS 客户端通常通过系统的 Network Extension 建立 VPN 隧道。界面出现 VPN 标记,只能说明隧道已启用,不能说明应用内运行的是 mihomo,也不能证明配置中的所有规则都受支持。桌面端可用的 YAML,不一定能在 iPhone 上原样导入。

客户端类型导入前检查规则处理方式
Stash 等支持 Clash 风格 YAML 的客户端查看当前版本支持的协议、字段及规则集格式可复用部分配置结构,mihomo 扩展字段仍需逐项确认
Shadowrocket 等使用自身配置体系的客户端选择服务商提供的对应订阅类型节点订阅与规则配置可能需要分别导入
其他 iOS 代理客户端核对开发者文档与 App Store 产品页以客户端声明的解析能力为准,不按应用名称推断

App Store 获取与 Apple ID 地区

先在 客户端下载页确认 iOS 入口,再核对 App Store 中的应用名称、开发者和购买信息。App Store 可下载范围受 Apple 账户所属商店地区影响,修改 iPhone 的界面语言或「语言与地区」设置,并不会切换应用商店地区。

查看当前商店地区

  1. 打开 iPhone「设置」,点击顶部 Apple 账户名称。
  2. 进入「媒体与购买项目」→「显示账户」,按系统提示完成认证。
  3. 查看「国家或地区」。不同 iOS 版本的文字可能略有变化,以账户页面为准。
  4. 返回 App Store,使用准确的应用名称搜索,并核对开发者,而不是只看图标。

如果搜索不到客户端,先区分商店地区不可用、系统版本不满足要求和应用已调整上架状态。不要反复更改手机地区设置,也不要把第三方网页上的安装按钮当作 App Store 页面。

切换账户前检查购买条件

  • 按 Apple 的要求处理账户余额、订阅、家庭共享与有效付款方式。更改地区可能需要先完成这些事项。
  • 使用本人管理的账户,避免把 Apple 账户密码、双重认证验证码交给代安装人员。
  • 下载属于「媒体与购买项目」的操作,不需要为了安装代理客户端退出整机 iCloud。
  • 付费应用的购买凭证与账户关联;后续更新、重新下载和恢复购买可能仍需原购买账户。

客户端费用与代理服务费用分开计算。购买应用不会自动获得可用节点,已有订阅也不代表已经购买某个客户端。下载完成后,先打开应用确认基本界面能进入,再继续导入配置。

订阅链接导入流程

先到订阅提供方的账户页面选择与客户端对应的格式。用于 mihomo 的完整 YAML、单独的节点订阅和其他客户端专用配置,可能来自不同入口。文件名相同、地址都以 HTTPS 开头,也不能证明它们的内容格式一致。

  1. 选择导出类型:使用 Clash 风格配置的客户端,先确认其接受的 YAML 类型;使用 Shadowrocket 时,优先选择服务商明确标注的对应入口。
  2. 复制完整地址:保留路径、查询参数和令牌。聊天工具换行、漏选末尾字符,都可能导致认证失败。
  3. 添加远程配置:在客户端的配置或订阅管理页,选择添加、URL 下载或远程配置入口。各应用名称不同,不要把地址粘贴进单个节点的服务器栏。
  4. 下载并选中配置:确认列表中出现配置名称和更新时间;若应用需要额外选择当前配置,导入后再执行选中操作。
  5. 检查策略组:进入策略或代理页面,确认最终出站不是空组,并选择一个有效节点。

导入失败时先看响应类型

出现 HTTP 401 或 403,优先检查令牌、账户状态及访问限制;出现 404,核对复制的路径是否完整。提示 YAML 解析错误时,检查返回内容是否其实是登录页面或错误提示页。若报不支持的协议或规则类型,应换用目标客户端的导出格式,而不是删掉报错行后直接连接。

浏览器能打开服务商主页,不代表订阅地址能正常返回配置。订阅接口可能使用独立域名,也可能发生重定向。排查时记录错误文本和发生时间即可,不要把整份含凭据的响应贴到公开讨论区。

本地 YAML 与规则依赖

已有配置文件时,可先保存在 iPhone「文件」App,再通过客户端的文件导入入口选择;支持分享导入的应用,也可以从分享菜单接收文件。确认导入的是实际配置文件,而不是网页快捷方式,或者被聊天软件改成文本附件的副本。

文件扩展名通常是 .yaml 或 .yml,但扩展名不决定兼容性。完整配置可能包含节点、策略组、规则和远程规则集;只有 rules 的片段不能提供代理节点。下面展示常见规则的顺序关系,不是可直接连接的完整配置。

# 配置片段:PROXY 必须已在 proxy-groups 中定义
rules:
  - DOMAIN-SUFFIX,example.com,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - MATCH,PROXY
  • DOMAIN-SUFFIX 按域名后缀匹配;示例域名用于说明语法,实际应替换为明确需要直连的域名。
  • 192.168.0.0/16 是一段私有地址范围,不代表覆盖所有局域网地址,也不意味着代理客户端一定接管了局域网流量。
  • no-resolve 用于避免仅为这条 IP 规则主动解析域名;它不是全局关闭 DNS。
  • MATCH 放在末尾兜底。前面的规则一旦命中,后面的规则通常不再参与该连接的选择。

迁移 mihomo 配置时的三个检查点

第一,策略名称必须对应。例如规则引用 PROXY,就要存在同名且有可用成员的策略组。第二,远程规则集不仅要能下载,其格式和行为类型也要被客户端支持。第三,GEOSITE、GEOIP 依赖相应数据和实现,不能把支持其中一种等同于两种都支持。

桌面配置中的控制端口、监听地址、TUN 路由参数不应照搬为 iOS 操作步骤。iPhone 的隧道由应用与系统协作建立,具体 DNS、UDP 和路由行为仍由该客户端实现决定。修改远程订阅前,优先使用应用提供的覆写或本地副本功能,避免下次更新覆盖手动编辑。

首次连接与 VPN 配置授权

导入配置只完成数据加载。第一次点击连接时,iOS 通常会提示应用希望添加 VPN 配置。确认发起请求的是刚安装的客户端,再点击允许,并按系统要求输入设备密码或完成认证。这里授权的是系统网络隧道,不是购买代理服务。

  1. 确认当前配置已选中,策略组中至少有一个有效出站。
  2. 选择按规则分流的运行方式;应用可能将其标为规则、配置或其他名称,以客户端说明为准。
  3. 点击连接并完成系统 VPN 授权,等待应用显示连接状态。
  4. 打开「设置」→「通用」→「VPN 与设备管理」→「VPN」,核对对应配置的连接状态。

已有其他 VPN、DNS 工具或网络过滤应用时,先停止可能占用同类隧道的连接,再单独测试。不同 Network Extension 类型能否共存取决于实现,不能假定所有网络工具可以同时开启。普通代理连接也不应靠关闭系统安全功能来解决。

验证规则、DNS 与实际出站

连接后按“节点可达 → 规则命中 → 真实请求”的顺序检查。延迟测试成功只说明测试目标在当时可达,不等于视频、游戏和所有网站都能正常访问。节点延迟、页面加载时间与带宽也是不同指标,不要把毫秒值当成下载速度。

完成一次可复现验证

  1. 看测试结果:记录选中的节点名称、测试目标和是否超时。不要在测试未完成时连续切换策略。
  2. 打开一个明确走代理的站点:在客户端连接记录中查看目标域名、命中规则及最终节点。并非所有应用都提供完整日志,以实际界面为准。
  3. 比较出口地址:使用同一个 IP 查询页面,分别记录断开与连接后的结果。该查询域名必须命中代理策略,否则结果相同也可能符合配置。
  4. 验证直连:访问一项明确配置为直连的服务,检查是否仍能使用,避免只验证代理出口而忽略本地业务。

若连接记录里出现目标域名,但解析失败,优先检查 DNS 配置与解析服务器可达性。若配置使用 fake-ip,应确认客户端支持对应机制;不要把虚拟映射地址当作网站真实服务器地址,也不要只为消除日志中的合成地址就改写整套 DNS。

测试期间尽量固定 Wi-Fi 或蜂窝网络,避免网络切换引入变量。iCloud 专用代理、浏览器已有连接和缓存也可能影响对照结果;可先关闭旧页面重新发起请求,再结合代理日志判断。某个页面成功一次,不能替代规则命中记录。

常见故障与日常更新

订阅导入成功,为什么没有可选节点?

先检查导入的是节点订阅、完整配置还是单独规则文件。若配置通过远程代理集合加载节点,还要检查该集合的下载结果与引用名称。配置文件解析成功,不代表所有外部资源已经下载完成。

VPN 显示已连接,但网页打不开,先查什么?

依次核对策略组成员、节点测试结果、DNS 错误及最终命中规则。可短暂切换到一个明确可用的节点做对照,但不要同时更改 DNS、规则和运行模式。每次只改变一个变量,保留原始配置方便恢复。

桌面端能用的订阅,为什么 iPhone 报错?

桌面 mihomo 与 iOS 客户端的协议支持、规则解析和扩展字段可能不同。先核对报错字段和客户端支持说明,再选择服务商提供的适配格式。仅把文件改名为 YAML,或把订阅地址重新粘贴一次,不能解决解析能力差异。

更新订阅后,手动规则为什么消失?

远程配置更新可能替换本地内容。把个人改动放在客户端支持的覆写、合并或独立本地配置中,并保留备份。更新后重新检查当前配置、策略组选择和远程规则集状态,不能只看更新时间发生变化。

日常维护只需保留清晰的检查顺序:从 App Store 更新客户端,按需要更新订阅,再确认节点、规则和 DNS 是否仍正常。更换客户端时重新核对格式,不把旧应用的菜单路径、监听端口或 TUN 参数直接当作新应用的默认值。