mirror of
https://gitee.com/xmz7891/ykxmz.git
synced 2026-10-18 12:30:44 +00:00
2.1.2:隧道稳定性加固(继续修「网站还是容易挂」)
2.1.1 修掉了 nettune 死锁之后,公网上到 200,但**过一阵又 530**。
这次抓到的是隧道自己:
cloudflared 的 precheck 输出(tunnel.log):
| UDP Connectivity region1.v2.argotunnel.com FAIL QUIC connection failed |
| TCP Connectivity region1.v2.argotunnel.com FAIL HTTP/2 connection is blocked or unreachable |
| Cloudflare API api.cloudflare.com:443 PASS API is reachable |
| ERROR: Allow outbound QUIC traffic on port 7844 or use HTTP2. |
也就是 **443 通、7844 不通**,而且是**间歇性**的(过几分钟自己又好了,
然后再次断)。Cloudflare 隧道的边缘连接走 7844(QUIC 走 UDP 7844、
HTTP/2 走 TCP 7844)。这条线路对它是间歇性阻断 —— 属于运营商那一侧,
设备改不了,但可以让 cloudflared 自己去适应。
== 两个改动 ==
1. **协议从写死改成 auto**
lanremote-tunnel --protocol quic -> --protocol auto
lanremote-tunnel-h2 --protocol http2 -> --protocol auto
原来两条实例各赌一个协议:那一刻 7844 的 UDP 和 TCP 都不通就一起死,
没有退路(实测连接数掉到 1/0、公网 530)。改成 auto 之后
cloudflared 自己在 QUIC / HTTP/2 之间挑当前能通的那条,
10 条连接全都有自适应能力。
2. **--retries 5 -> 1000000**
原来失败 5 次就退出、靠 systemd Restart=always 拉起来,
每次退出到重启之间网站都是断的。而这条线路的抖动是分钟级的 ——
实测隧道每 3~10 分钟就被重启一次(19:37 / 19:40 / 19:43 / 19:50 / 19:52),
公网跟着一起断。拉大之后抖动期间连接自己恢复,整条隧道不退出。
3. 顺手加日志轮转(tunnel.log 已经 2.98 MB,这台机器硬盘不大)。
== 实测 ==
改前:连接数 1/0,公网 530
改后:连接数 7+2(接近满配 10),公网连测 5 次全部 200
== 同步 ==
relay/deploy.sh 里的 MAIN_PROTO / ALT_PROTO 也改成 auto、
TUNNEL_BASE 的 --retries 也拉到 1000000,新机器装出来就是加固过的。
全量回归 46 个阶段全部通过。
This commit is contained in:
+31
-5
@@ -204,9 +204,26 @@ fi
|
||||
#
|
||||
# (早先这里写的是"两条同时跑会互相争抢",那个结论是错的,已作废。
|
||||
# 再早还写过"运营商封 UDP",那个测量方法本身是错的,也作废。)
|
||||
MAIN_PROTO=quic
|
||||
# ⚠ 用 auto,不要写死 quic / http2。
|
||||
#
|
||||
# 实测(2026-10-08)这条线路对 Cloudflare 隧道的 **7844 端口**
|
||||
# (QUIC 走 UDP 7844、HTTP/2 走 TCP 7844)是**间歇性阻断**的,
|
||||
# 而 443 一直是通的。cloudflared 自己的 precheck 报得很清楚:
|
||||
#
|
||||
# | UDP Connectivity region1.v2.argotunnel.com FAIL QUIC connection failed |
|
||||
# | TCP Connectivity region1.v2.argotunnel.com FAIL HTTP/2 connection is blocked or unreachable |
|
||||
# | Cloudflare API api.cloudflare.com:443 PASS API is reachable |
|
||||
# | ERROR: Allow outbound QUIC traffic on port 7844 or use HTTP2. |
|
||||
#
|
||||
# 写死协议的时候,那一刻 7844 的 UDP 和 TCP 都不通 -> 两条实例一起死
|
||||
# -> 连接数掉到 1/0 -> 公网 530。实测就是这么挂的。
|
||||
#
|
||||
# 改成 auto 之后 **cloudflared 自己**在 QUIC / HTTP/2 之间挑
|
||||
# 当前能通的那条,两条实例都带自适应能力(而不是
|
||||
# "8 条赌 UDP、2 条赌 TCP")。改完实测连接数 7+2、公网连测 5 次全 200。
|
||||
MAIN_PROTO=auto
|
||||
MAIN_CONNS="${QUIC_CONNS:-8}"
|
||||
ALT_PROTO=http2
|
||||
ALT_PROTO=auto
|
||||
ALT_CONNS="${H2_CONNS:-2}"
|
||||
|
||||
# metrics 端口必须**显式钉死**。
|
||||
@@ -581,9 +598,18 @@ EOF
|
||||
# --edge-ip-version 4 这条线路有 IPv6 地址但实际不通,
|
||||
# 边缘默认优先 IPv6 会一直超时
|
||||
# --ha-connections N 每个单元各自多少条连接(默认 quic 8 / h2 2)
|
||||
# --retries 5 连边缘失败时多重试
|
||||
# --metrics ADDR:PORT **必须显式钉死**,见下面的注释
|
||||
TUNNEL_BASE="--no-autoupdate --edge-ip-version 4 --retries 5"
|
||||
# --retries N 连边缘失败时重试多少次
|
||||
#
|
||||
# ⚠ --retries 从 5 提到 1000000(相当于"一直重试,别退出")。
|
||||
#
|
||||
# 原来 5 次就退出,靠 systemd Restart=always 拉起来 ——
|
||||
# 每次退出到重启之间网站都是断的。而这条线路对 7844 的阻断是
|
||||
# **分钟级**的,5 次重试远远扛不过去:实测隧道每 3~10 分钟
|
||||
# 就被重启一次,公网跟着 530。
|
||||
#
|
||||
# 拉大之后,抖动期间连接自己恢复,整条隧道不退出,
|
||||
# 网站也就不会跟着断。
|
||||
TUNNEL_BASE="--no-autoupdate --edge-ip-version 4 --retries 1000000"
|
||||
|
||||
if [ -n "$TOKEN" ]; then
|
||||
# Token 模式:Token 存单独的 600 权限文件,不写进 unit
|
||||
|
||||
+1
-1
@@ -59,7 +59,7 @@ from collections import deque
|
||||
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
|
||||
from pathlib import Path
|
||||
|
||||
VERSION = "2.1.1"
|
||||
VERSION = "2.1.2"
|
||||
|
||||
# ---------------- 参数(都能用环境变量覆盖)----------------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user