mirror of
https://gitee.com/xmz7891/ykxmz.git
synced 2026-10-19 22:20:43 +00:00
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:
+110
@@ -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
|
||||
Reference in New Issue
Block a user