Большинство собранных вручную сбоев WireGuard сводятся к тому, какой ключ куда попал. В разделе интерфейса хранится закрытый ключ устройства, которое вы настраиваете, а в разделе партнёра — открытый ключ машины на другом конце. Перепутать эти половины или вставить не ту — значит получить рукопожатие, которое никогда не завершится, и журнал, который никогда не назовёт ключ. Выполните четыре проверки ниже по порядку, прежде чем трогать AllowedIPs или DNS.

Два ключа, два направления

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

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

wg show
wg show interfaces

Первый вывод перечисляет каждого партнёра с его открытым ключом, последней использованной конечной точкой и возрастом последнего рукопожатия. Возраст рукопожатия «никогда» с одной стороны и недавний с другой указывают на ключ, который принял только один конец. Вторая команда называет интерфейсы, которые можно изучить дальше.

Что передавать и что не передавать никогда

Открытый ключ предназначен для передачи, хотя он всё ещё идентифицирует связь устройств, поэтому отправить его запросившему администратору — не то же самое, что опубликовать. Закрытый ключ никогда не покидает устройство, которое его создало. Экспортированный профиль или QR-код содержит всю конфигурацию, включая этот закрытый ключ, поэтому ни то, ни другое небезопасно передавать, а спрятать текст внутри изображения ничего не меняет. Предварительно общие ключи необязательны и так же секретны, и оба конца должны иметь одно и то же значение, иначе рукопожатие останавливается на этом этапе.

Ещё одно различие стоит сказать прямо: конечная точка — это адрес и порт, никогда не ключ. Вставка открытого ключа в поле конечной точки или адреса в поле ключа даёт профиль, который разбирается и затем ничего не делает. Инструменты этого не поймают, потому что оба поля — просто строки. Быстрый старт WireGuard показывает цепочку создания и вывода в одной строке.

Одно устройство, одна запись партнёра

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

Держите соответствие устройства и открытого ключа рядом со списком адресов. Именно этот список превращает отзыв в задачу на две минуты, а не на целый день.

Что всё ещё ломается после рукопожатия

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

What you seeWhich key problem it usually meansWhere to look first
Handshake age stays at never on both endsPeer public key missing, or an endpoint pointing at nothingwg show, then the endpoint value
Handshake completes on one side onlyThe two ends hold different public keys for each otherwg show on both hosts
Handshake works, then no trafficAllowedIPs or routes rather than keyswg show and the route table
Worked until a key was regeneratedThe peer entry still holds the old public keyCompare both public keys, then update the peer

DNS может отказать после того, как оба партнёра успешно прошли проверку подлинности, а приложение может сломаться при здоровом туннеле, поэтому работающее рукопожатие — не конец диагностики. Ключи также ничего не говорят о практике журналирования оператора или о том, узнаёт ли сайт вашу учётную запись, и эти вопросы относятся к другому месту. Переходите к сетевым уровням, когда четыре проверки пройдены, потому что отсутствующий ключ — не замаскированная проблема маршрутизации.

Похожие статьи