AmneziaWG: Сбой маршрутизации Split-Tunneling и утечка Killswitch
- Реальный IP-адрес пользователя отображается на сайтах, несмотря на активный статус VPN-соединения.
- При сбое туннеля трафик продолжает идти напрямую через шлюз провайдера (Killswitch не блокирует незащищенный трафик).
- Конфликт маршрутов
0.0.0.0/0и маршрутов локальной подсети провайдера в таблице маршрутизации. - Приложения из списка исключений Split-tunneling теряют доступ к сети целиком.
1. Диагностика таблицы маршрутизации
# Linux
ip route show table all
# Windows
route print -42. Настройка строгой изоляции трафика (Killswitch) через nftables
На стороне Linux-клиента настройте блокировку трафика, идущего мимо туннельного интерфейса awg0:
nft add table inet amnezia_killswitch
nft add chain inet amnezia_killswitch output { type filter hook output priority 0 \; }
nft add rule inet amnezia_killswitch output oifname != "awg0" ip daddr != <VPN_SERVER_IP> drop3. Коррекция директив AllowedIPs для раздельного туннелирования
Для перенаправления только определенных сетей используйте явное указание диапазонов вместо 0.0.0.0/0:
[Peer]
PublicKey = <Server_Public_Key>
Endpoint = 203.0.113.10:51820
# Маршрутизировать только трафик к целевым ресурсам
AllowedIPs = 1.1.1.1/32, 8.8.8.8/32, 198.51.100.0/244. Сброс метрик маршрутов по умолчанию в Windows PowerShell
Get-NetIPInterface | Set-NetIPInterface -InterfaceMetric 15
Get-NetIPInterface -InterfaceAlias "Amnezia*" | Set-NetIPInterface -InterfaceMetric 5 Частые вопросы (FAQ)
Почему при активном Killswitch перестает работать локальная сеть (LAN)?
Killswitch блокирует весь трафик вне туннеля. Для сохранения доступа к LAN добавьте локальные подсети (192.168.0.0/16, 10.0.0.0/8) в список исключений файрвола.
Как работает Split-Tunneling по приложениям в Windows?
AmneziaWG использует WFP (Windows Filtering Platform) вызовы ядра для фильтрации пакетов по ID процессов и бинарным путям исполняемых файлов.
Может ли происходить утечка трафика через IPv6?
Да, если IPv6 не настроен внутри AmneziaWG (отсутствует AllowedIPs = ::/0), запросы IPv6 пойдут напрямую через шлюз провайдера. Отключите IPv6 или добавьте блокирующее правило.
Что делать, если DNS трафик идет в обход туннеля при Split-Tunneling?
Явно задайте защищенный DNS-сервер внутри конфигурационного файла (DNS = 10.8.0.1 или 1.1.1.1) и активируйте блокировку незашифрованного DNS.