docs+test: VPN 测试方案(黑盒+白盒)+ 修正延迟测量方法
- docs/vpn-test-plan.md:黑盒+白盒两方向测试方案。白盒细化:链路五段拆解、 协议/出站选择(Clash API)、接入段 vs 出海段分段 RTT、连接/流量、稳定性 (长跑/Kill switch/GFW 三元组封锁与被动探测/热重载)。含初轮报告:cara 黑盒 15 PASS;吞吐 国内直连 74Mbps vs 国外经隧道 ~10-17Mbps(瓶颈在出海段)。 - scripts/vpn_test.sh:修正延迟测量——经 TUN 代理时 ping/tcp_connect 被隧道本地 应答(2-4ms 假象),改用 TLS 握手(time_appconnect)/ TTFB 作为真实 RTT。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JEHzjEcFzvGwgbxT6Wbt6c
This commit is contained in:
+14
-5
@@ -100,12 +100,21 @@ for u in "${DOMESTIC[@]}"; do
|
||||
else W "$host" "不可达(分流/DNS 异常?)"; fi
|
||||
done
|
||||
|
||||
# ── 6. 延迟(连接握手耗时)────────────────────────────────────────────
|
||||
H "6. 延迟"
|
||||
for u in "https://$NODE_IP:8080" "https://www.gstatic.com/generate_204"; do
|
||||
tc=$(cget -k -o /dev/null -w "%{time_connect}" "$u" 2>/dev/null)
|
||||
[ -n "$tc" ] && [ "$tc" != "0.000000" ] && P "connect $u" "${tc}s" || W "connect $u" "无响应/超时"
|
||||
# ── 6. 延迟(真实 RTT)────────────────────────────────────────────────
|
||||
# ⚠️ 经 TUN 代理时 tcp_connect / ping 会被隧道本地应答(假的几 ms),不能当真实 RTT。
|
||||
# 真实延迟看 TLS 握手(time_appconnect,必须真往返到目标)与 TTFB(time_starttransfer)。
|
||||
H "6. 延迟(真实 RTT:TLS 握手 / TTFB;tcp_connect 经隧道为本地值仅供对照)"
|
||||
for u in "https://www.google.com/generate_204" "https://www.gstatic.com/generate_204"; do
|
||||
read -r tcp tls ttfb < <(cget -o /dev/null -w "%{time_connect} %{time_appconnect} %{time_starttransfer}" "$u" 2>/dev/null || echo "0 0 0")
|
||||
host=$(echo "$u" | sed -E 's#https?://([^/]+).*#\1#')
|
||||
if awk "BEGIN{exit !($tls>0)}" 2>/dev/null; then
|
||||
tlsms=$(awk "BEGIN{printf \"%.0f\", $tls*1000}"); ttfbms=$(awk "BEGIN{printf \"%.0f\", $ttfb*1000}"); tcpms=$(awk "BEGIN{printf \"%.0f\", $tcp*1000}")
|
||||
if [ "$tlsms" -lt 500 ] 2>/dev/null; then P "$host RTT" "TLS握手 ${tlsms}ms, TTFB ${ttfbms}ms (tcp_connect ${tcpms}ms=本地)"
|
||||
elif [ "$tlsms" -lt 1000 ] 2>/dev/null; then W "$host RTT" "TLS握手 ${tlsms}ms 偏高, TTFB ${ttfbms}ms"
|
||||
else F "$host RTT" "TLS握手 ${tlsms}ms 过高, TTFB ${ttfbms}ms"; fi
|
||||
else F "$host RTT" "无响应/超时"; fi
|
||||
done
|
||||
echo " ${B}提示${N}: 真实到节点的直连 RTT 请在【VPN 全关】后 ping 节点;开着 TUN ping 是本地假象。"
|
||||
|
||||
# ── 7. 吞吐(下载速度)────────────────────────────────────────────────
|
||||
if [ "$QUICK" = 0 ]; then
|
||||
|
||||
Reference in New Issue
Block a user