mirror of
https://gitee.com/xmz7891/ykxmz.git
synced 2026-10-18 10:10:43 +00:00
被控端 - 修复 MTU 问题:夹 MSS + 路径 MTU 探测(公网可用率 48% -> 100%) - 复用 HTTP 连接(免掉每次新建 TLS 的 30% 握手失败) - 每分钟回头找局域网,自动切回快 400 倍的路径 - 画面心跳帧:静止时省流量,客户端仍知道流是活的 - 锁屏时给出可操作的提示 手表端 - 内置 GTS Root R4 / GlobalSign Root CA,修 SSLHandshakeException - 连接错误翻译成人话(证书/时间/解析/超时分别提示) - 经中转连上后用服务器报的地址刷新已配对记录 - 新增局域网连接页面、服务器延迟检测 服务器端 - 支持 chunked 请求体(修每 16 秒一次的连接错乱与大面积 502) - 网络调优脚本 net-tune.sh(开机自动应用) - 管理页:批量删除、网络体检、下载区 - 隧道改 HTTP/2 + 双连接 文档 - 许可协议 / 安装前必读 / 安装后须知(作者:小麦子)
61 lines
2.2 KiB
Bash
61 lines
2.2 KiB
Bash
#!/bin/bash
|
|
# 测 install.sh 里那段 DNS 劫持检测逻辑。
|
|
#
|
|
# 做法:先把修好的 hosts 记录**拿掉**,恢复成被劫持的状态,
|
|
# 再跑检测逻辑,看它能不能自己发现问题并修好。
|
|
# 这才是真的验证 —— 光看语法通过不算。
|
|
set -u
|
|
|
|
HOSTS=/etc/hosts
|
|
MARK="# LanRemote: 钉住 Cloudflare API(网络会 DNS 劫持)"
|
|
|
|
echo "===== 1. 先把修复撤掉,恢复成"被劫持"的状态 ====="
|
|
sed -i "/$MARK/d" "$HOSTS"
|
|
sed -i '/api\.cloudflare\.com/d' "$HOSTS"
|
|
# 清 DNS 缓存(有就清)
|
|
systemctl restart systemd-resolved 2>/dev/null || true
|
|
sleep 2
|
|
echo " 现在的解析:"
|
|
getent ahostsv4 api.cloudflare.com 2>/dev/null | head -1 | sed 's/^/ /' || echo " (解析不出来)"
|
|
|
|
echo
|
|
echo "===== 2. 确认现在是"坏的" ====="
|
|
CODE=$(timeout 12 curl -4 -s -o /dev/null -w '%{http_code}' \
|
|
https://api.cloudflare.com/client/v4/user 2>/dev/null || echo 000)
|
|
echo " HTTP $CODE"
|
|
if [ "$CODE" = "403" ] || [ "$CODE" = "200" ]; then
|
|
echo " 咦,撤掉记录还是通的 —— 说明这个网络现在不劫持了,"
|
|
echo " 那这段逻辑没法验证"坏"的路径。"
|
|
else
|
|
echo " ✓ 确认是坏的($CODE)—— 可以测检测逻辑了"
|
|
fi
|
|
|
|
echo
|
|
echo "===== 3. 跑 install.sh 里的检测逻辑 ====="
|
|
# 从 install.sh 抽出检测那一段单独跑
|
|
awk '/# ---------- 0b\. 检查 Cloudflare API/,/^fi$/' \
|
|
/root/lanremote-relay/install.sh > /tmp/dns_section.sh
|
|
if [ ! -s /tmp/dns_section.sh ]; then
|
|
echo " ✗ 抽不出检测段,install.sh 里没找到标记"
|
|
exit 1
|
|
fi
|
|
{ echo 'set -u'; cat /tmp/dns_section.sh; } > /tmp/dns_test.sh
|
|
bash /tmp/dns_test.sh
|
|
|
|
echo
|
|
echo "===== 4. 最终确认 ====="
|
|
echo " hosts 里的记录:"
|
|
grep -A3 "LanRemote" "$HOSTS" | sed 's/^/ /'
|
|
echo
|
|
echo " 解析:"
|
|
getent ahostsv4 api.cloudflare.com 2>/dev/null | head -1 | sed 's/^/ /'
|
|
echo
|
|
CODE2=$(timeout 12 curl -4 -s -o /dev/null -w '%{http_code}' \
|
|
https://api.cloudflare.com/client/v4/user 2>/dev/null || echo 000)
|
|
echo " HTTP $CODE2"
|
|
if [ "$CODE2" = "403" ] || [ "$CODE2" = "200" ]; then
|
|
echo " ✓ 检测逻辑自己修好了 —— install.sh 这段是有效的"
|
|
else
|
|
echo " ✗ 没修好"
|
|
fi
|