2.1.3:搬到 Lightsail 真服务器 + 支持"没有证书的中转" 用户买了 AWS Lightsail(2G 内存 / 2 vCPU / 60G SSD / 公网 IP 13.54.30.196),中转从随身 WiFi 那台小机器搬过去。 == 为什么这次搬迁解决了一堆老问题 == 原机器(Debian aarch64、460MB、走 4G)一直有几件搞不定的: * 线路对 Cloudflare 隧道的 **7844 端口间歇性阻断**(443 通、7844 不通), 隧道每 3~10 分钟掉一次、公网跟着 530 —— 查了很久才从 cloudflared 自己的 precheck 里看清 * 只有 460MB 内存 * 会掉电硬挂(实测 2026-10-08 18:42 一次非正常关机) 新机器**有公网 IP**,中转直接监听,不经隧道、不过 7844。 实测公网延迟从 **1000~2000 ms 降到 1.1 ms**。 == 代码改动 == 1. **relay.py 的 DATA_DIR 默认值不再写死** 原来是 /root/lanremote-relay。新机器上服务以 admin 普通用户跑 (它没理由要 root),而 /root 是 0700 —— 部署时直接 PermissionError: '/root/lanremote-relay'。 改成"本脚本所在目录下的 data/",搬到哪都跟着走。 2. **客户端支持"没有证书的中转"** 新服务器是明文 HTTP(没签证书),而两个客户端原来都往 https 走: * 手表端:裸 IP 会被强制补 https:// -> 永远连不上, 报的还是 SSL 错误,很容易让人白查半天证书 * Android 9+ 默认禁止明文流量,没 usesCleartextTraffic 请求会被系统直接掐掉 Windows 端本来就是对的(正则里把任意纯 IP 都当"用明文")。 现在手表端规则和它一致,并加了 usesCleartextTraffic。 3. 清掉电脑端一段函数内的重复代码(return 之后还有一份拷贝, 缩进仍在函数体内所以不报错,但读起来很迷惑)。 == 新服务器上的部署 == /opt/ykxmz-relay/ 服务端(relay/admin/landing/showcase) ykxmz-relay.service 监听 0.0.0.0:13245 ykxmz-monitor.service/.timer 每 60 秒查公网,连续 3 次不通就叫预案 rescue-lightsail.sh 四级阶梯抢救(重启中转 / 强杀重拉 / 查防火墙 / 重启整机[默认关]) 预案针对新架构重写过:原来围着隧道转(重启隧道、重施 MSS/MTU), 现在没有隧道,改成重启中转 + 查端口/防火墙。 全量回归 46 个阶段全部通过。