Shadowrocket 怎么开启 TUN 模式?
简答:如果你在 iPhone 或 iPad 的 Shadowrocket 里找不到“TUN 模式”按钮,先打开“设置 > 代理 > 代理类型”,把 HTTP 改为 None;然后回到首页开启连接,并在系统弹窗中允许添加 VPN 配置。这里的 None 通常对应 TUN 接管方式,但不同版本的菜单名称可能变化,需以当前界面为准。若开启后断网,先切回 HTTP、关闭连接,再检查节点、配置和 VPN 授权。
定义:Shadowrocket 的 TUN 模式,是通过系统 VPN/网络扩展接管设备网络请求的方式;公开使用手册将“设置 > 代理 > 代理类型 > None”描述为 TUN 模式,但具体界面以当前版本为准。
先做这一步:Shadowrocket TUN 模式设置速查
本文是第三方使用指南,只讲 iPhone 和 iPad 上的 Shadowrocket 设置,不涉及 Windows 或 Android 客户端。Shadowrocket 在 App Store 的产品说明中定位为 iPhone/iPad 的规则代理工具,并说明可以捕获设备中应用产生的 HTTP、HTTPS 和 TCP 流量;它本身不提供代理服务器或节点配置,配置需要由用户自行准备。查看 App Store 产品说明
| 项目 | 建议操作 | 结果或含义 |
|---|---|---|
| 代理类型 | 设置 > 代理 > 代理类型 > None | 公开使用手册将 None 描述为 TUN 模式;菜单若不同,以当前版本为准 |
| 首页连接 | 回到首页,选择有效节点后打开连接开关 | 首次连接可能出现添加 VPN 配置的系统授权弹窗 |
| 全局路由 | 按需选择 Config、Proxy 或 Direct | 它决定流量如何匹配规则,不等于代理类型 |
| 验证方式 | 观察系统 VPN 标识、连接日志和实际应用访问结果 | 三项都正常,才说明连接链路基本生效 |
最快路径:打开 Shadowrocket → 设置 → 代理 → 代理类型 → None → 返回首页 → 选择节点 → 打开连接 → 允许添加 VPN 配置。
Shadowrocket 怎么开启 TUN 模式:按界面完成设置
- 确认已经有可用配置。
打开 Shadowrocket 首页,确认节点或配置已经导入,并选择一个可用节点。若首页没有节点,先处理订阅或配置导入问题;Shadowrocket 的 App Store 说明明确表示它是独立网络工具,不包含代理服务或服务器资源。
- 进入代理类型设置。
依次打开“设置”→“代理”→“代理类型”。如果当前界面显示 HTTP、None 或其他类似选项,优先选择 None。公开使用手册把“None”解释为 TUN 模式,并说明全部网络请求会通过 TUN 接口处理;这属于第三方手册的界面记录,当前版本如有差异,应以实际界面为准。查看 Shadowrocket 使用手册中的代理类型说明
- 回到首页开启连接。
返回首页,确认已经选择节点或策略组,然后打开连接开关。第一次使用系统级 VPN 能力时,iOS 可能弹出允许添加 VPN 配置的确认框。选择允许,并按设备要求完成验证。
Apple 的 Network Extension 文档说明,应用可以使用网络扩展创建和管理 VPN 配置;Apple 的 Personal VPN 文档也说明,应用首次保存 VPN 配置时需要用户明确授权。查看 Apple Network Extension 文档 查看 Apple Personal VPN 文档
- 确认系统授权状态。
如果没有弹窗,打开 iOS“设置”中的 VPN 相关页面,查看是否已经出现 Shadowrocket 的 VPN 配置。不要把“设备管理”里的普通描述文件和 Shadowrocket 的 VPN 授权混为一谈;Apple 对配置文件的管理入口位于“设置 > 通用 > VPN 与设备管理”,具体显示内容取决于设备上已安装的配置。查看 Apple 关于 iPhone 配置文件的说明
- 确认全局路由没有误选 Direct。
首页的全局路由通常用于决定流量是按配置文件规则、全部代理还是全部直连。选择 Direct 时,即使代理类型是 None,也可能表现为目标流量直连。因此排查时可先使用 Config 或 Proxy 做对照,再根据实际需求恢复规则模式。
- 用三个信号验证是否生效。
- 状态栏或系统控制中心出现 VPN 连接标识;
- Shadowrocket 的连接日志出现目标应用或域名请求,而不是完全没有记录;
- 用同一个应用分别在连接关闭和连接开启时测试,比较访问结果、出口地址或日志中的策略命中情况。
如果只有 VPN 图标,没有请求日志或应用仍完全无法访问,不能仅凭图标判断 TUN 已经正常工作,还要继续检查节点、规则和 DNS。
None、HTTP 和全局路由不是一回事
很多人把“代理类型”和“全局路由”混在一起,导致已经选择 None,却仍然发现部分应用不走代理或全部直连。可以按下面的关系理解:
| 设置 | 主要作用 | 常见误解 | 排查建议 |
|---|---|---|---|
| 代理类型:None | 使用 TUN 接口接管网络请求 | 认为它等同于“所有流量都代理” | 还要检查全局路由和配置规则 |
| 代理类型:HTTP | 优先使用系统代理接口,部分不支持的连接可能由 TUN 处理 | 认为所有 App 都会自动经过系统代理 | 遇到不支持系统代理的 App,可与 None 做对照测试 |
| 全局路由:Config | 按当前配置文件中的规则决定策略 | 认为 Config 就是 TUN 模式 | 查看规则命中的是 PROXY、DIRECT 还是 REJECT |
| 全局路由:Proxy | 倾向于让流量全部使用代理策略 | 认为它会改变代理类型 | 它不能替代代理类型设置 |
| 全局路由:Direct | 让流量直连 | 认为 VPN 图标出现就一定会代理 | 排查时先确认没有误选 Direct |
因此,较稳妥的判断顺序是:先确认“代理类型”是否为 None,再确认首页连接已开启,最后检查全局路由和规则命中。公开资料也将 None 与配置参数 compatibility-mode=3对应,但配置文件参数属于高级用法,不建议在没有备份的情况下直接覆盖远程配置。
开启 TUN 后断网、自动断开或部分 App 不通怎么办?
- 开启后完全断网:先回到 Shadowrocket 首页关闭连接,等待网络恢复,再把“代理类型”从 None 临时切回 HTTP。若 HTTP 能恢复而 None 不能,优先检查当前配置是否包含不兼容的 DNS、路由或规则设置;不要连续修改多个参数,否则难以判断是哪一项引起问题。
- VPN 自动断开:先确认节点本身可以连接,再查看 Shadowrocket 日志是否在断开前出现连接失败、DNS 失败或配置解析错误。随后切换到另一个已知可用节点复测。如果多个节点都断开,重启 Shadowrocket 和 iPhone/iPad 后重新授权 VPN;如果只有单个节点断开,问题更可能在该节点或配置,不能据此判断 TUN 功能失效。
- 某个 App 仍提示关闭代理:确认全局路由不是 Direct,并先用 None 与 HTTP 互相切换进行对照。第三方使用手册提到,某些检测代理的 App 在切换到 None 后可能改善兼容性,但如果 App 直接检测系统 VPN 状态,单纯切换代理类型未必有效。此类场景不要随意关闭系统安全检查或导入来源不明的配置。
- 国内应用变慢或局域网设备不可访问:先切回 Config,检查规则是否把本地网段或常用域名送入代理;再暂时关闭 TUN,确认问题是否只在 TUN 开启时出现。修改规则前先导出或复制当前配置,保留原配置作为撤销方案。
- 只有部分域名打不开:查看连接日志,判断是 DNS 查询失败、规则命中 REJECT、策略组无可用节点,还是节点连接超时。可以先换一个节点或临时使用更简单的配置验证,不要直接把所有规则删除。
撤销方法:回到“设置 > 代理 > 代理类型”,改回原来的选项;首页关闭连接;如仍无法联网,在 iOS 的 VPN 设置中移除对应配置后重新授权。移除前应确认自己仍保存了订阅或节点信息,避免误删后无法恢复。
开启后的验证清单:怎样判断 TUN 真的在工作?
建议按“系统状态—应用请求—规则结果”三层验证,而不是只看一个 VPN 图标。
- 系统状态:开启连接后,系统显示 VPN 已连接;关闭连接后,VPN 标识消失。
- 应用请求:打开一个此前不支持系统代理或没有单独代理设置的应用,观察 Shadowrocket 是否出现对应请求记录。
- 规则结果:查看目标域名最终命中的策略,确认不是 DIRECT、REJECT 或空策略组。
- 网络对照:关闭连接测试一次,开启 None 测试一次;如果两次结果完全相同,应检查全局路由、规则、DNS 和节点,而不是继续重复点击连接开关。
- 恢复测试:测试结束后关闭连接,确认普通 Wi-Fi 或蜂窝数据可以正常访问,避免把临时网络故障误判成配置成功。
Apple 的网络扩展文档将 VPN 描述为由客户端建立隧道并转发设备网络流量的机制,因此验证时应同时检查授权、隧道状态和实际请求,而不是只验证应用界面显示。查看 Apple 关于网络扩展代理提供程序的说明
常见问题
Shadowrocket 里没有看到 TUN 模式,应该在哪里开启?
先打开“设置 > 代理 > 代理类型”,查看是否有 None。公开使用手册把 None 描述为 TUN 模式,但不同版本可能更改菜单名称或显示方式,因此以当前版本界面为准。
Shadowrocket 选择 None 后,还需要打开全局路由里的 Proxy 吗?
不一定。None 负责选择 TUN 接管方式,Config、Proxy、Direct 等全局路由负责决定流量如何匹配策略。一般先用 Config 或 Proxy 做验证,确认规则命中后再按实际需求调整。
Shadowrocket 开启 TUN 后完全断网怎么办?
先关闭首页连接,确认网络恢复后把代理类型临时切回 HTTP;然后检查节点是否可用、配置是否有 DNS 或路由错误、全局路由是否误选 Direct。一次只改一个设置,并保留原配置,便于撤销。
开启 TUN 后某些 App 仍提示关闭代理,怎么办?
先确认连接日志中有该 App 的请求,并检查规则是否命中 DIRECT 或 REJECT。可以将 HTTP 与 None 分别测试;如果 App 检测的是系统 VPN 状态,切换代理类型不一定能解决,需以该 App 的兼容性要求为准。
Shadowrocket 的 TUN 模式会不会自动提供节点或代理服务?
不会。App Store 产品说明把 Shadowrocket定位为独立网络工具,并明确表示它不包含代理服务或服务器资源。你仍需要自行准备合法、可信的节点或配置。