diff --git a/tests/test_network.sh b/tests/test_network.sh index c845224..0956e60 100644 --- a/tests/test_network.sh +++ b/tests/test_network.sh @@ -79,16 +79,31 @@ check "ya.ru → НЕ через amn0 (прямо)" "wl[pi]" "ip route get $(dig echo "" echo "=== 7. Geo: внешние IP ===" DEV_DIRECT=$(ip route show default 2>/dev/null | awk '/default/ {print $5; exit}') -ip_direct=$(curl -s --interface "$DEV_DIRECT" --max-time 10 https://ipinfo.io/ip 2>/dev/null) ip_vpn=$(curl -s --max-time 10 https://ipinfo.io/ip 2>/dev/null) -echo " Прямой IP (через ${DEV_DIRECT:-?}): ${ip_direct:-недоступно}" -echo " VPN IP (через amn0): ${ip_vpn:-недоступно}" -if [ -n "$ip_direct" ] && [ -n "$ip_vpn" ] && [ "$ip_direct" != "$ip_vpn" ]; then - echo -e " ${GRN}✓${CLR} IP разные — .ru идёт напрямую, остальное через VPN" - pass=$((pass+1)) +ip_direct=$(curl -s --interface "$DEV_DIRECT" --max-time 5 https://ipinfo.io/ip 2>/dev/null) +echo " VPN IP (через amn0): ${ip_vpn:-недоступно}" +if [ -n "$ip_direct" ]; then + echo " Прямой IP (через ${DEV_DIRECT:-?}): $ip_direct" + if [ "$ip_direct" != "$ip_vpn" ]; then + echo -e " ${GRN}✓${CLR} IP разные — .ru идёт напрямую, остальное через VPN" + pass=$((pass+1)) + else + echo -e " ${YEL}!${CLR} IP одинаковые — проверь маршрутизацию" + fail=$((fail+1)) + fi else - echo -e " ${YEL}!${CLR} IP одинаковые или недоступны — проверь маршрутизацию" - fail=$((fail+1)) + # Kill switch блокирует прямой доступ к ipinfo.io (не-.ru IP) — это штатное поведение. + # Вместо этого проверяем что ya.ru маршрутизируется через прямой интерфейс. + ya_ip=$(dig +short ya.ru A 2>/dev/null | head -1) + ya_dev=$(ip route get "$ya_ip" 2>/dev/null | awk '/dev/ {for(i=1;i<=NF;i++) if ($i=="dev") {print $(i+1); exit}}') + echo " Прямой IP: недоступен (UFW kill switch блокирует не-.ru трафик через ${DEV_DIRECT:-?})" + if [ "$ya_dev" = "$DEV_DIRECT" ]; then + echo -e " ${GRN}✓${CLR} .ru (ya.ru $ya_ip) → $ya_dev (напрямую, не через VPN)" + pass=$((pass+1)) + else + echo -e " ${YEL}!${CLR} .ru (ya.ru $ya_ip) → ${ya_dev:-?} (ожидался $DEV_DIRECT)" + fail=$((fail+1)) + fi fi echo ""