本文深入讲解iOS端Shadowrocket重写规则配置方法,涵盖URL重写、请求头修改、响应体替换等核心功能,提供真实场景配置示例,帮助用户实现广告拦截、Host映射、自动选择节点等进阶需求。
什么是重写规则
重写规则(Rewrite)是Shadowrocket的核心功能之一,允许用户对HTTP/HTTPS请求进行修改,与Clash的路由规则不同,重写规则工作在更底层,可以修改请求头、响应体、URL地址等参数,掌握重写规则设置,能够实现广告过滤、域名重定向、请求头自定义等高级功能。
重写规则类型详解
URL重写
URL重写可以将请求的URL地址替换为另一个地址,常用于域名映射或跳过广告页面。
^https?://ads\.example\.com/(.*) -> https://www.bing.com/$1
^http://old-domain\.com -> https://new-domain.com
请求头修改
可以添加、删除或修改请求头信息,适用于需要特定Header的接口调用。
Header-Add: User-Agent Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X)
Header-Del: X-Forwarded-For
响应体重写
修改服务器返回的响应内容,常用于去除广告或替换特定文本。
^https?://api\.example\.com/ads -> reject-200
response-body: "ad" -> ""
常见场景配置示例
广告拦截
^https?://.*\.googlesyndication\.com -> reject
^https?://.*\.doubleclick\.net -> reject
^https?://.*\.admob\.com -> reject
Host映射
某些国内服务需要通过Host绑定才能正常访问:
^http://api\.internal\.com -> http://api.internal.com
host: api.internal.com, 10.0.0.1
自动选择节点
结合Clash的代理组功能,实现按域名自动切换:
^https://netflix\.com -> proxy
^https://google\.com -> proxy
^http://baidu\.com -> direct
重写规则优先级
重写规则按从上到下的顺序匹配,一旦命中立即执行,不会继续匹配后续规则,建议将最常用的规则放在前面,通用规则放在后面,复杂的规则集建议分文件管理,便于维护和调试。
常见问题FAQ
Q1:重写规则不生效? 检查规则语法是否正确,确认规则已启用,区分URL正则表达式与普通字符串匹配,必要时使用在线正则测试工具验证。
Q2:规则冲突导致无法上网? 将可疑规则逐一禁用排查,确保保留至少一条放行规则,Clash核心的规则优先级高于重写规则。
Q3:如何导入他人分享的规则? 在Shadowrocket中添加URL订阅,或直接复制规则文本导入,注意检查规则来源可靠性,避免安全风险。
进阶技巧
- 使用正则表达式:熟练掌握正则可实现精确匹配
- 结合脚本:支持JavaScript脚本处理复杂逻辑
- 分组管理:按功能将规则分类,如广告、代理、直连
- 定期更新:维护自己的规则库,及时去除失效规则
节点选择建议
稳定的跨境访问需要优质节点支持,建议选择支持UDP转发的高端线路,延迟控制在150ms以内为佳,观看4K视频需保障20Mbps以上带宽,在线游戏则优先选择低抖动线路,定期测试节点质量,及时更换表现不佳的节点。
