Начните бесплатный 3-дневный пробный период
Зарегистрируйтесь и попробуйте все премиум-функции бесплатно.
*Только для новых пользователей. Один пробный период на пользователя.


Роуминг в WireGuard сохраняет личность пира по открытому ключу, разрешая изменять внешний IP-адрес и UDP-порт. Когда из нового адреса или порта приходит правильно аутентифицированный пакет, WireGuard обновляет текущий Endpoint этого пира и отправляет следующие пакеты в новое место. Отдельное неаутентифицированное сообщение «я переместился» не считается достоверным.
Полное руководство по VPN описывает защищённое соединение целиком. Здесь мы рассматриваем только протокольное обновление Endpoint, а не каждое событие операционной системы или приложения при смене сети.
Ключевые выводы
- Открытый ключ идентифицирует пира, а Endpoint хранит его текущее достижимое местоположение.
- Последний правильно аутентифицированный пакет может обновить внешний IP-адрес и UDP-порт пира.
- После перемещения роуминговый пир обычно должен первым отправить действительный пакет по новому пути.
- Состояние NAT и необязательный PersistentKeepalive влияют на доступность, но не определяют личность и не гарантируют восстановление.
- Восстановившийся туннель не обещает, что каждый TCP-, медиасеанс, DNS-запрос или приложение продолжит работу без изменения.
Руководство wg(8) говорит, что настроенный Endpoint автоматически обновляется до исходного IP-адреса и порта последнего правильно аутентифицированного пакета от соответствующего пира.[1] Открытый ключ при этом не меняется. Криптографическая личность отделяется от временного сетевого местоположения.
Телефон в домашней Wi-Fi-сети может быть виден серверу как 198.51.100.7:42310. После перехода на мобильную сеть NAT оператора может представить его как 203.0.113.9:51124. Когда телефон отправит действительный пакет WireGuard по мобильному пути, сервер аутентифицирует того же пира и заменит старый Endpoint новой парой.
Внутренний туннельный адрес вроде 10.0.0.7 тоже способен остаться неизменным при изменении внешнего. Приложения могут продолжать обращаться к тому же внутреннему пиру. Сохранится ли их фактический сеанс, зависит от времени перехода, поведения операционной системы и транспортных протоколов вне обновления Endpoint.
| Свойство | Поведение при обычном роуминге |
|---|---|
| Открытый ключ пира | Не меняется |
| Внешний IP и порт источника | Могут измениться |
| Сохранённый Endpoint | Обновляется после действительного пакета |
| Внутренний адрес туннеля | Обычно остаётся прежним |
| Доступность системного маршрута | Всё ещё необходима |
| Сеанс приложения | Может продолжиться, повториться или отдельно завершиться |
Техническое описание WireGuard объясняет, что пир узнаёт последний интернет-Endpoint из аутентифицированных данных.[2] Новый источник должен пройти проверку до принятия. Случайный UDP-пакет к прослушиваемому порту не способен присвоить личность другого пира или перенаправить его открытый текст.
Обозначения на схеме: 1 — старый внешний адрес пира; 2 — новый внешний адрес после смены сети; 3 — Endpoint, который помнит удалённый пир; 4 — правильно аутентифицированный UDP-пакет, вызывающий обновление. Пунктирный старый путь устарел; сплошной новый становится рабочим после доставки действительного трафика.
Перемещающаяся сторона обычно отправляет первой, поскольку у неё остаётся рабочее местоположение сервера. Удалённый клиент может хранить стабильное имя или публичный адрес сервера как настроенный Endpoint. Когда локальная сеть меняется, следующая инициация либо пакет данных выходит через новый интерфейс и создаёт новое отображение NAT. Сервер проверяет пакет, узнаёт отображение и отвечает туда.
Руководство по Endpoint показывает, почему Endpoint — внешний адрес:UDP-порт, а не туннельный адрес. Роуминг изменяет это рабочее назначение, не редактируя связь с открытым ключом.
Его может создать трафик приложения или повтор рукопожатия. Необязательный keepalive также производит аутентифицированный трафик после интервала простоя. Протоколу не требуется доверять особому уведомлению операционной системы о смене сети как доказательству положения пира.
Время имеет значение. Если мобильная система приостанавливает процесс VPN, задерживает уведомление интерфейса или ждёт перед повтором, удалённый пир продолжит помнить старый Endpoint, пока не увидит действительный трафик из нового места. Правило обучения WireGuard не может примениться к пакету, который устройство ещё не отправило.
NAT создаёт временные отображения внешних адресов и портов. Смена сети доступа обычно создаёт другую пару, хотя внутренний туннельный адрес устройства не меняется. Первый исходящий пакет WireGuard на новом пути даёт удалённому пиру аутентифицированное наблюдение этого отображения.
У PersistentKeepalive более узкая роль. Пир за NAT может периодически отправлять аутентифицированный пустой пакет, чтобы текущее отображение не истекло во время тишины. Разбор PersistentKeepalive объясняет, почему 25 секунд — пример, а не гарантия роуминга.
Keepalive способен помочь около перехода двумя способами: использовать новый путь при отсутствии данных приложения и сохранить новое отображение уже после обновления. Он не заставит сеть пропускать заблокированный UDP, не разбудит бесконечно приостановленный процесс, не исправит ошибочный маршрут и не подменит верные ключи.
Если оба пира одновременно переместились и ни у одного нет достижимого адреса другого, возникает проблема начальной связи. Аутентифицированный пакет обновляет местоположение, только если сначала достигнет пира. WireGuard не предоставляет универсальную службу встречи или обнаружения, которая найдёт два неизвестных новых адреса.
Протокольный роуминг не решает, какой локальный интерфейс система должна использовать после исчезновения Wi-Fi. Система обязана обновить маршрут по умолчанию, обеспечить работу новой сети и передать нужные внутренние пакеты WireGuard. Страница обязательной авторизации, тариф без данных, изменение IPv4/IPv6 и локальный межсетевой экран могут остановить этот этап.
Помощник wg-quick(8) способен устанавливать маршруты, выведенные из AllowedIPs, и управлять маршрутом по умолчанию.[3] Это отличается от обучения Endpoint. Верное обновление пира не компенсирует устаревший системный маршрут, а правильный маршрут не аутентифицирует пира.
Для диагностики полезна последовательность:
Общие симптомы на шагах 1 и 2 разбирает руководство по переходу между Wi-Fi и мобильной сетью. Если назвать каждый отказ при смене сети проблемой роуминга WireGuard, будет непонятно, где остановилась последовательность.
WireGuard может быстро восстановить поток аутентифицированных пакетов, не сохранив каждое соединение верхнего уровня. TCP-сеанс иногда переносит короткую паузу и повторяет сегменты, а иногда достигает тайм-аута приложения. Голосовой вызов может заново согласовать медиа. DNS-запрос повторяется по новому пути, а браузер создаёт другое соединение.
Стабильный внутренний адрес помогает, поскольку пакет приложения не обязательно видит смену публичного внешнего адреса. Но локальная система может удалить маршруты, приостановить сокеты или сообщить о переходе. Удалённая служба тоже может закрыть сеанс во время паузы. «Время последнего рукопожатия обновилось» и «видеозвонок ничего не заметил» — разные критерии.
Измеряйте их отдельно. Для туннеля запишите рукопожатие, счётчики передачи и удалённый Endpoint до и после перехода. Для приложения отметьте продолжение, повтор или новый сеанс. Так политика приложения не будет ошибочно приписана правилу обучения Endpoint.
Чтобы увидеть роуминг со стороны пользователя, подключите AethoVPN на телефоне Android, запустите длительное скачивание или звонок, затем переключитесь с Wi-Fi на мобильные данные и запишите, переподключается ли туннель, сколько длится перерыв и сохранился ли сеанс приложения. Оставьте в приложении ту же локацию, чтобы менялась только сеть. Приложение не документирует ручные поля WireGuard и не обещает, что каждый сеанс переживёт смену сети, поэтому считайте каждый результат измерением, а не гарантией. Скачайте приложение для Android перед проверкой.
Обновление Endpoint зависит от аутентификации, поэтому обычный сторонний отправитель не может произвольно предложить неаутентифицированную замену. При перемещении законного пира шифрование и проверка личности продолжают работать.
Однако документ WireGuard Known Limitations описывает сценарий активного посредника, при котором сохранённый endpoint перенаправляется на адрес жертвы, создавая отказ в обслуживании или нежелательный зашифрованный трафик к этому адресу.[4] Ограничение касается доступности и перенаправления; противник без ключа всё равно не расшифрует содержимое и не выдаст себя за пира.
Нужна точная формулировка. «Endpoint обновляется после аутентифицированного пакета» описывает нормальное правило проверки. Заявление, что обучение адреса вообще невозможно использовать во вред, вышло бы за официальную границу. В модели высокого риска учитывайте актуальную реализацию и операционные меры.
Выполните контролируемый переход между двумя сетями, которые вы вправе тестировать. Не меняйте ключи, конфигурацию пира, сервер и проверяемое приложение. Запишите текущий Endpoint и время рукопожатия, переключите доступ, создайте законный туннельный трафик и посмотрите, сменился ли Endpoint на новое отображение источника.
Отдельно проверьте активный обмен и простой. Если активный трафик переезжает, но молчащий пир позднее недоступен, вероятно истечение NAT. Если новый интерфейс не отправляет пакет, исследуйте маршрут и жизненный цикл процесса. Если UDP выходит без аутентифицированного ответа, проверяйте внешний путь, журналы сервера, ключи, время и фильтрацию.
Не выводите протокольное состояние из одного индикатора загрузки. Обновление Endpoint, рабочий обмен туннеля и полностью непрерывное приложение — три последовательно расширяющиеся проверки.
Нет. Стабильный открытый ключ распознаёт пира. Роуминг обновляет только внешний IP-адрес и UDP-порт для его достижения.
Обычное обучение требует правильно аутентифицированного пакета настроенного пира. Случайный UDP-ввод не проходит проверку личности.
Обычно перемещающийся клиент, потому что помнит достижимый Endpoint сервера. Исходящий пакет создаёт новое отображение NAT и показывает серверу новый источник.
Нет. Обновление может вызвать трафик приложения или рукопожатия. Keepalive нужен только при конкретной необходимости периодического трафика во время простоя.
Если ни один не знает достижимого нового адреса второго, пакет не сможет доставить обновление. В самом WireGuard нет универсальной службы встречи.
Нет. Стабильные внутренние адреса и быстрое восстановление помогают, но у TCP, приложения, системы и удалённой службы независимые тайм-ауты.
Нет. Обучение работает, только когда действительные UDP-пакеты проходят по новому пути. Оно не обходит локальную политику, страницу авторизации, ошибочный маршрут или блокировку транспорта.
Источники:
wg(8): https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8wg-quick(8): https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8Sources checked 12 сентября 2026 г.
Рекомендуемые статьи:
Зарегистрируйтесь и попробуйте все премиум-функции бесплатно.
*Только для новых пользователей. Один пробный период на пользователя.





