AmneziaWG: Ошибка коллизии IP-адресов интерфейса Tap/Tun на Linux хосте
- Ошибка в клиенте Amnezia:
Tap interface IP collision on Linux hostпри поднятии туннеля. - Интерфейс
awg0илиtun0не может получить IP адрес:RTNETLINK answers: File exists. - Локальная сеть (LAN) 192.168.1.0/24 или Docker подсеть 172.17.0.0/16 совпадает с внутренней подсетью VPN.
- Падение сетевого стека хоста сразу после нажатия кнопки 'Подключить'.
1. Поиск конфликтующих интерфейсов и подсетей
Проверьте существующие маршруты и адреса сетевых адаптеров:
ip addr show
ip route show2. Принудительное удаление «зависших» виртуальных интерфейсов
Если предыдущая сессия Amnezia завершилась аварийно:
sudo ip link delete awg0 2>/dev/null || true
sudo ip link delete tun0 2>/dev/null || true3. Изменение внутренней подсети AmneziaWG
Если VPN использует стандартную подсеть 10.8.0.0/24, которая уже занята Docker или другой виртуальной машиной, измените пул на сервере в /etc/amnezia/amnezia-wg/awg0.conf:
[Interface]
# Смените адрес на нестандартный диапазон (например, 10.155.77.1/24)
Address = 10.155.77.1/24
# Не забудьте обновить конфигурации клиентов и правила iptables:
# iptables -t nat -A POSTROUTING -s 10.155.77.0/24 -o eth0 -j MASQUERADE4. Очистка правил маршрутизации policy routing
# Проверка кастомных таблиц маршрутизации
ip rule show
# Сброс зависших правил от WireGuard/Amnezia (lookup 51820)
ip rule del table 51820 2>/dev/null || true
ip route flush table 51820 2>/dev/null || true Частые вопросы (FAQ)
Почему возникает ошибка 'RTNETLINK answers: File exists'?
Ядро Linux пытается добавить маршрут к подсети через новый туннельный интерфейс, но в таблице маршрутизации уже существует идентичный префикс через другой адаптер.
Как изолировать AmneziaWG от сети Docker default bridge?
В файле /etc/docker/daemon.json задайте другой пул адресов через параметр 'bip': '172.31.0.1/16' и перезапустите docker daemon.
Может ли конфликтовать AmneziaWG с установленным клиентом Tailscale или OpenVPN?
Да, если оба клиента используют пересекающиеся адреса подсетей 10.0.0.0/8 или перехватывают дефолтный маршрут через метрику priority 0.
Как безопасно сбросить все правила iptables, созданные Amnezia?
Перезапустите сервис межсетевого экрана или выполните iptables -t nat -F, после чего перезапустите amnezia-wg сервис.