跳到主要内容

Shadowrocket 实现 iOS 链式代理:VPS 中转住宅 IP

· 阅读需 11 分钟
王小义
在北京打工的程序员,公众号「王小义笔记」,股票、黄金、演唱会门票

我这次要解决的是一个很具体的问题:iPhone 直接连住宅 IP,经常慢、断、甚至根本连不上;但如果先走一个稳定 VPS,再从 VPS 转到住宅 IP,成功率会高很多。

在 Shadowrocket 里,这个功能叫 relay。最终效果是:iPhone -> VPS 节点 -> 住宅 IP -> 目标网站,网站看到的是住宅 IP。

先说结论

如果你只是普通刷网页,不需要链式代理,直接用一个稳定节点就行。

如果你要做跨境账号环境、AI 服务访问、App Store 区域账号、社媒运营环境隔离,尤其是目标平台对机房 IP 比较敏感,那这套方案更适合:

iPhone

Shadowrocket

第一层:VPS / Reality / Trojan / VLESS

第二层:住宅 SOCKS5 或 HTTP Proxy

目标网站

我的判断是:链式代理不是为了“更快”,而是为了“出口更像真实用户”。速度会比单节点慢一点,但身份更干净。

最新信息核验

我写这篇时重新查了一遍公开页面,时间是 2026-05-25:

  • Shadowrocket 在美区 App Store 仍然是付费 App,页面标价 2.99 美元,开发者是 Shadow Launch Technology Limited
  • App Store 页面写得很明确:Shadowrocket 是规则代理工具,支持 iPhone、iPad、Mac、Apple TV,可以捕获并转发 HTTP/HTTPS/TCP 流量,也支持多级转发代理、DoH、DoT、DoQ。
  • App Store 版本记录里也提醒:Shadowrocket 本身不提供代理服务或服务器资源,用户需要自己准备配置。
  • Proxy-Seller 的住宅代理文档显示,住宅代理常见连接方式是 host + port + login + password,类型支持 HTTPS / SOCKS5,并且可以通过用户名后缀控制国家、城市、ISP、会话保持时间。

官方链接:

注意:Shadowrocket 在不同区的 App Store 可见性、价格、版本可能会变,以 App Store 实际页面为准。

我的实操环境

这里先把环境写清楚,后面你排错才有参照。

  • 设备:iPhone【待补充型号】,iOS【待补充版本】
  • 客户端:Shadowrocket,美区 Apple ID 下载
  • 第一层节点:日本 VPS,协议用 Reality / Trojan / VLESS 均可
  • 第二层节点:美国住宅 IP,协议用 SOCKS5 或 HTTP Proxy
  • 目标结果:浏览器访问 ipinfo.io,出口显示为住宅 ISP,而不是云服务器机房
  • 成本:Shadowrocket 约 2.99 美元;住宅 IP 套餐价格按服务商实时页面算【待补充实际金额】
  • 耗时:如果节点信息都准备好了,10-20 分钟能配完;第一次排错可能要 30 分钟以上

适合谁,不适合谁

适合:

  • 需要 iPhone 端稳定使用住宅 IP 的人。
  • 已经有 VPS 节点,但住宅 IP 直连容易失败的人。
  • 需要把 TikTok、X、Telegram、AI 工具、支付或注册环境做得更一致的人。
  • 能接受手动编辑 Shadowrocket 配置的人。

不适合:

  • 只想一键连接、不想看配置文件的人。
  • 对延迟特别敏感的游戏场景。
  • 不知道自己的住宅代理是否允许二次转发的人。
  • 用来批量注册、垃圾营销、撞库、欺诈、绕过平台风控做违规操作的人。这类用途不建议碰。

准备工作

你至少要准备两个节点。

节点作用推荐协议备注
第一层代理负责从 iPhone 稳定出境Reality / VLESS / Trojan / Shadowsocks / WireGuard推荐自建或长期稳定节点
第二层代理负责最终出口身份SOCKS5 / HTTP Proxy推荐住宅 IP,最好支持账号密码认证

住宅 IP 服务商通常会给你这些信息:

HOST
PORT
USERNAME
PASSWORD

如果是 Proxy-Seller 这类网关型住宅代理,可能不是固定 IP,而是类似:

host: res.proxy-seller.com
port: 10000
username: xxx_c_US_s_100_ttl_30m
password: yyy

这里的关键是用户名后缀。比如 _c_US 指定美国,_s_100 表示会话 ID,_ttl_30m 表示保持 30 分钟。不同服务商写法不一样,不要照抄,按后台文档来。

第一步:先添加 VPS 节点

打开 Shadowrocket:

首页 -> 右上角 + -> 选择协议

如果你的第一层是 Reality / VLESS,就正常填:

  • 地址
  • 端口
  • UUID / 密码
  • TLS / Reality 参数
  • SNI / Public Key / Short ID

保存以后,先单独点这个节点测试。

这一步不要急着链式。先保证 VPS 自己能通,否则后面的住宅 IP 再干净也没用。

第二步:添加住宅 IP 节点

再次点击:

首页 -> 右上角 + -> Type

常见选择:

  • Socks5
  • HTTP

按服务商给你的信息填写:

Shadowrocket 字段填什么
Address住宅代理 HOST
Port住宅代理 PORT
UserUSERNAME
PasswordPASSWORD

保存后,也可以单独测试一次。

但这里有个现实情况:很多住宅代理在国内网络下直连会失败,这不代表住宅 IP 一定坏了。它可能本来就需要先经过第一层 VPS 才能稳定连上。

第三步:创建 Relay 链式代理

Shadowrocket 的链式代理核心在配置文件里,不是在普通节点页面点几下就完事。

进入:

配置 -> 选择正在使用的配置文件 -> 编辑配置

找到:

[Proxy Group]

添加一行:

链式代理 = relay, VPS节点, 住宅IP

这里顺序非常重要。

正确顺序是:

relay, VPS节点, 住宅IP

意思是先走 VPS,再走住宅 IP。

不要写成:

relay, 住宅IP, VPS节点

这样最终出口会变成 VPS,住宅 IP 的意义就没了。

第四步:让规则走链式代理

如果你希望所有流量都走这条链,在 [Rule] 最后加:

FINAL,链式代理

如果你只想让部分域名走链式代理,可以写得更细:

DOMAIN-SUFFIX,openai.com,链式代理
DOMAIN-SUFFIX,anthropic.com,链式代理
DOMAIN-SUFFIX,x.com,链式代理
DOMAIN-SUFFIX,tiktok.com,链式代理
FINAL,DIRECT

我更建议新手先用 FINAL,链式代理 验证通路,确认成功后,再改成按域名分流。

完整配置示例

假设:

  • 第一层叫 日本VPS
  • 第二层叫 美国住宅
  • 最终策略组叫 链式代理

配置可以写成这样:

[Proxy]
日本VPS = trojan, xxx.xxx.xxx.xxx, 443, password=123456, sni=example.com
美国住宅 = socks5, res.proxy-seller.com, 10000, username, password

[Proxy Group]
链式代理 = relay, 日本VPS, 美国住宅

[Rule]
FINAL,链式代理

真实配置里,日本VPS美国住宅 这两个名字必须和你 Shadowrocket 里的节点名称完全一致。中文、空格、大小写都要对上。

第五步:打开关键设置

进入:

Shadowrocket -> 设置

我会重点看这几个地方。

1. DNS 尽量远程解析

建议打开远程 DNS,常用写法:

1.1.1.1
8.8.8.8

如果你访问的是对 DNS 很敏感的平台,DNS 和出口 IP 国家不一致,很容易触发风控。比如 IP 是美国,DNS 却是中国,这种环境很别扭。

2. IPv6 先关掉

很多住宅代理不支持 IPv6,或者只处理 IPv4。

如果你打开 IPv6,可能出现:

  • IP 检测显示两个国家
  • DNS 泄漏
  • App 里能打开,浏览器检测结果不一致
  • 某些平台一直要求验证

第一次配置时,我建议先关闭 IPv6。跑通后再按需要开启。

3. UDP Relay 按需开启

Telegram、Discord、游戏、语音类 App 对 UDP 更敏感。

如果你只是访问网页、AI 工具、后台系统,不一定要开。开了以后如果变慢,可以再关掉测试。

第六步:验证是否成功

打开 Safari,依次访问:

https://ipinfo.io
https://browserleaks.com/dns
https://ipleak.net

重点看三件事:

  1. IP 国家是不是你购买的住宅 IP 国家。
  2. ISP 是否像家庭宽带、移动运营商、住宅网络,而不是 AmazonGoogle CloudDigitalOceanVultr 这类机房。
  3. DNS 国家是否和出口 IP 大体一致。

成功结果应该接近这样:

IP:美国
ISP:Comcast / AT&T / T-Mobile / Verizon 这类住宅或移动运营商
DNS:美国或接近出口所在地

如果 IP 显示的是日本 VPS,那说明 relay 顺序写错了,或者规则没有命中链式代理。

踩坑记录

1. 节点名写错,一个空格都不行

Shadowrocket 的配置里,relay, 日本VPS, 美国住宅 用的是节点名称。

如果节点列表里实际叫 日本 VPS,中间多了一个空格,配置写 日本VPS 就匹配不上。

我建议节点名先写简单一点:

jp-vps
us-res

配置也跟着写:

链式代理 = relay, jp-vps, us-res

2. 住宅代理不允许二次代理

有些便宜住宅 IP 不支持被上游节点转发,表现是:

  • 单独测试住宅节点偶尔能通;
  • relay 后完全不能联网;
  • 网页提示 TLS 失败;
  • 速度慢到像断网。

这种不要一直改 Shadowrocket。先问服务商是否支持 SOCKS5/HTTP 上游转发,或者换一个网关型住宅代理测试。

3. DNS 泄漏比 IP 错更隐蔽

很多人只看 ipinfo.io,看到美国 IP 就觉得成功了。

但如果 DNS 检测显示中国、本地运营商,平台还是能判断环境不一致。

我的处理顺序是:

  1. 关闭 IPv6。
  2. 开远程 DNS。
  3. 换成 DoH/DoT。
  4. 重新连接 Shadowrocket。
  5. 清理目标 App 缓存或重新安装。

4. 住宅 IP 频繁变化,账号环境会漂

动态住宅 IP 不是越频繁越好。

如果你是登录账号、支付、订阅、KYC、长期运营账号,出口 IP 一会儿纽约、一会儿洛杉矶、一会儿达拉斯,反而容易出问题。

能固定会话就固定会话。比如 Proxy-Seller 文档里的 _s_100_ttl_30m 这类 session / ttl 写法,就是为了让同一段时间内尽量使用同一个出口。

5. 速度慢不一定是 VPS 问题

链式代理慢,可能有三个瓶颈:

  • iPhone 到 VPS 慢;
  • VPS 到住宅网关慢;
  • 住宅 IP 本身质量差。

排查时不要一起测。先单测 VPS,再测住宅,再测 relay。哪一段慢,问题就在那一段。

进阶:只让指定域名走住宅 IP

如果你的目标只是某几个平台,没有必要让所有流量都走住宅。

可以这样写:

[Rule]
DOMAIN-SUFFIX,openai.com,链式代理
DOMAIN-SUFFIX,chatgpt.com,链式代理
DOMAIN-SUFFIX,anthropic.com,链式代理
DOMAIN-SUFFIX,claude.ai,链式代理
DOMAIN-SUFFIX,x.com,链式代理
FINAL,DIRECT

这样普通网页直连或走其他策略,只有指定域名走住宅链路。

但 iOS 上按 App 精准分流并不总是可靠,很多 App 会调用多个域名、CDN、API。真的要做账号环境,还是建议按域名检测日志慢慢补规则。

我更推荐的组合

我现在更倾向这套:

Reality / VLESS VPS -> SOCKS5 住宅 IP

原因很简单:

  • Reality / VLESS 适合做第一层出境,中转稳定。
  • SOCKS5 住宅代理通用性好,很多服务商都支持。
  • Shadowrocket 对多级转发支持比较成熟,iPhone 端不用再额外折腾。

不太推荐:

住宅 IP -> VPS

这个顺序最终出口是 VPS,不适合需要住宅身份的场景。

也不太推荐一开始就搞三层、四层代理。层数越多,排错越麻烦,速度也越不可控。

风险和限制

这套方案解决的是网络路径和出口身份,不是万能解封器。

你还要注意:

  • 账号注册地区、手机号、支付卡、设备语言、时区要尽量一致。
  • 不要一天内频繁切国家。
  • 不要多个账号共用同一个住宅出口做高风险操作。
  • 不要买来源不明的超低价住宅 IP。
  • 不要拿这套方案做违反平台规则或当地法律的事。

尤其是支付、KYC、订阅类场景,网络只是其中一环。卡、账单地址、手机号、设备记录都会影响结果。

总结

iPhone 上做链式代理,Shadowrocket 的 relay 是最省事的方案。

核心只记住三句话:

  1. 先保证 VPS 节点单独可用。
  2. 再添加住宅 SOCKS5/HTTP 代理。
  3. relay 顺序必须是 VPS -> 住宅 IP

最后用 ipinfo.io 和 DNS 泄漏检测确认出口。只要最终 IP 是住宅运营商,DNS 没明显漂移,这条链路就算基本跑通了。

后面真正影响稳定性的,反而不是 Shadowrocket,而是住宅 IP 服务商质量、会话保持、以及你账号环境是否一致。