核心架构与工作原理
Shadowrocket 并非简单的代理客户端,而是基于 Rule-based Proxy Framework 的网络流量操作系统:
- TUN 虚拟网卡模式:通过创建虚拟网卡(utun)接管系统流量,实现真正的全局代理(VPN 图标显示)
- 规则引擎:基于 Domain/IPCIDR/GEOIP/USER-AGENT 等多维度的分流决策系统
- MITM 中间人能力:支持 HTTPS 解密,为脚本和重写提供基础
- DNS 层处理:内置 DNS 服务器,支持 DoH/DoT 及 DNS 分流
基础配置:从零构建可用环境
1 节点配置与协议选择
# 推荐协议优先级(基于当前网络环境) 1. Hysteria2/UDP (抗丢包、低延迟) 2. VLESS + XTLS-Vision (TLS 指纹伪装) 3. Trojan-Go (简单、易被识别为 HTTPS) 4. Shadowsocks + AEAD (兼容性好,特征明显)
关键参数调优:
- TCP Fast Open:开启以减少握手延迟
- Mux 多路复用:在移动网络下建议关闭(易触发 QoS),WiFi 环境下可开启
- UDP 转发:必须开启,否则 FaceTime、WhatsApp 等无法正常使用
2 配置文件结构解析
一个完整的 .conf 文件包含四大模块:
[General] # 基础设置:DNS、日志、延迟测试方法 bypass-system = true skip-proxy = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12 dns-server = https://dns.google/dns-query, 223.5.5.5 fallback-dns-server = system [Proxy] # 节点定义 Direct = direct Reject = reject Node1 = hysteria2, server.com, 443, password=xxx, sni=server.com [Proxy Group] # 策略组:自动选择、负载均衡、故障转移 Auto-Select = url-test, Node1, Node2, url=http://www.gstatic.com/generate_204, interval=600, tolerance=50 Global = select, Auto-Select, Direct [Rule] # 分流规则(优先级从上到下) DOMAIN-SUFFIX,apple.com,Direct GEOIP,CN,Direct FINAL,Global
进阶分流:精准流量控制
1 规则集(Rule Set)管理
避免在本地维护数千条规则,使用远程规则集:
[Rule] # 神机规则(ConnersHua)或 ACL4SSR 规则集 RULE-SET,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/LocalAreaNetwork.list,DIRECT RULE-SET,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ChinaDomain.list,DIRECT RULE-SET,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ProxyMedia.list,Global RULE-SET,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ProxyGFWlist.list,Global
2 精细化分流策略
场景 1:国内流媒体直连,国外流媒体代理
DOMAIN-KEYWORD,iqiyi,DIRECT DOMAIN-KEYWORD,youku,DIRECT DOMAIN-KEYWORD,netflix,Global DOMAIN-KEYWORD,disney,Global USER-AGENT,Argo*,Global # Netflix 特定 UA
场景 2:应用级分流(通过 Bundle ID)
# 微信、支付宝直连,Twitter、Telegram 代理 PROCESS-NAME,com.tencent.xin,DIRECT PROCESS-NAME,com.atebits.Tweetie2,Global
脚本系统(Script & Module)
Shadowrocket 支持基于 JavaScript 的脚本注入,这是其区别于普通代理工具的核心能力。
1 脚本类型与用途
- HTTP Request Script:修改请求头、URL 重定向、去广告
- HTTP Response Script:修改响应体、解锁区域限制、数据解密
- Cron Script:定时任务(如自动签到、Token 刷新)
2 实战:YouTube 去广告与画中画
// YouTube_AdBlock.js
const url = $request.url;
if (url.includes("googlevideo.com") && url.includes("ad")) {
$done({status: "HTTP/1.1 404 Not Found"});
} else {
$done({});
}
配置方式:
[Script] YouTube-AD = type=http-request,pattern=^https?:\/\/[\w-]+\.googlevideo\.com,script-path=YouTube_AdBlock.js,requires-body=0
3 Module(模块)系统
将脚本、规则、重写整合为可插拔模块:
#!name=网易云音乐解锁 #!desc=解锁灰色歌曲 [Script] NeteaseMusic = type=http-request,pattern=^https?:\/\/music\.163\.com,script-path=netease.js [MITM] hostname = music.163.com
DNS 层优化与隐私保护
1 DNS 架构设计
[General] # 分流 DNS:国内域名走阿里/腾讯,国外走 DoH dns-server = https://dns.alidns.com/dns-query, https://doh.pub/dns-query fallback-dns-server = https://dns.google/dns-query, https://cloudflare-dns.com/dns-query dns-fallback-system = false dns-direct-system = false
2 DNS 劫持与防泄漏
- IPv6 处理:若节点不支持 IPv6,建议
ipv6 = false防止泄漏 - DNS 泄漏测试:访问
dnsleaktest.com,确保显示为代理节点 IP
高级网络技巧
1 代理链(Proxy Chain)
通过中间节点跳转,实现「国内中转 -> 国外出口」:
[Proxy] HK-Relay = ss, hk-server.com, 443, encrypt-method=aes-256-gcm, password=xxx US-Exit = vmess, us-server.com, 443, username=xxx, tls=true [Proxy Group] Chain-Proxy = relay, HK-Relay, US-Exit
2 按网络环境自动切换
利用 SSID 策略组:
[Proxy Group] Cellular = select, Node1, Node2 Home-WiFi = select, Direct, Node1 Office = select, Node3 [Rule] # 通过脚本或外部控制器根据当前 WiFi 名称切换策略组
安全加固与故障排除
1 TLS 指纹与 SNI 伪装
- TLS 1.3:确保节点支持 TLS 1.3(ECH 扩展)
- SNI 填充:在 TLS Client Hello 中填充随机数据,对抗流量分析
2 常见问题诊断
问题 1:部分 App 无法连接(如银行 App)
- 原因:SSL Pinning 或代理检测
- 解决:添加
DOMAIN-KEYWORD,bank,Direct并开启「直连模式」测试
问题 2:耗电异常
- 检查:日志中是否出现大量
failed to match循环 - 优化:精简规则集,避免正则表达式过度回溯
问题 3:DNS 解析缓慢
- 启用
dns-direct-fallback允许直连 DNS 作为后备
配置备份与自动化
1 iCloud 同步与本地备份
- 配置文件默认存储于
iCloud Drive/Shadowrocket/ - 使用「配置同步」功能跨设备推送(需同一 Apple ID)
2 快捷指令自动化
创建 iOS 快捷指令:
- 到达公司:自动切换至「工作模式」配置(仅代理工作相关域名)
- 连接 CarPlay:切换至「驾驶模式」(低延迟节点 + 仅必要应用代理)
Shadowrocket 的深度使用核心在于「规则精细化」与「脚本自动化」,建议从基础分流开始,逐步引入远程规则集和脚本模块,最终构建符合个人使用习惯的「网络流量操作系统」,定期审查日志(Log)和连接统计(Analytics),是优化配置的关键依据。
注:本指南基于 Shadowrocket v2.2.x 版本特性撰写,部分功能可能随版本更新调整。