#!/bin/bash # 1) 把官网上的「管理入口」链接删掉(管理不对外开放) # 2) 应用优选 IP:把 Cloudflare 隧道域名指到实测最快的边缘 IP set -u RELAY_DIR=/root/lanremote-relay CONFIG=/etc/cloudflared/config.yml echo "===== 1. 备份原配置 =====" cp -f /etc/hosts /root/hosts.bak.$(date +%s) 2>/dev/null || true cp -f "$CONFIG" /root/config.yml.bak 2>/dev/null || true echo " 已备份 /etc/hosts 和 config.yml" echo echo "===== 2. 应用优选 IP(写 /etc/hosts 覆盖 GeoDNS)=====" # 从探测结果里取最快的两个 BEST=$(head -2 /root/cf_best.txt 2>/dev/null | awk '{print $1}') echo " 最快的 IP: $BEST" # 清掉之前加过的 sed -i '/argotunnel.com/d' /etc/hosts FIRST=$(echo "$BEST" | head -1) SECOND=$(echo "$BEST" | tail -1) { echo "" echo "# ykxmz:优选 Cloudflare 隧道边缘(覆盖 GeoDNS,实测延迟更低)" echo "$FIRST region1.v2.argotunnel.com" echo "$SECOND region2.v2.argotunnel.com" echo "$FIRST region1.v2.argotunnel.com" echo "$SECOND region2.v2.argotunnel.com" } >> /etc/hosts echo " /etc/hosts 现在有:" grep argotunnel /etc/hosts | sed 's/^/ /' echo echo "===== 3. 确认解析结果变了 =====" getent hosts region1.v2.argotunnel.com | head -3 | sed 's/^/ region1 -> /' getent hosts region2.v2.argotunnel.com | head -3 | sed 's/^/ region2 -> /' echo echo "===== 4. 重启隧道 =====" systemctl restart lanremote-tunnel sleep 35 echo " 连接数: $(curl -s --max-time 5 http://127.0.0.1:20241/metrics 2>/dev/null | grep '^cloudflared_tunnel_ha_connections' | awk '{print $2}')" echo " 落点:" grep -oE 'location=[a-z0-9]+' "$RELAY_DIR/tunnel.log" 2>/dev/null | tail -3 | sed 's/^/ /' echo echo "===== 5. 公网延迟对比(20 次)=====" ok=0; total=0 for i in $(seq 1 20); do t=$(curl -s -o /dev/null -w '%{time_total}' --max-time 15 \ -H 'User-Agent: LanRemote/1.4.0' https://relay.xxmxxs.top/v1/health 2>/dev/null) c=$(curl -s -o /dev/null -w '%{http_code}' --max-time 15 \ -H 'User-Agent: LanRemote/1.4.0' https://relay.xxmxxs.top/v1/health 2>/dev/null) if [ "$c" = "200" ]; then ok=$((ok+1)) printf " %2d: %s 秒\n" "$i" "$t" else printf " %2d: 失败\n" "$i" fi total=$((total+1)) sleep 1 done echo " 可用 $ok/$total"