Что означает AllowedIPs в WireGuard?

Что означает AllowedIPs в WireGuard?

Ryan Foster
12 сентября 2026 г.· Обновлено 13 сентября 2026 г.· 9 мин чтения

WireGuard AllowedIPs связывает IP-префиксы с криптографическим пиром. Для исходящего трафика WireGuard выбирает пира по самому конкретному совпадающему префиксу назначения. Для входящего трафика он принимает расшифрованный пакет, только если внутренний адрес источника входит в префикс, разрешённый передавшему пиру.

Это двустороннее значение составляет основу «криптографической маршрутизации» WireGuard. Оно связано с таблицей маршрутов операционной системы, но не совпадает с ней. Полное руководство по VPN показывает весь путь, а здесь мы разделим решения, чтобы вы не принимали маршрут, правило пира и межсетевой экран за один параметр.

Ключевые выводы

  • Исходящий AllowedIPs сопоставляет внутренний префикс назначения с пиром.
  • Входящий AllowedIPs разрешает внутренние префиксы источника для пакетов, расшифрованных от этого пира.
  • Для пересекающихся записей применяется правило самого длинного префикса: более конкретный побеждает.
  • 0.0.0.0/0 и ::/0 охватывают все назначения IPv4 и IPv6 соответственно, но сами не гарантируют системных маршрутов.
  • wg-quick может вывести маршруты из AllowedIPs; низкоуровневая таблица пиров и маршрутизация системы остаются разными уровнями.

Что WireGuard AllowedIPs означает в двух направлениях?

Руководство wg(8) придаёт AllowedIPs две явные роли. При отправке список определяет адреса назначения, направляемые пиру. При получении он определяет адреса источника, разрешённые от пира.[1] Одна таблица префиксов рассматривается с противоположных сторон.

Допустим, у пира A задано AllowedIPs = 10.0.1.0/24. Когда интерфейс WireGuard получает внутренний пакет для 10.0.1.42, этот префикс может выбрать пира A для шифрования. Если аутентифицированный пакет от A расшифровывается с внутренним источником 10.0.1.42, проверка источника проходит. Заявленный источник 10.0.2.42 ей не соответствует.

Открытый ключ служит опорой связи. Техническое описание WireGuard называет сопоставление открытых ключей и туннельных адресов таблицей криптографической маршрутизации.[2] Успешная расшифровка доказывает, какой настроенный ключ передал пакет; AllowedIPs затем ограничивает внутренние адреса, которые этот ключ вправе представлять.

Это не означает, что пир владеет адресами во всей сети. Только данный интерфейс WireGuard связывает префиксы с пиром для двух конкретных решений.

Как самый длинный префикс выбирает пира?

Когда назначению соответствуют несколько префиксов, WireGuard выбирает самый конкретный. Длина отражает конкретность: /24 фиксирует больше начальных битов, чем /16, а /32 обозначает единственный IPv4-адрес. Для IPv6 действует тот же принцип, где /128 обозначает один адрес.

Пусть у пира A записан 10.0.0.0/8, а у пира B — 10.0.1.0/24. Пакет к 10.0.1.50 подходит обоим, но /24 длиннее, поэтому выбирается B. Назначение 10.2.0.5 подходит только /8 и отправляется A. Это детерминированное правило позволяет осознанное пересечение без зависимости от порядка строк.

Обозначения на схеме: 1 — внутреннее назначение, переданное WireGuard; 2 — поиск в AllowedIPs; 3 — более конкретное совпадение 10.0.1.0/24; 4 — резервное совпадение 0.0.0.0/0. Схема показывает выбор пира внутри WireGuard, а не предшествующий поиск системного маршрута.

НазначениеДоступные префиксыВыбранное совпадение
10.0.1.5010.0.0.0/8, 10.0.1.0/2410.0.1.0/24
10.2.0.510.0.0.0/8, 0.0.0.0/010.0.0.0/8
198.51.100.2010.0.0.0/8, 0.0.0.0/00.0.0.0/0
2001:db8::20Только записи IPv4Совпадения IPv6 нет

Одинаковый префикс у разных пиров не является полезной балансировкой нагрузки. Конфигурации нужна однозначная связь. Для динамического распределения проектируйте отдельные префиксы или маршрутизирующий уровень вне WireGuard.

Примеры полного и раздельного туннеля

Пир полного туннеля часто использует 0.0.0.0/0 для IPv4 и ::/0 для IPv6. Это префиксы по умолчанию: любой адрес соответствующего семейства совпадает, если нет более конкретной ассоциации пира. Они выражают выбор пира, но не обещают корректную настройку DNS, исключений локальной сети, политической маршрутизации или защиты от утечек.

Раздельный туннель перечисляет более узкие назначения, например частную офисную подсеть или один хост. Шифруется к пиру только трафик, который и попал в интерфейс WireGuard, и совпал с префиксом. Имена приложений не записываются в AllowedIPs: исключения по программам требуют политики системы или клиента за пределами поля.

В системе с двумя стеками оба семейства обрабатываются намеренно. Значение IPv4 по умолчанию не соответствует IPv6. Если политика должна защищать оба, потребуются согласованные ассоциации пиров и маршруты обоих семейств. Если IPv6 оставляют снаружи, это должно быть явным решением раздельного туннеля, а не случайным пропуском.

Сравнение протоколов VPN помогает поместить эти механизмы рядом с другими архитектурами. Само поле остаётся списком сетевых префиксов, а не пользовательской командой «все приложения» или «только браузер».

AllowedIPs и системная таблица маршрутов

До выбора пира операционная система обычно решает, какой интерфейс получит пакет. Системный маршрут может направить 10.0.1.0/24 в wg0. Лишь после прибытия в wg0 поиск WireGuard по AllowedIPs выбирает криптографического пира. Если системный маршрут ведёт в другое место, WireGuard не увидит пакет, хотя его таблица содержит идеальное совпадение.

Помощник wg-quick(8) намеренно упрощает связь: он выводит маршруты из AllowedIPs всех пиров, добавляет их в систему и отдельно обрабатывает маршрут по умолчанию.[3] Это поведение помощника, а не доказательство, что каждый инструмент WireGuard устанавливает те же записи. wg, NetworkManager, мобильный клиент и собственный сценарий могут по-разному управлять окружающей маршрутизацией.

Разделение создаёт четыре распространённых состояния:

  1. Системный маршрут и AllowedIPs совпадают: пакет может достичь выбранного пира.
  2. Системного маршрута нет: пакет уходит через другой интерфейс до решения WireGuard.
  3. Маршрут привёл пакет в WireGuard, но префикс пира отсутствует: выбрать пира невозможно.
  4. Оба поиска верны, но Endpoint недоступен: выбор и шифрование успешны, внешняя доставка — нет.

Руководство по Endpoint рассматривает последнее внешнее назначение. Если принять Endpoint за маршрут или без понимания внутренней политики добавить публичный адрес сервера в AllowedIPs, можно создать петлю либо непреднамеренно перехватить трафик.

Входное разрешение не является универсальным экраном

После аутентификации и расшифровки WireGuard проверяет принадлежность внутреннего источника к AllowedIPs отправляющего пира. Так один настроенный пир не может выдать себя за внутренний адрес, назначенный другому. Пир удалённого пользователя, ограниченный 10.0.0.7/32, не внедрит через эту ассоциацию расшифрованный пакет с заявленным источником 10.0.0.8.

Проверка сильна, но узка. Она не анализирует TCP-порты, личности приложений, пользователей, время суток, состояние соединений, доменные имена или право службы принять пакет. Такие правила применяет межсетевой экран хоста или сети. Проверка также не включает автоматически пересылку IP между интерфейсами.

Это не политика DNS. Резолвер может вернуть адрес внутри или вне префикса, но AllowedIPs не выбирает резолвер и не защищает запрос, который система отправила через другой интерфейс. DNS и маршруты проверяются отдельно.

Многие правят AllowedIPs ради одного решения: пускать ли через туннель весь трафик или оставить локальные адреса напрямую. Если цель только в этом, AethoVPN сводит выбор к одному переключателю вместо списка префиксов. Включённый глобальный режим ведёт трафик всех приложений через зашифрованный туннель — тот же итог, что и в примере полного туннеля выше; выключенный пропускает запросы к сайтам вашего региона мимо ретранслятора. Переключите режим и подтвердите реальный путь проверкой IP или маршрута. Начните бесплатный 3-дневный пробный период, чтобы сравнить оба состояния. Правила для отдельных приложений или префиксов по-прежнему требуют собственного пира WireGuard.

Как диагностировать ошибку AllowedIPs?

Возьмите одно внутреннее назначение и пройдите уровни по очереди. Сначала найдите победивший системный маршрут и подтвердите ожидаемый интерфейс. Затем определите самое длинное совпадение AllowedIPs среди пиров. Только после выбора проверяйте Endpoint, последнее рукопожатие, счётчики и обратный путь.

Для входящей проблемы исследуйте предполагаемый внутренний источник расшифрованного пакета и ассоциацию пира на принимающем интерфейсе. Не «чините» симптом добавлением 0.0.0.0/0 каждому пиру. Слишком широкая запись перехватит исходящие назначения и расширит диапазон источников, которые пир вправе заявлять.

Используйте подконтрольные тестовые префиксы и записывайте оба семейства адресов. Успешный ping доказывает лишь один узкий двусторонний случай, но не все маршруты, программы, DNS и правила экрана. Если отказало одно назначение, сначала сравните его самый длинный префикс с рабочим, а не меняйте ключи и таймер keepalive.

Почему обратный путь тоже должен совпасть

Доставка запроса в нужный пир — только половина обмена. У удалённой системы должен существовать маршрут к внутреннему источнику ответа, а её собственное правило AllowedIPs должно выбрать и разрешить ожидаемого пира. Асимметричная конфигурация может передать запрос, но потерять ответ на другом интерфейсе.

Проверяйте направление отдельно: назначение исходного пакета, источник расшифрованного входящего пакета, затем обратное назначение ответа. Одинаковые слова в конфигурациях двух сторон не гарантируют одинаковые таблицы системы. Сравнивайте фактические маршруты и счётчики.

Итоги

  • AllowedIPs связывает внутренние IP-префиксы с пирами открытых ключей WireGuard.
  • Исходящий поиск выбирает пира по самому длинному префиксу назначения.
  • Входящий поиск разрешает адрес источника расшифрованного пакета для этого пира.
  • Системный маршрут сначала решает, попадёт ли пакет в интерфейс WireGuard.
  • wg-quick может установить маршруты из списка, но это отдельный уровень помощника.

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

Означает ли AllowedIPs адреса, которым разрешено использовать VPN?

Не совсем. Поле выбирает исходящего пира по внутреннему назначению и разрешает внутренние источники аутентифицированных входных пакетов. Доступ пользователей и служб требует других правил.

Что означает 0.0.0.0/0 в AllowedIPs?

Префикс совпадает со всеми IPv4-адресами и может сделать пира выбором IPv4 по умолчанию. Системе всё равно нужны согласованные маршруты, а IPv6 обрабатывается отдельно.

Включает ли ::/0 адреса IPv4?

Нет. Это префикс по умолчанию для IPv6. Полный туннель с двумя стеками обычно рассматривает и 0.0.0.0/0, и ::/0.

Могут ли префиксы AllowedIPs пересекаться?

Да, если разная длина создаёт намеренный выбор самого длинного префикса. Для исходящего назначения побеждает более конкретное совпадение.

Является ли AllowedIPs межсетевым экраном?

Он проверяет префикс источника аутентифицированного входящего пакета WireGuard, но не заменяет общий экран для портов, приложений, пользователей и состояния соединений.

Меняет ли AllowedIPs значение Endpoint?

Нет. AllowedIPs относится к внутренним префиксам и выбору пира. Endpoint — внешний адрес либо имя и UDP-порт для достижения этого пира.

Почему wg-quick добавляет маршруты из AllowedIPs?

wg-quick выводит системные маршруты из префиксов для удобства. Это документированное поведение помощника, а таблица пиров WireGuard концептуально остаётся отдельной.

Источники:

  1. WireGuard Tools, wg(8): https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8
  2. WireGuard, “WireGuard: Next Generation Kernel Network Tunnel”: https://www.wireguard.com/papers/wireguard.pdf
  3. WireGuard Tools, wg-quick(8): https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8

Sources checked 12 сентября 2026 г.


Рекомендуемые статьи:

Начните бесплатный 3-дневный пробный период

Зарегистрируйтесь и попробуйте все премиум-функции бесплатно.

*Только для новых пользователей. Один пробный период на пользователя.

Что означает AllowedIPs в WireGuard? | AethoVPN