From f026cefe29d0514ecd3ddec5044a82ab0226fe36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A3=8E=E6=89=87=E6=BB=91=E7=BF=94=E7=BF=BC?= Date: Mon, 7 Jul 2025 03:43:44 +0000 Subject: [PATCH] Observatory: Refine some text --- docs/config/observatory.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/config/observatory.md b/docs/config/observatory.md index 175580d..08afc2e 100644 --- a/docs/config/observatory.md +++ b/docs/config/observatory.md @@ -1,6 +1,6 @@ # 连接观测 -连接观测组件使用 HTTPing 的方式探测出站代理的连接状态。观测结果可以被其他组件使用,如负载均衡器。目前有 [observatory](#observatoryobject) (后台连接观测)和 [burstObservatory](#burstobservatoryobject) (突发连接观测)两种。按需选择其中之一就行,理论上 `burstObservatory` 特征更不明显。 +连接观测组件使用 HTTPing 的方式探测出站代理的连接状态。观测结果可以被其他组件使用,如负载均衡器。目前有 [observatory](#observatoryobject) (后台连接观测)和 [burstObservatory](#burstobservatoryobject) (突发连接观测)两种。按需选择其中之一就行。 ## ObservatoryObject @@ -25,6 +25,8 @@ 发起探测的间隔。时间格式为数字 + 单位,比如 `"10s"`, `"2h45m"`,支持的时间单位有 `ns`, `us`, `ms`, `s`, `m`, `h`, 分别对应纳秒、微秒、毫秒、秒、分、时。 +注意,由于请求间隔是固定的,隔段时间固定的请求可能会导致存在行为特征,使用带有多路复用的协议或者启用 mux 可以缓解问题。 + > `enableConcurrency`: true | false - `true` 并发探测全部匹配的出站代理,全部完成后暂停 `probeInterval` 设定的时间。 @@ -67,13 +69,13 @@ 仅当 `destination` 探测失败时会执行此探测。这样在日志中能更清晰的体现出网络不通的原因。 -注意:在透明代理模式下,此请求会重入 xray 进行路由,因此必须精挑细选网址,确保它匹配直连规则。 +注意:在透明代理模式下,此请求可能会被透明代理捕获再次进入 xray 进行路由(根据你的配置方式不同)。需要采用额外手段确保它不会被透明代理捕获,比如针对网址 IP 的绕过,又或者使用 cgroup, pid 路由等方式完全使 xray 的请求不会被捕获。 > `interval`: string 在指定时间内探测全部匹配的出站代理,每个出站代理探测 sampling + 1 次。时间格式为数字 + 单位,比如 `"10s"`, `"2h45m"`,支持的时间单位有 `ns`, `us`, `ms`, `s`, `m`, `h`, 分别对应纳秒、微秒、毫秒、秒、分、时。 -注意:具体的探测时间是随机的!原理是每间隔 interval,立即并发调度所有出站的探测任务,但是在每个任务生命周期内随机时间执行探测,这意味着相较于 `observatory`(后台连接观测),本探测器的特征更不明显。但是如果 interval 设置的过小,或者 sampling 过大导致频繁探测,那么特征仍然会很明显。 +注意:具体的探测时间是随机的!原理是每间隔 interval,立即并发调度所有出站的探测任务,但是在每个任务生命周期内随机时间执行探测,这意味着相较于 `observatory`(后台连接观测),本探测器的特征更不明显,但如果 interval 设置的过小,或者 sampling 过大导致频繁探测,那么特征会更明显。 > `sampling`: number