ykxmz 1.5.0:修复手表端 TLS 证书校验 + MTU 修复网络稳定性

被控端
- 修复 MTU 问题:夹 MSS + 路径 MTU 探测(公网可用率 48% -> 100%)
- 复用 HTTP 连接(免掉每次新建 TLS 的 30% 握手失败)
- 每分钟回头找局域网,自动切回快 400 倍的路径
- 画面心跳帧:静止时省流量,客户端仍知道流是活的
- 锁屏时给出可操作的提示

手表端
- 内置 GTS Root R4 / GlobalSign Root CA,修 SSLHandshakeException
- 连接错误翻译成人话(证书/时间/解析/超时分别提示)
- 经中转连上后用服务器报的地址刷新已配对记录
- 新增局域网连接页面、服务器延迟检测

服务器端
- 支持 chunked 请求体(修每 16 秒一次的连接错乱与大面积 502)
- 网络调优脚本 net-tune.sh(开机自动应用)
- 管理页:批量删除、网络体检、下载区
- 隧道改 HTTP/2 + 双连接

文档
- 许可协议 / 安装前必读 / 安装后须知(作者:小麦子)
This commit is contained in:
xmz7891
2026-10-06 19:01:05 +08:00
commit b62ac865ea
3195 changed files with 203292 additions and 0 deletions
+110
View File
@@ -0,0 +1,110 @@
========================================================
服务器端(随身 WiFi / Linux) 版本 1.4.0
========================================================
作用:让**不在同一个网络**的电脑和手表连上。
手表 ──HTTPS──┐
├──> Cloudflare ──> 本机 :8080
电脑 ──HTTPS──┘
本程序是**纯标准库**的 Python,不装任何第三方包。
内存占用约 20MB,加 cloudflared 共约 60MB —— 512MB 的小机器跑得动。
【装】
把本文件夹拷到设备上,然后:
bash install.sh
它会:
1. 检查 python3 / cloudflared(没有就下载)
2. 装两个 systemd 服务并设为开机自启:
lanremote-relay 中转服务
lanremote-tunnel Cloudflare 隧道
3. 打印公网地址和管理页地址
【常用命令】
lanremote-url 打印当前公网地址
lanremote-key 打印管理钥匙
systemctl status lanremote-relay
systemctl status lanremote-tunnel
journalctl -u lanremote-relay -f
【地址老变怎么办?记住一个局域网地址就行】
匿名隧道的公网地址每次重启都会变。查当前地址:
浏览器打开 http://<随身WiFi的IP>:8080/url
比如 http://192.168.2.156:8080/url
它会直接返回当前的公网地址,纯文本,不用登录。
下面还有两个命令(SSH 上去用):
lanremote-url 打印当前公网地址
systemctl restart lanremote-tunnel 换个地址(超时的时候用)
【管理】
管理页: <公网地址>/?key=<lanremote-key 的输出>
管理页顶部也会大字显示"当前公网地址"。
管理密码:120830(存在 data/admin_password.txt,可改)
能看到:设备列表、在线状态、配对码、流量、会话数
能操作:踢会话、抹掉配对码绑定
【重要:这几个参数都是实测调出来的】
install.sh 里给 cloudflared 加了:
--edge-ip-version 4 只走 IPv4
--ha-connections 1 并发连接数
--retries 5 连边缘失败时多重试
为什么(都是踩出来的,不是拍脑袋):
① IPv6:这条线路**分配了 IPv6 地址但实际不通**,
而 Cloudflare 边缘默认优先 IPv6,会导致建隧道一直超时
(日志里是 context deadline exceeded)。
② 协议:**用默认的 QUIC,不要写 --protocol http2**。
实测这条线路把 HTTP/2 用的 TCP 7844 挡了:
TLS handshake with edge error: read tcp ...:7844: i/o timeout
而 QUIC 走 UDP 7844 是通的。
(早期版本这里误写成 --protocol http2,隧道完全起不来。)
③ 连接数:用 1(默认是 4)。这条线路对并发 UDP 很敏感:
链路好时 ha=4 只成功注册 1 条(9/10),ha=2 是 10/10;
链路退化时 ha=2 掉到 0/10(一条失败重试把另一条也拖下水),
而 ha=1 是 15/15 + 10/10(100%)。
多一条连接不是多一份冗余,而是多一份争抢。
冗余交给看门狗(每 30 秒查一次,断了就重启)更靠谱。
换了网络环境可以试着去掉这些参数用默认值。
【关于隧道地址会变】
默认用的是 Cloudflare **匿名快速隧道**,地址每次重启会变。
想固定地址要用**具名隧道**(需要你自己的域名):
cloudflared tunnel login # 浏览器点授权
cloudflared tunnel create lanremote
cloudflared tunnel route dns lanremote relay.你的域名
# 然后把 lanremote-tunnel.service 的 ExecStart 换成:
# cloudflared tunnel --no-autoupdate run lanremote
具名隧道不受匿名隧道限流,稳定性完全不是一个级别。
【省内存】
默认给两个服务各设了 MemoryMax=128M。
要再省就把用不上的服务停掉:
systemctl stop mariadb php8.2-fpm apache2
systemctl disable mariadb php8.2-fpm apache2