mirror of
https://gitee.com/xmz7891/ykxmz.git
synced 2026-10-19 17:40:43 +00:00
阶段1+2:恢复 HTTP/2 加速 + 重做官网
阶段1 网络加速 - 发现隧道在跑 QUIC(ExecStart 丢了 --protocol http2), 实测 QUIC 可用率 48% vs HTTP/2 80%+,是重大性能回退。 恢复后公网延迟从 4141ms 降到 690ms(快 6 倍),可用率 92%。 - 优选 IP 结论:无效。hosts 覆盖确实生效了(日志里连的就是指定 IP), 但落点仍是 lax —— 运营商把所有 Cloudflare anycast 都路由到美西。 已清掉这段无效配置。 - BBR 不可用:设备是自定义内核 6.4.0-rc4-jsbsbxjxh66, 没编 tcp_bbr 模块也没配置项。改用 cubic + 调优: TCP 缓冲 4MB、tcp_fastopen=3、tcp_slow_start_after_idle=0 (长轮询场景关键)、tcp_tw_reuse=1。 阶段2 官网重做 - 拆出独立模块 relay/landing.py(relay.py 已两千多行, 再塞 HTML 没法看) - 信息结构参考成熟产品站:吸顶导航 / Hero / 九宫格功能 / 三步上手 / 下载 / FAQ / 页脚 - 保持白色简洁:底白、浅灰面板、细边框、大量留白 - logo 用内联 SVG(ICO 放 img 里实测是破图) - 管理入口从官网移除(管理不对外开放) 过程中被自己的测试抓到两个 bug: - 模块叫 site.py 会和 Python 标准库重名,import site 拿到的是标准库 - _logo() 里把 % 格式化和字符串拼接混用,直接抛 TypeError
This commit is contained in:
+24
-47
@@ -1,61 +1,38 @@
|
||||
#!/bin/bash
|
||||
# 能不能让 cloudflared 连更近的 Cloudflare 边缘?
|
||||
#
|
||||
# 现状:它连的是 198.41.x.x,日志显示落地在 lax01/sjc07(美西)。
|
||||
# 从国内 4G 到美西,丢包 40%,握手经常超时。
|
||||
# 如果能连香港/新加坡/日本,延迟和丢包都会好很多。
|
||||
# 诊断:为什么 /etc/hosts 覆盖没生效,隧道还是落到 lax
|
||||
set -u
|
||||
|
||||
echo "===== 1. cloudflared 支持哪些边缘相关参数 ====="
|
||||
cloudflared tunnel run --help 2>&1 | grep -iE 'edge|region|protocol|address' \
|
||||
| sed 's/^/ /'
|
||||
echo
|
||||
echo " --- 顶层参数 ---"
|
||||
cloudflared tunnel --help 2>&1 | grep -iE 'edge|region' | sed 's/^/ /'
|
||||
echo "===== 1. /etc/hosts 实际内容(尾部)====="
|
||||
tail -8 /etc/hosts | sed 's/^/ /'
|
||||
|
||||
echo
|
||||
echo "===== 2. argotunnel 区域域名解析出哪些 IP ====="
|
||||
for host in region1.v2.argotunnel.com region2.v2.argotunnel.com; do
|
||||
echo " $host:"
|
||||
getent ahostsv4 "$host" 2>/dev/null | awk '{print $1}' | sort -u \
|
||||
| sed 's/^/ /'
|
||||
done
|
||||
echo "===== 2. nsswitch 的解析顺序 ====="
|
||||
grep '^hosts' /etc/nsswitch.conf | sed 's/^/ /'
|
||||
|
||||
echo
|
||||
echo "===== 3. 到这些 IP 的 TCP 7844 延迟(各测 3 次)====="
|
||||
for ip in $(getent ahostsv4 region1.v2.argotunnel.com 2>/dev/null \
|
||||
| awk '{print $1}' | sort -u | head -4); do
|
||||
total=0; ok=0
|
||||
for i in 1 2 3; do
|
||||
t=$(timeout 6 bash -c "exec 3<>/dev/tcp/$ip/7844" 2>/dev/null \
|
||||
&& echo ok || echo fail)
|
||||
[ "$t" = "ok" ] && ok=$((ok+1))
|
||||
done
|
||||
printf " %-18s 7844 通 %s/3\n" "$ip" "$ok"
|
||||
done
|
||||
echo "===== 3. glibc 解析(getent)====="
|
||||
getent ahostsv4 region1.v2.argotunnel.com 2>/dev/null | head -3 | sed 's/^/ v4: /'
|
||||
getent ahostsv6 region1.v2.argotunnel.com 2>/dev/null | head -3 | sed 's/^/ v6: /'
|
||||
|
||||
echo
|
||||
echo "===== 4. 这些 IP 的 ICMP 延迟 ====="
|
||||
for ip in $(getent ahostsv4 region1.v2.argotunnel.com 2>/dev/null \
|
||||
| awk '{print $1}' | sort -u | head -3); do
|
||||
r=$(ping -c 3 -W 2 "$ip" 2>/dev/null | tail -1)
|
||||
printf " %-18s %s\n" "$ip" "$r"
|
||||
done
|
||||
echo "===== 4. 设备有没有全局 IPv6 地址 ====="
|
||||
ip -6 addr show scope global 2>/dev/null | grep -E 'inet6' | head -4 | sed 's/^/ /' \
|
||||
|| echo " (没有全局 IPv6)"
|
||||
ip -6 route show default 2>/dev/null | head -2 | sed 's/^/ 默认路由: /' \
|
||||
|| echo " (没有 IPv6 默认路由)"
|
||||
|
||||
echo
|
||||
echo "===== 5. 本机出口 IP / 运营商 ====="
|
||||
curl -s --max-time 8 https://1.1.1.1/cdn-cgi/trace 2>/dev/null \
|
||||
| grep -E '^(ip|loc|colo)=' | sed 's/^/ /'
|
||||
echo "===== 5. cloudflared 支持哪些 edge 相关参数 ====="
|
||||
cloudflared tunnel --help 2>&1 | grep -iE 'edge|region|protocol|ip-version' | head -12 | sed 's/^/ /'
|
||||
echo
|
||||
echo " 到 Cloudflare 的落地 colo(上面 colo= 就是,如果是 LAX/SJC 说明被路由到美西)"
|
||||
echo " --- run 子命令的 ---"
|
||||
cloudflared tunnel run --help 2>&1 | grep -iE 'edge|region|protocol|ip-version' | head -12 | sed 's/^/ /'
|
||||
|
||||
echo
|
||||
echo "===== 6. 试几个 Cloudflare 常用 anycast IP 的 7844 ====="
|
||||
for ip in 198.41.192.167 198.41.200.13 198.41.192.7 162.159.192.1 172.64.155.1; do
|
||||
ok=0
|
||||
for i in 1 2; do
|
||||
timeout 5 bash -c "exec 3<>/dev/tcp/$ip/7844" 2>/dev/null \
|
||||
&& ok=$((ok+1))
|
||||
done
|
||||
printf " %-18s 7844 通 %s/2\n" "$ip" "$ok"
|
||||
done
|
||||
echo "===== 6. 当前隧道服务实际用的参数 ====="
|
||||
grep -o 'ExecStart=.*' /etc/systemd/system/lanremote-tunnel.service | head -1 | sed 's/^/ /'
|
||||
|
||||
echo
|
||||
echo "===== 7. cloudflared 近期的连接日志 ====="
|
||||
grep -E 'location=|edge discovery|Initial protocol' /root/lanremote-relay/tunnel.log 2>/dev/null \
|
||||
| tail -6 | sed 's/^/ /'
|
||||
|
||||
Reference in New Issue
Block a user