WireGuard по-прежнему использует старую конечную точку после изменений DNS
Имя разрешается в новый адрес, а интерфейс продолжает использовать тот, который получил при запуске. Сравните оба и затем перезапустите через его менеджер.
Туннель перестал пропускать трафик после того, как запись DNS сервера сместилась, а имя разрешается правильно с той же машины. Эти два факта не противоречат друг другу. Конфигурация WireGuard содержит конечную точку, а инструмент разрешает имя в момент применения этой конфигурации, поэтому работающий интерфейс может продолжать использовать адрес, полученный несколько часов назад. Проверьте, что использует интерфейс, прежде чем заменять ключи или трогать диапазон туннеля.
Имя разрешается один раз, а не постоянно
Базовая конфигурация WireGuard принимает конечную точку как адрес и порт, а инструмент, поднимающий интерфейс, разрешает имя хоста в этот момент. Ничто в базовом протоколе не опрашивает DNS по расписанию, и клиентское приложение может добавить сверху собственное поведение обновления. Запись разрешённого адреса, семейства и порта рядом с именем делает этот разрыв видимым. Без такой записи конфигурация выглядит правильной, пока интерфейс разговаривает с чем-то другим.
Есть одно настоящее автоматическое обновление, и о нём стоит знать, потому что оно похоже на обновление DNS, не будучи им. Конечная точка партнёра может сместиться, когда правильно аутентифицированный трафик приходит с нового адреса, что является роумингом, а не разрешением имён. Он следует за партнёром, поэтому не может обнаружить несвязанный новый сервер, с которым старая конечная точка никогда не связывалась.
Сравните запись с используемым адресом
Запросите документированное имя через резолвер, который использует клиент, затем спросите интерфейс, какую конечную точку он держит. Два ответа и есть сравнение, которое решает остаток этой страницы:
dig +short vpn.example.net
wg show wg0 endpoints
wg show wg0 latest-handshakes
Руководство wg(8) описывает подкоманды show, которые используют эти строки. Сравните также семейство адресов, а не только адрес, потому что запись, получившая запись IPv6, — это другое сравнение, чем та, у которой изменился адрес IPv4. Если конечная точка отличается от записи, интерфейс работает с устаревшей информацией, и имя никогда не было проблемой. Если они совпадают, а туннель всё равно не работает, перейдите к слушателю и правилам, а не к профилю.
Временная метка рукопожатия находится в этом блоке, потому что одна конечная точка не говорит, достижим ли партнёр. Устаревшая метка рядом с правильной конечной точкой — это проблема пути, а не разрешения, и это различие меняет то, чего вы коснётесь дальше.
Перезапустите через менеджер интерфейса
После того как конечная точка подтверждена как устаревшая, обновите её через механизм, которому принадлежит интерфейс, а не редактируйте работающую конфигурацию. Для интерфейса, запущенного wg-quick, это опускание и поднятие, для юнита systemd это перезапуск, а для интерфейса, принадлежащего менеджеру, это изменение, сделанное в этом менеджере, потому что правка на ходу перезаписывается при следующем применении:
wg-quick down wg0 && wg-quick up wg0
systemctl restart wg-quick@wg0
Затем подтвердите, что заменяющий слушатель и его идентичность — это та служба, которую вы имели в виду. Перемещение DNS не является сменой идентичности, поэтому оно никогда не должно быть поводом доверять ключу, который вы не проверили. Если интерфейс теперь сообщает новый адрес и всё ещё не даёт рукопожатия, неисправность перешла на новый сетевой путь или слушатель, и это прогресс, а не та же неисправность дважды.
Сначала рукопожатие, затем путь данных
Разделите два исхода, прежде чем выбирать контрольный список. Рукопожатие, которое удаётся при отказывающем приложении, — это проблема пути данных: маршруты, разрешённые префиксы или DNS внутри туннеля. Рукопожатие, которого никогда не происходит, — это проблема доступности или идентичности на конечной точке. Смешивание двух даёт отчёт, который никто не может воспроизвести, и журнал изменений с тремя несвязанными правками.
Запишите имя, разрешённый адрес, используемую конечную точку и то, завершилось ли рукопожатие. Эти четыре факта отвечают на вопрос, который эта неисправность задаёт постоянно, и превращают следующий случай в двухминутную проверку. Обслуживание имён и внедрение у клиентов остаются отдельными задачами: исправление записи не выполняет внедрение, а перезапуск интерфейса не исправляет запись, которая всё ещё неверна.