fix: geo-тест корректно работает при активном kill switch
Прямой curl до ipinfo.io блокируется UFW (не-.ru трафик via wlp1s0 запрещён kill switch-ем — это штатное поведение). Теперь при недоступности прямого IP тест проверяет маршрут ya.ru: ожидает DEV_DIRECT, а не amn0. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -79,16 +79,31 @@ check "ya.ru → НЕ через amn0 (прямо)" "wl[pi]" "ip route get $(dig
|
|||||||
echo ""
|
echo ""
|
||||||
echo "=== 7. Geo: внешние IP ==="
|
echo "=== 7. Geo: внешние IP ==="
|
||||||
DEV_DIRECT=$(ip route show default 2>/dev/null | awk '/default/ {print $5; exit}')
|
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)
|
ip_vpn=$(curl -s --max-time 10 https://ipinfo.io/ip 2>/dev/null)
|
||||||
echo " Прямой IP (через ${DEV_DIRECT:-?}): ${ip_direct:-недоступно}"
|
ip_direct=$(curl -s --interface "$DEV_DIRECT" --max-time 5 https://ipinfo.io/ip 2>/dev/null)
|
||||||
echo " VPN IP (через amn0): ${ip_vpn:-недоступно}"
|
echo " VPN IP (через amn0): ${ip_vpn:-недоступно}"
|
||||||
if [ -n "$ip_direct" ] && [ -n "$ip_vpn" ] && [ "$ip_direct" != "$ip_vpn" ]; then
|
if [ -n "$ip_direct" ]; then
|
||||||
echo -e " ${GRN}✓${CLR} IP разные — .ru идёт напрямую, остальное через VPN"
|
echo " Прямой IP (через ${DEV_DIRECT:-?}): $ip_direct"
|
||||||
pass=$((pass+1))
|
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
|
else
|
||||||
echo -e " ${YEL}!${CLR} IP одинаковые или недоступны — проверь маршрутизацию"
|
# Kill switch блокирует прямой доступ к ipinfo.io (не-.ru IP) — это штатное поведение.
|
||||||
fail=$((fail+1))
|
# Вместо этого проверяем что 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
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
Reference in New Issue
Block a user