Shadowrocket 连接后没有网络怎么处理
Shadowrocket 连上后没有网络,多数与 iOS 的 VPN 机制有关——描述文件冲突、协议不支持、DNS 配置或网络切换都可能导致。本文按发生频率给出排查顺序。
iOS 上的代理问题有自己的脾气。桌面系统上「连接成功但没网络」多半查系统代理,而 iPhone 没有系统代理这一层——Shadowrocket 通过建立本地 VPN 隧道接管流量,所以排查思路要围绕 VPN 隧道、协议兼容性和 DNS 展开。
先建立一个判断基准:打开 Shadowrocket 的节点列表,对当前节点做一次连通性测试。测试有正常延迟但没网,重点在 DNS 与分流;测试直接失败,重点在节点协议与订阅状态;连「已连接」都维持不住,重点在 VPN 配置冲突。
清理冲突的 VPN 描述文件
iOS 同一时间只允许一个 VPN 隧道生效。装过其他代理 App、企业 VPN 或某些「网络加速」工具后,设备里会留下多个 VPN 配置,互相抢占的结果就是连接看似成功、实际不通。
- 打开设置 → 通用 → VPN 与设备管理;
- 删除除 Shadowrocket 外的所有 VPN 配置(注意:卸载 App 不一定会清除其配置);
- 回到 Shadowrocket 断开并重新连接。
确认节点协议受支持
订阅里混有 Shadowrocket 当前版本不支持的协议或新参数(例如较新的传输层选项、某些 Hysteria2 参数组合)时,对应节点会出现「能选中、连不通」的状态。各协议的差异可以参考Shadowsocks、Trojan 与 VLESS 的区别。
- 在节点列表逐个测试不同协议的节点,观察是否只有某一类协议失败;
- 长期未更新 App 的用户,先在 App Store 更新 Shadowrocket 再测试;
- 只有个别节点失败而其他正常,直接切换可用节点即可,不必继续排查本机。
调整 DNS 设置
Shadowrocket 默认使用的 DNS 在部分网络下会被干扰,导致域名解析失败——表现就是隧道建着、网页转圈。
- 进入设置标签页,找到 DNS 设置项;
- 将 DNS 改为 DoH 地址(如
https://1.1.1.1/dns-query)或1.1.1.1, 8.8.8.8; - 断开重连后测试网页。
如果改完 DNS 后部分网站恢复、部分仍然异常,多半是分流规则问题,可暂时切换到全局路由模式验证:全局路由下全部正常而配置模式下部分失败,说明该修的是规则而不是 DNS。
排除订阅与节点自身的问题
以上都正常时,回头确认一下最基础的两件事。其一,订阅是否已过期——套餐到期后节点信息虽然还留在列表里,但服务端已拒绝连接,表现同样是「连接着却没网」。到服务商官网核对套餐状态,并在 Shadowrocket 里手动更新一次订阅。其二,是否只有个别节点异常——多切换几个不同地区的节点交叉测试,能明显缩小判断范围。
处理切换网络后的失效
从家里 Wi-Fi 走到户外蜂窝网络、或在两个 Wi-Fi 之间漫游后,VPN 隧道可能进入假死状态:图标还在,流量已断。这是 iOS 网络栈切换时的常见现象。
- 手动断开 Shadowrocket 再重连,通常立即恢复;
- 在设置里开启「按需连接」相关选项,让系统在网络变化后自动重建隧道;
- 若只有蜂窝数据下不可用、Wi-Fi 一直正常,属于另一类问题,请参照Wi-Fi 能用代理但移动数据不能用继续排查。
验证结果
排查过程中固定使用同一个测试目标(例如某个被墙网站的首页),每改动一项就断开重连并访问一次。恢复后建议再做两件事:更新一次订阅确保节点信息最新;对照Shadowrocket 导入订阅教程检查全局路由与分流设置是否符合预期。之后遇到相同症状,可直接从「删除冲突配置 + 重连」这两步开始,绝大多数情况到这里就能解决。
常见问题
Shadowrocket 图标显示已连接,为什么所有 App 都没网?
已连接只代表 iOS 建立了 VPN 隧道,不代表节点真正可用。先在节点列表做连通性测试,再检查是否有其他 VPN 描述文件在抢占隧道。
删除其他 VPN App 之后还是不行,需要还原网络设置吗?
先到设置 → 通用 → VPN 与设备管理里确认残留的 VPN 配置已删除,仅删除 App 不一定清除配置。还原网络设置是最后手段,会清空已保存的 Wi-Fi 密码。
家里 Wi-Fi 正常,出门用流量就没网,是节点问题吗?
通常不是。蜂窝网络下运营商分配的多为 IPv6 或 NAT 环境,与 Wi-Fi 差异很大。可参考移动数据专门的排查文章处理。