#!/bin/bash # 检查并安装依赖 if ! command -v traceroute &> /dev/null; then apt update && apt install -y traceroute > /dev/null 2>&1 || yum install -y traceroute > /dev/null 2>&1 fi declare -A nodes=( ["中国电信"]="202.96.209.133" ["中国联通"]="210.21.196.6" ["中国移动"]="211.136.25.153" ) declare -A summary echo "=======================================================" echo "正在执行:VPS -> 国内运营商 (回程测试)" echo "=======================================================" for isp in "中国电信" "中国联通" "中国移动"; do ip=${nodes[$isp]} ping_val=$(ping -c 4 -i 0.2 -W 1 "$ip" | awk -F '/' 'END {print $5}') [ -z "$ping_val" ] && ping_val="超时" || ping_val="${ping_val}ms" res=$(traceroute -n -m 25 -q 1 "$ip" 2>&1) if echo "$res" | grep -q "59.43."; then line="CN2 GIA/GT (极速)" elif echo "$res" | grep -q "223.120."; then line="CMI 直连 (优秀)" elif echo "$res" | grep -qE "218.105.|210.13."; then line="AS9929/4837 (优化)" elif echo "$res" | grep -qE "202.97.|219.158."; then line="普通 163/169 (一般)" else line="普通/绕路"; fi summary[$isp]="$line | $ping_val" done printf "%-10s | %-20s | %-10s\n" "运营商" "线路类型/质量" "延迟" echo "-------------------------------------------------------" for isp in "中国电信" "中国联通" "中国移动"; do IFS='|' read -r l p <<< "${summary[$isp]}" printf "%-10s | %-20s | %-10s\n" "$isp" "$l" "$p" done echo "======================================================="