
理解日志中与分流相关的关键信息
日志记录规则匹配过程的完整链路
Shadowrocket的日志功能会详细记录每个网络请求从发出到完成的全过程,其中最关键的是规则匹配环节的决策记录。当日志级别设置为“调试”或“详细”后,每个请求都会依次经过规则列表的逐条匹配,日志会清晰记录请求命中了哪条规则、规则类型是什么、以及最终采取了何种处理策略。通过阅读这些匹配记录,用户能准确判断当前的分流配置是否按照预期生效,找出未被正确匹配或匹配错误的规则条目,为规则优化提供精准的依据。
分流决策在日志中的标识性关键词
在日志输出中,与分流决策相关的记录通常包含明确的关键词标识,例如“matching rule”表示正在尝试匹配规则,“hit”表示命中某条具体规则,“proxy”表示该请求被判定为走代理,“direct”表示直连发出,“reject”表示被主动拒绝。用户可通过搜索这些关键词快速定位分流决策的记录,省去逐行浏览大量无关日志的时间。同时,日志中还会显示该请求的目标域名或IP地址,便于对照规则列表中的预期匹配对象。
规则匹配的先后顺序对日志的影响
日志中规则匹配记录的显示顺序严格遵循配置文件中规则列表的书写顺序。当一个请求经过规则列表时,日志会按从上到下的顺序依次记录每条规则的匹配尝试,直到命中第一条符合条件的规则为止。若用户发现请求命中的规则与预期不符,可通过日志中记录的匹配顺序判断是前方有更宽泛的规则提前拦截,还是目标规则的匹配条件书写有误。理解匹配顺序在日志中的呈现方式,是精准调试分流配置的基础能力。
开启详细日志并观察分流记录
设置日志级别至调试模式
开启分流验证前,用户需进入Shadowrocket的设置页面,找到“日志”选项并将日志级别切换至“调试”或“详细”模式,确保记录中包含完整的规则匹配信息。默认的“错误”或“警告”级别仅记录异常事件,不会输出分流决策的详细过程。若界面中无明确的日志级别选项,可直接开启“详细日志”开关,应用会自动输出包含规则匹配信息的完整记录。设置完成后,在设备上访问需要验证的网站或打开需要测试的应用,然后返回日志页面查看输出。
复现访问场景并获取对应日志
为了验证特定域名的分流结果,用户应在开启调试日志后重新访问该域名,确保日志中刚好记录了该请求的匹配过程。若日志已累积较多历史记录,可先清空日志缓存再发起测试请求,使新生成的日志仅包含当前验证操作的信息,便于快速定位。访问完成后立即返回日志页面,按时间顺序在最新记录中查找与目标域名相关的条目,观察规则匹配的完整链路。
筛选特定域名的分流记录
当日志内容较多时,用户可利用Shadowrocket内置的日志搜索功能或手动滚动查找,聚焦于目标域名的匹配记录。在日志中搜索域名关键词,可快速跳转至该请求的匹配记录位置,从“matching rule”开始逐条查看命中了哪些规则以及最终采取的处理策略。若域名在日志中多次出现,注意区分DNS解析记录与实际连接记录,确认找到的是规则匹配环节而非其他阶段的日志输出。
解读日志中的规则匹配条目
理解命中规则的完整输出格式
一条完整的规则命中记录通常包含请求目标、规则类型、规则内容和最终策略四个要素。例如“example.com:443 – DOMAIN-SUFFIX,example.com,PROXY, matched”表示该请求的目标域名为example.com,规则类型为域名后缀匹配,匹配内容为example.com,最终策略为PROXY。用户需逐条阅读这些记录,确认每个请求都命中了期望的规则类型和策略。若日志中显示“FINAL,PROXY”或“FALLBACK,DIRECT”等全局兜底规则被触发,说明该请求未被任何精细化规则匹配,落入了全局默认策略。
区分DNS解析记录与规则匹配记录
日志中可能同时包含DNS解析记录和规则匹配记录,两者需区分看待。DNS解析记录通常显示为“resolve example.com to xxx.xxx.xxx.xxx”,仅说明域名解析已完成,不代表分流决策。规则匹配记录则明确包含“matching”或“hit”等关键词,并直接展示匹配到的规则内容和最终策略。用户应聚焦于后者来验证分流配置的正确性,避免将DNS解析信息误认为分流结果。
识别规则误匹配与策略偏差
若日志显示请求命中了错误的规则或采取了与预期不符的策略,用户可据此快速定位问题所在。常见情况包括:某请求被更宽泛的前置规则提前匹配导致精细化规则未生效,此时需调整规则顺序;某域名的匹配条件不完整导致未命中预期的规则,需补充或修正匹配表达式;某条规则被误写为REJECT导致正常请求被拒绝,需修改策略类型。日志中明确指出的匹配结果就是排查这些问题的直接证据。
通过日志验证不同规则类型的生效情况
域名类规则的日志验证方法
对于DOMAIN和DOMAIN-SUFFIX类型的规则,验证方式最为直观:在日志中搜索该域名,观察其命中的规则条目。若命中规则显示为DOMAIN-SUFFIX,目标域名,PROXY或DOMAIN,完整域名,PROXY,说明该域名已成功匹配并按照预期策略处理。若日志显示该请求最终命中了GEOIP,CN,DIRECT或FINAL,DIRECT等兜底规则,则说明精细化域名规则未被匹配,需检查规则列表中是否存在书写错误或顺序问题。
IP段类规则的日志验证方法
对于IP-CIDR类型的规则,日志中会显示请求的目标IP地址以及与之匹配的IP段。用户需先确认该请求的DNS解析返回了正确的IP地址,然后查看该IP是否命中了预设的IP段规则。若日志显示“IP-CIDR,xxx.xxx.xxx.xxx/24,PROXY”表明命中成功,若显示为其他规则的匹配信息,则需确认该IP段是否已正确加入规则列表,或是否存在更具体的前置规则影响匹配顺序。
GEOIP规则的日志验证方法
GEOIP规则依赖IP地址的地理位置数据库判断归属地,日志中会显示该请求的目标IP被识别为哪个国家或地区。例如“GEOIP,US,PROXY”表示该IP被判定为美国并走代理,“GEOIP,CN,DIRECT”表示判定为中国并直连。若用户发现某请求的地理位置判断与预期不符(如国内网站被误判为海外),则需检查GeoIP数据库是否为最新版本,或考虑使用域名规则替代GEOIP规则以获得更精准的控制。
常见分流问题的日志特征与解决方向
流量全部走代理或全部直连的日志表现
当所有请求的日志都显示匹配到同一条规则(如FINAL,PROXY或FINAL,DIRECT),说明精细化规则均未被命中,所有流量都落入了全局兜底策略。此时用户应检查规则列表中的精细化规则是否放置在兜底规则之前,以及匹配条件的书写是否准确。若日志中显示的命中规则为GEOIP,CN,DIRECT且请求的是海外网站,则说明该网站在GeoIP数据库中被误判为中国IP,需将其域名单独添加规则并置于GEOIP规则前方。
特定域名未被任何规则匹配的日志表现
当某个域名的请求在日志中显示“no rule matched, using default policy”或类似字样,说明该域名未命中规则列表中的任何条目,直接使用了全局默认策略。此时用户需在规则列表中为该域名补充精确的匹配规则,或将DOMAIN-SUFFIX等匹配表达式修正为能正确覆盖该域名的形式。日志中明确列出“no rule matched”是规则遗漏的最直接信号。
规则顺序不合理导致匹配异常的日志表现
若日志显示某个请求虽然命中了目标规则,但该规则的策略类型与预期不符,或命中了预期之外的规则条目,则通常由规则顺序问题引起。用户应在日志中记录该请求命中的第一个规则(按从上到下的匹配顺序),检查该规则是否过于宽泛并提前拦截了流量。调整规则列表将该请求对应的精细化规则上移,使日志中显示的命中规则变为用户期望的那一条。
日志验证后的规则优化与配置调整
根据日志反馈补充遗漏的规则条目
通过日志发现未被精细化规则匹配的域名后,用户应将这些域名按照访问频次和重要性补充进规则列表。对于经常访问的核心服务域名,应使用DOMAIN-SUFFIX添加持久规则;对于临时性访问的域名,可先使用临时的DOMAIN规则验证效果后再决定是否保留。每次添加规则后重新加载配置并再次查看日志,确认新规则已被成功命中,形成“添加-验证-调整”的闭环优化流程。
调整规则顺序确保精细化规则优先匹配
日志中显示的匹配顺序是判断规则排序是否合理的直接依据。若用户发现某精细化规则虽存在于列表中但从未在日志中出现匹配记录,则说明其前方的宽泛规则已将请求拦截,该精细化规则形同虚设。此时应将精细规则移动至宽泛规则之前,重新加载后再次查看日志,确认该请求现在命中的是期望的规则条目。日志提供的命中顺序反馈是调整规则排序最可靠的数据支撑。
使用日志确认策略组的实际出口选择
当规则指向策略组而非直接指定节点时,日志中除了显示匹配的规则条目外,还会记录策略组最终选择了哪个具体节点。用户可看到“Proxy Group xxx selected node yyy”的后续记录,明确该请求的实际出口。若策略组选择的结果与预期不符,则需检查策略组内部的测速结果、节点列表或手动选择状态,确保策略组配置与使用意图一致。
常见问题FAQ
开启日志后看不到任何规则匹配记录
看不到规则匹配记录通常因为日志级别未设置为“调试”或“详细”模式,默认级别下仅记录错误和警告不输出规则匹配过程。用户应进入设置页面将日志级别调整为最高级别,或开启“详细日志”开关。同时确认已发起实际网络请求而非仅在测试连接,因为测试连接可能绕过规则匹配环节直接尝试连接节点。
日志显示匹配到某规则但实际流量未按该规则处理
可能原因是规则匹配记录中的策略类型被后续的更高优先级规则覆盖,或策略组内部的选择逻辑导致实际出口与预期不同。用户应检查规则列表中是否存在比该规则优先级更高且策略相反的条目,以及该规则指向的策略组是否正常工作,查看策略组日志确认最终出口选择。
日志内容太多如何快速筛选分流相关信息
利用Shadowrocket日志界面中的关键词搜索功能,输入“matching”、“hit”或“selected”等关键词可快速定位规则匹配和策略组选择的相关记录。也可在访问目标域名后立刻清空日志,使界面仅保留当前测试请求的日志记录,然后按时间顺序倒序浏览最新条目,最顶部的记录就是刚刚发生的请求的处理结果。