Shadowrocket脚本功能支持JavaScript自动化处理网络请求,通过自定义规则实现智能分流、广告拦截和请求修改,本文详解脚本配置流程与实战技巧,帮助用户优化国际网络加速体验。
Shadowrocket脚本功能核心原理
Shadowrocket脚本功能基于JavaScript引擎,允许用户在HTTP/HTTPS请求传输过程中插入自定义处理逻辑,与静态规则不同,脚本可动态判断域名、路径、请求体内容,实现毫秒级路由决策,该功能特别适用于需要精细控制流量走向的跨境办公场景,能够根据应用类型自动切换直连或代理通道。
三步骤完成脚本配置
-
获取脚本资源 在配置页面选择"添加脚本",支持本地导入或URL订阅,推荐选择维护活跃的脚本仓库,确保规则库及时更新,导入后检查脚本权限,仅开启必要的网络访问权限。
-
配置脚本参数 进入脚本编辑界面,设置匹配模式:
[Script] http-request ^https?:\/\/api\.example\.com script-path=local.js,tag=API修改 http-response ^https?:\/\/ads\.example\.com script-path=block.js,tag=广告拦截,requires-body=true注意区分http-request(请求阶段)与http-response(响应阶段)的执行时机。
-
启用并调试 在"全局路由"设置中将模式切换为"配置",确保脚本规则生效,使用内置日志功能排查执行错误,重点关注脚本超时与内存占用指标。
全局路由四模式深度解析
配置模式:优先执行配置文件中的规则与脚本,适用于需要精细分流策略的学术资源访问场景,该模式下Shadowrocket脚本功能发挥完整效能,支持按域名、关键词、IP段多级匹配。
代理模式:强制所有流量经过远程服务器,适合网络环境复杂或需要全局匿名的场景,此模式下本地脚本仅处理请求头信息,不执行分流逻辑。
直连模式:绕过代理直接连接目标服务器,用于测试本地网络连通性或访问区域限定服务,脚本功能在此模式下仅记录日志,不修改传输内容。
场景模式:基于地理位置或网络类型自动切换上述三种模式,适合移动办公用户,可配合脚本实现Wi-Fi环境下自动切换直连,蜂窝网络启用代理的智能策略。
典型应用场景与代码示例
广告拦截脚本示例:
# 拦截跟踪请求
^https?:\/\/track\.example\.com\/collect url reject
# 修改请求头
^https?:\/\/api\.service\.com script-path=header.js
跨境办公自动化配置:
[Rule]
DOMAIN-SUFFIX,corp-internal.com,DIRECT
DOMAIN-KEYWORD,google,PROXY
SCRIPT,^https?:\/\/api\.work\.com,auto-switch.js
常见问题排查
现象:脚本规则不生效,流量仍按默认规则传输
原因:全局路由未设置为"配置"模式,或脚本匹配正则表达式错误
解决方法:检查设置→全局路由→配置选项;使用在线正则工具验证匹配规则;确认脚本文件编码为UTF-8无BOM格式
现象:启用脚本后应用闪退或加载缓慢
原因:脚本内存泄漏或执行超时,部分复杂脚本在低端设备上资源占用过高
解决方法:简化脚本逻辑,移除不必要的循环操作;在脚本配置中添加timeout=60参数;关闭requires-body选项测试是否为响应体解析导致崩溃
现象:特定网站证书错误提示
原因:脚本修改HTTPS请求导致证书校验失败,或MITM配置未覆盖该域名
解决方法:在配置→证书→生成新证书;将目标域名添加至MITM的hostname列表;检查脚本是否意外修改了SSL握手参数
性能优化与节点选择
Shadowrocket脚本功能对设备性能有一定要求,建议在A12及以上芯片设备运行复杂脚本,对于4K流媒体或实时会议场景,选择具备BGP专线的服务商可降低脚本处理带来的延迟增量。
优质节点应具备:低丢包率(<1%)、稳定TCP连接、支持TLS1.3,脚本处理会增加约5-15ms本地计算延迟,因此节点选择时建议预留20ms性能余量,如需测试脚本对速度的影响,可临时切换至"代理"模式对比基准数据。
通过合理配置Shadowrocket脚本功能,用户可构建高度个性化的国际网络加速方案,在保障隐私安全的同时提升跨境办公效率。