From d783090418c2c6c0c47d66dee6c9f4334a57c84f Mon Sep 17 00:00:00 2001 From: mike Date: Sat, 9 May 2026 15:14:27 +0800 Subject: [PATCH] Delete route_test.sh --- route_test.sh | 212 -------------------------------------------------- 1 file changed, 212 deletions(-) delete mode 100644 route_test.sh diff --git a/route_test.sh b/route_test.sh deleted file mode 100644 index f6423f4..0000000 --- a/route_test.sh +++ /dev/null @@ -1,212 +0,0 @@ -#!/bin/bash -# ============================================================ -# 三网路由检测脚本 (电信 / 联通 / 移动) -# 适用系统: Debian / Ubuntu -# 功能: 自动安装依赖,测试去程+回程路由 -# ============================================================ - -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -BLUE='\033[0;34m' -CYAN='\033[0;36m' -BOLD='\033[1m' -RESET='\033[0m' - -# ── 测试目标 IP ────────────────────────────────────────────── -# 去程(从本地到这些国内IP) -TELECOM_IPS=("202.96.209.5" "61.139.2.69" "211.137.58.20") # 电信各省 -UNICOM_IPS=("211.95.46.3" "218.104.111.114" "61.135.169.121") # 联通各省 -MOBILE_IPS=("221.179.131.11" "223.5.5.5" "120.196.165.1") # 移动各省 - -# 回程测试目标 -TELECOM_RETURN="180.97.33.108" # 电信上海 -UNICOM_RETURN="218.104.111.114" # 联通武汉 -MOBILE_RETURN="221.179.131.11" # 移动北京 - -# ── 辅助函数 ───────────────────────────────────────────────── -print_banner() { - echo -e "${CYAN}" - echo "╔══════════════════════════════════════════════════╗" - echo "║ 三网路由检测脚本 by route_test ║" - echo "║ 电信 / 联通 / 移动 去程 + 回程 ║" - echo "╚══════════════════════════════════════════════════╝" - echo -e "${RESET}" -} - -print_section() { - echo "" - echo -e "${BOLD}${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${RESET}" - echo -e "${BOLD}${YELLOW} $1${RESET}" - echo -e "${BOLD}${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${RESET}" -} - -check_root() { - if [[ $EUID -ne 0 ]]; then - echo -e "${RED}[错误] 请使用 root 用户运行此脚本${RESET}" - echo " sudo bash route_test.sh" - exit 1 - fi -} - -get_vps_info() { - print_section "📋 VPS 基本信息" - local ip=$(curl -s --max-time 5 ip.sb 2>/dev/null || echo "获取失败") - local info=$(curl -s --max-time 5 ipinfo.io 2>/dev/null) - local org=$(echo "$info" | grep '"org"' | cut -d'"' -f4) - local city=$(echo "$info" | grep '"city"' | cut -d'"' -f4) - local country=$(echo "$info" | grep '"country"' | cut -d'"' -f4) - echo -e " IP地址 : ${GREEN}${ip}${RESET}" - echo -e " 归属地 : ${GREEN}${country} ${city}${RESET}" - echo -e " ASN/运营: ${GREEN}${org}${RESET}" - echo -e " 系统 : ${GREEN}$(lsb_release -d 2>/dev/null | cut -f2)${RESET}" - echo -e " 内核 : ${GREEN}$(uname -r)${RESET}" - echo -e " 时间 : ${GREEN}$(date '+%Y-%m-%d %H:%M:%S %Z')${RESET}" -} - -install_deps() { - print_section "🔧 检查并安装依赖" - - apt-get update -qq 2>/dev/null - - # mtr - if ! command -v mtr &>/dev/null; then - echo -e " ${YELLOW}安装 mtr...${RESET}" - apt-get install -y -qq mtr-tiny 2>/dev/null && \ - echo -e " ${GREEN}✔ mtr 安装完成${RESET}" || \ - echo -e " ${RED}✘ mtr 安装失败${RESET}" - else - echo -e " ${GREEN}✔ mtr 已安装${RESET}" - fi - - # traceroute - if ! command -v traceroute &>/dev/null; then - echo -e " ${YELLOW}安装 traceroute...${RESET}" - apt-get install -y -qq traceroute 2>/dev/null && \ - echo -e " ${GREEN}✔ traceroute 安装完成${RESET}" || \ - echo -e " ${RED}✘ traceroute 安装失败${RESET}" - else - echo -e " ${GREEN}✔ traceroute 已安装${RESET}" - fi - - # nexttrace - if ! command -v nexttrace &>/dev/null; then - echo -e " ${YELLOW}安装 nexttrace...${RESET}" - curl -s https://raw.githubusercontent.com/nxtrace/NTrace-core/main/nt_install.sh | bash -s -- --yes 2>/dev/null - if command -v nexttrace &>/dev/null; then - echo -e " ${GREEN}✔ nexttrace 安装完成${RESET}" - else - echo -e " ${RED}✘ nexttrace 安装失败,回程测试将跳过${RESET}" - fi - else - echo -e " ${GREEN}✔ nexttrace 已安装$(nexttrace --version 2>/dev/null | head -1)${RESET}" - fi -} - -# ── 去程测试(ping延迟)──────────────────────────────────────── -ping_test() { - local label=$1 - local ip=$2 - local result=$(ping -c 3 -W 3 "$ip" 2>/dev/null | tail -1 | awk -F'/' '{print $5}') - if [[ -n "$result" ]]; then - echo -e " ${ip} → ${GREEN}${result} ms${RESET}" - else - echo -e " ${ip} → ${RED}超时/不可达${RESET}" - fi -} - -outbound_test() { - print_section "📤 去程延迟测试(VPS → 国内)" - - echo -e "\n ${BOLD}▶ 电信${RESET}" - for ip in "${TELECOM_IPS[@]}"; do - ping_test "电信" "$ip" - done - - echo -e "\n ${BOLD}▶ 联通${RESET}" - for ip in "${UNICOM_IPS[@]}"; do - ping_test "联通" "$ip" - done - - echo -e "\n ${BOLD}▶ 移动${RESET}" - for ip in "${MOBILE_IPS[@]}"; do - ping_test "移动" "$ip" - done -} - -# ── 回程路由追踪 ────────────────────────────────────────────── -return_route_nexttrace() { - local label=$1 - local ip=$2 - local color=$3 - - echo -e "\n ${color}${BOLD}▶ ${label} 回程路由 → ${ip}${RESET}" - echo -e " ${CYAN}$(printf '─%.0s' {1..48})${RESET}" - - if command -v nexttrace &>/dev/null; then - nexttrace --no-rdns "$ip" 2>/dev/null | \ - grep -v "^$" | \ - sed 's/^/ /' - else - echo -e " ${RED}nexttrace 未安装,使用 traceroute 替代(无ASN信息)${RESET}" - traceroute -n -m 20 "$ip" 2>/dev/null | sed 's/^/ /' - fi -} - -return_route_test() { - print_section "📥 回程路由追踪(VPS → 国内三网)" - echo -e " ${YELLOW}提示: 关注 AS 号码${RESET}" - echo -e " ${YELLOW} 电信CN2: as4809 普通163: as4134${RESET}" - echo -e " ${YELLOW} 联通9929: as9929 普通169: as4837${RESET}" - echo -e " ${YELLOW} 移动CMIN2: as58807 普通CMNet: as9808${RESET}" - - return_route_nexttrace "电信" "$TELECOM_RETURN" "$RED" - return_route_nexttrace "联通" "$UNICOM_RETURN" "$BLUE" - return_route_nexttrace "移动" "$MOBILE_RETURN" "$GREEN" -} - -# ── MTR 质量测试 ────────────────────────────────────────────── -mtr_test() { - print_section "📊 MTR 丢包率测试(各发送10个包)" - - local targets=( - "电信上海|$TELECOM_RETURN" - "联通武汉|$UNICOM_RETURN" - "移动北京|$MOBILE_RETURN" - ) - - for item in "${targets[@]}"; do - local label="${item%%|*}" - local ip="${item##*|}" - echo -e "\n ${BOLD}▶ ${label} (${ip})${RESET}" - if command -v mtr &>/dev/null; then - mtr --report --report-cycles 10 --no-dns "$ip" 2>/dev/null | \ - awk 'NR>1 {printf " %-5s %-18s Loss:%5s Avg:%7s ms\n", $1, $2, $3, $8}' | \ - head -20 - else - echo -e " ${RED}mtr 未安装${RESET}" - fi - done -} - -# ── 摘要 ────────────────────────────────────────────────────── -summary() { - print_section "✅ 检测完成" - echo -e " 如需可视化路由图,访问 nexttrace 输出的 MapTrace URL" - echo -e " 如需重新测试: ${CYAN}bash route_test.sh${RESET}" - echo "" -} - -# ── 主流程 ──────────────────────────────────────────────────── -main() { - check_root - print_banner - get_vps_info - install_deps - outbound_test - return_route_test - mtr_test - summary -} - -main