先确认客户端与配置格式
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 的界面语言或「语言与地区」设置,并不会切换应用商店地区。
查看当前商店地区
- 打开 iPhone「设置」,点击顶部 Apple 账户名称。
- 进入「媒体与购买项目」→「显示账户」,按系统提示完成认证。
- 查看「国家或地区」。不同 iOS 版本的文字可能略有变化,以账户页面为准。
- 返回 App Store,使用准确的应用名称搜索,并核对开发者,而不是只看图标。
如果搜索不到客户端,先区分商店地区不可用、系统版本不满足要求和应用已调整上架状态。不要反复更改手机地区设置,也不要把第三方网页上的安装按钮当作 App Store 页面。
切换账户前检查购买条件
- 按 Apple 的要求处理账户余额、订阅、家庭共享与有效付款方式。更改地区可能需要先完成这些事项。
- 使用本人管理的账户,避免把 Apple 账户密码、双重认证验证码交给代安装人员。
- 下载属于「媒体与购买项目」的操作,不需要为了安装代理客户端退出整机 iCloud。
- 付费应用的购买凭证与账户关联;后续更新、重新下载和恢复购买可能仍需原购买账户。
客户端费用与代理服务费用分开计算。购买应用不会自动获得可用节点,已有订阅也不代表已经购买某个客户端。下载完成后,先打开应用确认基本界面能进入,再继续导入配置。
订阅链接导入流程
先到订阅提供方的账户页面选择与客户端对应的格式。用于 mihomo 的完整 YAML、单独的节点订阅和其他客户端专用配置,可能来自不同入口。文件名相同、地址都以 HTTPS 开头,也不能证明它们的内容格式一致。
- 选择导出类型:使用 Clash 风格配置的客户端,先确认其接受的 YAML 类型;使用 Shadowrocket 时,优先选择服务商明确标注的对应入口。
- 复制完整地址:保留路径、查询参数和令牌。聊天工具换行、漏选末尾字符,都可能导致认证失败。
- 添加远程配置:在客户端的配置或订阅管理页,选择添加、URL 下载或远程配置入口。各应用名称不同,不要把地址粘贴进单个节点的服务器栏。
- 下载并选中配置:确认列表中出现配置名称和更新时间;若应用需要额外选择当前配置,导入后再执行选中操作。
- 检查策略组:进入策略或代理页面,确认最终出站不是空组,并选择一个有效节点。
导入失败时先看响应类型
出现 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 配置。确认发起请求的是刚安装的客户端,再点击允许,并按系统要求输入设备密码或完成认证。这里授权的是系统网络隧道,不是购买代理服务。
- 确认当前配置已选中,策略组中至少有一个有效出站。
- 选择按规则分流的运行方式;应用可能将其标为规则、配置或其他名称,以客户端说明为准。
- 点击连接并完成系统 VPN 授权,等待应用显示连接状态。
- 打开「设置」→「通用」→「VPN 与设备管理」→「VPN」,核对对应配置的连接状态。
已有其他 VPN、DNS 工具或网络过滤应用时,先停止可能占用同类隧道的连接,再单独测试。不同 Network Extension 类型能否共存取决于实现,不能假定所有网络工具可以同时开启。普通代理连接也不应靠关闭系统安全功能来解决。
验证规则、DNS 与实际出站
连接后按“节点可达 → 规则命中 → 真实请求”的顺序检查。延迟测试成功只说明测试目标在当时可达,不等于视频、游戏和所有网站都能正常访问。节点延迟、页面加载时间与带宽也是不同指标,不要把毫秒值当成下载速度。
完成一次可复现验证
- 看测试结果:记录选中的节点名称、测试目标和是否超时。不要在测试未完成时连续切换策略。
- 打开一个明确走代理的站点:在客户端连接记录中查看目标域名、命中规则及最终节点。并非所有应用都提供完整日志,以实际界面为准。
- 比较出口地址:使用同一个 IP 查询页面,分别记录断开与连接后的结果。该查询域名必须命中代理策略,否则结果相同也可能符合配置。
- 验证直连:访问一项明确配置为直连的服务,检查是否仍能使用,避免只验证代理出口而忽略本地业务。
若连接记录里出现目标域名,但解析失败,优先检查 DNS 配置与解析服务器可达性。若配置使用 fake-ip,应确认客户端支持对应机制;不要把虚拟映射地址当作网站真实服务器地址,也不要只为消除日志中的合成地址就改写整套 DNS。
测试期间尽量固定 Wi-Fi 或蜂窝网络,避免网络切换引入变量。iCloud 专用代理、浏览器已有连接和缓存也可能影响对照结果;可先关闭旧页面重新发起请求,再结合代理日志判断。某个页面成功一次,不能替代规则命中记录。
常见故障与日常更新
订阅导入成功,为什么没有可选节点?
先检查导入的是节点订阅、完整配置还是单独规则文件。若配置通过远程代理集合加载节点,还要检查该集合的下载结果与引用名称。配置文件解析成功,不代表所有外部资源已经下载完成。
VPN 显示已连接,但网页打不开,先查什么?
依次核对策略组成员、节点测试结果、DNS 错误及最终命中规则。可短暂切换到一个明确可用的节点做对照,但不要同时更改 DNS、规则和运行模式。每次只改变一个变量,保留原始配置方便恢复。
桌面端能用的订阅,为什么 iPhone 报错?
桌面 mihomo 与 iOS 客户端的协议支持、规则解析和扩展字段可能不同。先核对报错字段和客户端支持说明,再选择服务商提供的适配格式。仅把文件改名为 YAML,或把订阅地址重新粘贴一次,不能解决解析能力差异。
更新订阅后,手动规则为什么消失?
远程配置更新可能替换本地内容。把个人改动放在客户端支持的覆写、合并或独立本地配置中,并保留备份。更新后重新检查当前配置、策略组选择和远程规则集状态,不能只看更新时间发生变化。
日常维护只需保留清晰的检查顺序:从 App Store 更新客户端,按需要更新订阅,再确认节点、规则和 DNS 是否仍正常。更换客户端时重新核对格式,不把旧应用的菜单路径、监听端口或 TUN 参数直接当作新应用的默认值。