Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

AWG_OVERLAPPING_ALLOWEDIPS Сетевое оборудование и VPN

AmneziaWG: Ошибка перекрытия маршрутов пиров (Overlapping AllowedIPs)

Обновлено: 25.08.2026 · Официальная документация ↗
  • Сервер отказывается регистрировать нового клиента с ошибкой: RTNETLINK answers: File exists или Configuration rejected: overlapping AllowedIPs.
  • Трафик отправляется не тому клиенту, либо предыдущий клиент внезапно теряет доступ при подключении нового.
  • В выводе awg show у одного из пиров исчезает строчка с разрешенными IP-адресами.
  • При перезапуске сервиса awg0 восстанавливается соединение только с первым по списку клиентом.

1. Принцип Cryptokey Routing в WireGuard / AmneziaWG

AmneziaWG использует маршрутизацию по криптографическим ключам (Cryptokey Routing). На сервере параметр AllowedIPs в секции каждого [Peer] выполняет роль таблицы маршрутизации ядра. Один и тот же IP-адрес или пересекающийся диапазон не может быть назначен двум разным публичным ключам.

2. Поиск дублирующихся адресов в серверном конфиге

# Поиск дублей IP адресов клиентов в файле awg0.conf
grep -i "AllowedIPs" /etc/amnezia/amnezia-wireguard/awg0.conf | sort | uniq -d

3. Корректная разметка клиентских подсетей на сервере

Каждому клиенту должен быть выделен строго уникальный одиночный адрес с маской /32 (для IPv4) или /128 (для IPv6):

# Серверный конфиг awg0.conf
[Interface]
Address = 10.8.0.1/24
PrivateKey = <Server_Key>
ListenPort = 51820

# Клиент 1 (Ноутбук)
[Peer]
PublicKey = <Client1_PubKey>
AllowedIPs = 10.8.0.2/32

# Клиент 2 (Телефон)
[Peer]
PublicKey = <Client2_PubKey>
AllowedIPs = 10.8.0.3/32

# Клиент 3 (Роутер с локальной сетью за ним)
[Peer]
PublicKey = <Client3_PubKey>
AllowedIPs = 10.8.0.4/32, 192.168.50.0/24

4. Динамическое добавление пира без перезапуска интерфейса

awg set awg0 peer <Client_PubKey> allowed-ips 10.8.0.5/32
💡 Практика специалистов: Если вы автоматизируете выпуск клиентских конфигов через API или скрипты, ведите строгий реестр IPAM (IP Address Management) в базе данных SQLite или Redis для исключения коллизий адресов.

Частые вопросы (FAQ)

Почему на клиенте можно указывать AllowedIPs = 0.0.0.0/0, а на сервере нельзя?

На клиенте есть только один пир (сервер), куда направляется весь интернет-трафик. На сервере подключено множество клиентов, и ядро должно однозначно знать, какому публичному ключу принадлежит конкретный IP.

Что произойдет, если указать одинаковый AllowedIPs = 10.8.0.2/32 двум разным пирам?

Ядро перезапишет внутренний указатель маршрута: первый пир будет отключен от таблицы маршрутизации и потеряет возможность отправлять и принимать данные.

Можно ли объединить несколько филиалов с одинаковыми локальными сетями (192.168.1.0/24)?

Нет, прямое объединение невозможно из-за коллизии маршрутизации. Потребуется настроить сетевую трансляцию адресов (1:1 NAT / NETMAP) на стороне филиалов.

Как удалить ошибочно добавленного пира из работающего интерфейса?

Выполните команду удаления по публичному ключу: awg set awg0 peer <Client_PubKey> remove.

Полезные материалы
Рекомендуем