代理模式与运行基础设置
dns-server参数指定全局DNS解析服务器
在[General]字段中,dns-server参数用于定义Shadowrocket在进行域名解析时使用的DNS服务器地址,可填入单个或多个IP地址,多个地址以逗号分隔。该参数直接影响所有经过代理的流量解析速度和准确性,建议优先填入国内公共DNS如223.5.5.5以提升国内网站访问速度,同时可追加119.29.29.29作为冗余备份。如果用户需要抗污染效果,也可单独填入1.1.1.1等境外DNS,但需注意混用国内外DNS可能导致解析异常,因为并发查询机制会采纳最快响应的结果。
loglevel参数控制应用日志输出级别
loglevel参数用于设置Shadowrocket记录日志的详细程度,可选的级别包括info、warning、error和debug,其中info级别记录常规连接和解析信息适合日常使用,debug级别则会输出最详细的调试信息包括每次规则匹配和数据包处理细节。该参数对于排查连接故障和验证规则是否生效至关重要,当用户遇到节点连接异常或分流错误时,可将级别临时调至debug以获取完整的诊断依据,排查完毕后恢复至info避免日志过度占用存储空间。
ipv6参数开启或关闭IPv6流量处理
ipv6参数决定Shadowrocket是否处理设备的IPv6流量,设置为true时应用会接管IPv6数据包并按照配置规则进行分流或代理,设置为false则完全忽略IPv6请求。在纯IPv4网络环境下建议保持false避免不必要的解析尝试,而在支持IPv6的家庭宽带或移动网络中开启可提升访问IPv6资源的体验。如果用户发现某些网站加载缓慢且日志中出现IPv6相关错误,可尝试关闭此参数强制使用IPv4通道。
网络行为与容灾策略配置
dns-direct-fallback-proxy参数控制DNS解析失败时的备用路径
dns-direct-fallback-proxy参数设置当直连DNS解析失败时是否自动切换至代理节点进行远程DNS解析,设置为true时应用会在直连DNS全部超时后通过代理通道重新发起查询。该功能在网络环境中DNS污染或公共DNS不可达时能够显著提升解析成功率和访问稳定性,但开启后首次访问新域名可能因代理解析路径变长而增加200至800毫秒延迟。对于频繁切换网络环境的移动用户建议开启,而对于网络稳定的家庭用户可根据实际解析质量决定是否启用。
fallback-dns参数指定系统DNS回退地址
fallback-dns参数用于定义当所有自定义DNS服务器均不可用且dns-direct-fallback-proxy也失败时的最终解析通道,填入系统分配的DNS地址或运营商提供的DNS可确保在最极端网络故障下保持基本访问能力。该参数应与dns-server中的地址保持同一阵营,避免在回退场景下引入污染风险。在纯IPv6网络环境中该参数需填入具备IPv6可达性的地址,否则回退可能因协议不匹配而失效。
tfo参数启用TCP快速打开减少握手延迟
tfo(TCP Fast Open)参数设置为true时允许应用在TCP三次握手完成前就开始传输数据,减少了一次往返延迟,尤其适合高频短连接的场景如网页浏览和API请求。该功能需要代理节点和服务端同时支持才能生效,在支持的环境下可降低约一个RTT的延迟,显著改善页面首屏加载速度。但部分老旧节点可能不支持该特性,开启后如出现连接异常可关闭此参数。
性能优化与资源管理参数
udp-relay参数控制UDP流量转发通道
udp-relay参数决定是否允许UDP数据包经过代理通道,设置为true时Shadowrocket会捕获所有UDP请求并封装进代理隧道,这对于外服游戏、VoIP通话和WebRTC实时通信至关重要。如果该参数为false且用户尝试玩外服游戏,战斗数据将直接走本地网络绕开代理,导致操作延迟极高或频繁掉线。开启前需确认当前节点协议支持UDP转发,否则该参数无实际效果且可能造成UDP数据包丢失。
skiptunnel参数配置不走代理的IP地址段
skiptunnel参数允许用户指定完全绕过Shadowrocket代理处理的IP地址或CIDR段,填入的流量将直接由系统网络栈发出而不经过任何规则匹配或节点转发。该参数常用于将局域网内网IP段或特定直连服务器IP列入排除列表,避免内部网络请求被错误地送往代理节点导致访问失败。例如填入192.168.0.0/16可将所有内网流量直连,确保打印机、NAS等本地服务正常工作。
tcp-keep-alive参数调整TCP连接保活间隔
tcp-keep-alive参数设置TCP长连接的空闲保活探测间隔,以秒为单位,默认值通常为60秒,表示如果连接空闲60秒则发送保活包检测对端是否存活。适当缩短该值可更快检测到断线的代理节点并触发重连,但过于频繁的保活包会消耗额外带宽和设备电量。在网络质量不稳定的移动环境中建议保持默认或调至30秒,在固定宽带环境下可延长至120秒以减少不必要的探测流量。
解密与高级功能开关
skip-proxy参数排除特定域名的代理处理
skip-proxy参数允许用户指定完全跳过代理的域名或后缀列表,配置的域名将直接直连而不经过任何代理节点和规则判断,该参数的使用优先级高于所有配置文件规则。该参数适合将内网服务域名或已知无需代理的国内服务域名列入其中,确保即使代理开关开启这些流量也不受干扰。与skiptunnel类似,该参数作用于应用层域名而非网络层IP地址,两者可配合使用实现多层面的直连控制。
mitm参数开启HTTPS解密功能总开关
mitm参数设置为true时启用Shadowrocket的HTTPS中间人解密能力,允许应用截获并修改加密流量内容,实现URL级别的规则匹配和广告脚本注入。开启后需在配置文件的[Host]或[URL Rewrite]区域指定具体需要解密的域名列表,否则该参数不会生效。该功能会显著增加CPU负载和延迟,且可能触发银行应用的SSL Pinning保护,建议仅在调试或特定去广告需求时开启,日常浏览保持关闭。
dns-fallback-proxy参数与直连回退的区别
dns-fallback-proxy参数与dns-direct-fallback-proxy功能相似但作用范围不同,前者在全局DNS解析失败时触发回退至系统DNS,后者则在直连DNS失败时通过代理通道重新解析。两者可同时开启形成“自定义DNS→代理解析→系统DNS”的三级容灾链条,有效应对各种网络环境下的DNS故障。建议在频繁切换Wi-Fi网络的场景下同时开启,而在网络稳定且对隐私要求较高的环境中仅开启代理解析回退而关闭系统DNS回退。
规则引擎与匹配行为控制
geoip-country参数指定IP归属地数据库路径
geoip-country参数用于指定Shadowrocket加载的GEOIP数据库文件路径,该数据库用于判断目标IP地址所属国家或地区,是配置文件中GEOIP规则能够正常工作的核心依赖。默认情况下应用内置了精简版数据库,覆盖主要国家IP段,但用户可替换为社区维护的完整版数据库以提升IPv6地址段和新兴国家IP的识别精度。更新数据库后需重启Shadowrocket或重新加载配置使新数据库生效。
exclude-route参数排除指定网络接口的流量拦截
exclude-route参数允许用户指定不经过Shadowrocket代理处理的网络接口或路由表条目,填入相应的接口名称后可避免特定网络路径的流量被VPN接管。该参数极少用于日常配置,仅在设备同时连接多个网络接口(如同时使用Wi-Fi和USB网络共享)且需要特定接口流量直连时才会使用。普通用户无需调整该参数,保持默认值即可保证所有网络流量被统一处理。
advertise-ipv6参数控制IPv6地址的广告行为
advertise-ipv6参数控制Shadowrocket在代理通道中是否通告设备具备IPv6能力,设置为true时节点会向目标服务器表明客户端支持IPv6协议,可能获得IPv6格式的响应数据。该参数适用于纯IPv6节点或双栈节点环境,但在纯IPv4网络中开启可能导致解析结果出现IPv6地址而无法连接。用户应根据当前节点和网络环境的IPv6支持情况动态调整,避免因协议不匹配导致访问异常。
日志与调试辅助参数
debug参数开启超详细调试信息输出
debug参数设置为true时Shadowrocket会输出比loglevel debug更底层的系统级日志,包括socket状态、系统调用返回值和协议栈交互细节,是排查节点连接根本问题的高级工具。该参数产生的日志数据量极大,持续开启会迅速填满存储空间并显著影响设备性能,仅在开发者指导下或复现特定网络故障时临时开启,排查完毕后必须立即恢复为false。
logfile参数指定日志文件的存储位置
logfile参数用于定义Shadowrocket日志文件的保存路径和文件名,用户可自定义存储位置以便于日志文件的导出和分析。默认情况下日志存储在应用沙盒内,普通用户无需修改该参数,但对于需要将日志传输至电脑进行深入分析的高级用户,可将路径指向iCloud云盘或共享目录以简化导出流程。修改该参数后需重启应用使新路径生效。
warning-log参数单独记录警告级别日志
warning-log参数设置为true时Shadowrocket会单独生成一份仅包含warning及以上级别的日志文件,与主日志文件分离存储,便于用户快速浏览潜在问题而无需过滤大量info信息。该参数对于日常监控代理运行状态非常实用,开启后用户可定期检查警告日志文件,及时发现节点延迟波动、规则匹配异常或DNS解析失败等潜在隐患,在问题影响使用前提前处理。
常见问题FAQ
[General]字段中的参数修改后需要重启应用吗?
部分参数如dns-server和loglevel修改后立即生效无需重启,但涉及网络接口和路由行为的参数如ipv6、tfo、skiptunnel等则需要关闭再开启代理开关才能完全应用新配置。最安全的做法是修改保存配置后,切换至其他配置再切回当前配置,强制Shadowrocket重新加载所有参数,确保所有变更完整生效。
为什么修改了dns-server但解析还是用原来的DNS?
可能因为配置文件中的DNS规则区块覆盖了全局dns-server设置,局部规则优先级更高。检查配置文件中是否存在[Host]或[DNS]区域为特定域名指定了解析服务器,如有则需在该区域调整或删除相关条目。也可能是设备系统级VPN配置未完全释放,重启设备可清除残留的DNS缓存和路由表,使新配置完整生效。
loglevel设置成debug后日志文件在哪里查看?
在Shadowrocket的设置页面中找到日志查看入口,或根据logfile参数指定的路径使用文件应用访问。debug级别下日志会记录每次规则匹配和DNS解析的详细信息,文件体积增长较快,建议仅在排查具体问题时临时启用,问题定位后立即恢复至info级别以节省存储空间。
参数填错导致无法联网怎么恢复默认配置?
在Shadowrocket的配置列表中选择内置的默认配置或手动创建的备份配置切换即可恢复。如果没有备份,可在配置编辑界面逐一撤销修改的参数,或将配置文件内容清空并重新导入标准配置模板。建议在调整任何参数前先通过导出功能备份当前完整配置,便于快速回退。
