Shadowrocket 深度配置与进阶使用指南,从基础设置到高级优化实战

核心架构与工作原理

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 脚本类型与用途

  1. HTTP Request Script:修改请求头、URL 重定向、去广告
  2. HTTP Response Script:修改响应体、解锁区域限制、数据解密
  3. 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 快捷指令:

  1. 到达公司:自动切换至「工作模式」配置(仅代理工作相关域名)
  2. 连接 CarPlay:切换至「驾驶模式」(低延迟节点 + 仅必要应用代理)

Shadowrocket 的深度使用核心在于「规则精细化」「脚本自动化」,建议从基础分流开始,逐步引入远程规则集和脚本模块,最终构建符合个人使用习惯的「网络流量操作系统」,定期审查日志(Log)和连接统计(Analytics),是优化配置的关键依据。

注:本指南基于 Shadowrocket v2.2.x 版本特性撰写,部分功能可能随版本更新调整。

您可以还会对下面的文章感兴趣: