WireGuard и приватный DNS 1.1.1.1: настройка
Пошаговая инструкция по настройке WireGuard с DNS-сервером 1.1.1.1 от Cloudflare: как прописать DNS, настроить маршрутизацию и проверить отсутствие утечек.
Содержание
WireGuard — это современный VPN-протокол, который обеспечивает быстрый и безопасный туннель. Однако даже при использовании VPN ваши DNS-запросы могут «утекать» — то есть отправляться через обычный канал провайдера. Это сводит на нет приватность и может привести к блокировкам. Один из лучших способов избежать этого — настроить WireGuard с приватным DNS (например, 1.1.1.1 от Cloudflare). В этой статье — конкретные шаги, как это сделать на сервере и клиенте.
Зачем нужен приватный DNS в WireGuard?
Когда вы используете WireGuard, ваш трафик проходит через туннель, но операционная система по-прежнему может использовать DNS-серверы, выданные провайдером. Это означает, что сайты вы открываете через VPN, но запросы к их IP-адресам (DNS) видны вашему провайдеру. Приватный DNS решает эту проблему: вы указываете в конфигурации WireGuard адрес доверенного DNS-сервера, например 1.1.1.1. Cloudflare гарантирует отсутствие логов и поддержку современных протоколов шифрования, что дополнительно защищает ваши запросы.
Что понадобится для настройки
Прежде чем приступить, убедитесь, что у вас есть:
- установленный WireGuard (проверьте версию командой
wg --version— актуальная для вашей ОС может отличаться, проверьте официальную документацию); - права администратора на сервере и клиенте;
- базовые файлы конфигурации — как минимум
wg0.confили аналогичный; - понимание, где находится конфигурационный файл на вашей платформе (например,
/etc/wireguard/на Linux,C:\Program Files\WireGuard\на Windows).
Все команды ниже нужно выполнять в терминале от имени пользователя с соответствующими правами.
Настройка DNS на сервере WireGuard
Если вы управляете сервером WireGuard (то есть тем узлом, через который идёт трафик), впишите DNS-сервер прямо в секцию [Interface] серверного конфига. Это даст клиентам автоматическую инструкцию использовать нужный DNS.
[Interface]
Address = 10.0.0.1/24
PrivateKey = <приватный ключ сервера>
ListenPort = 51820
DNS = 1.1.1.1, 1.0.0.1
Обратите внимание: строку DNS нужно добавить рядом с Address. В некоторых версиях WireGuard (проверьте для своей версии) параметр может называться иначе, но обычно это именно DNS. После изменения сохраните файл и перезапустите туннель: sudo systemctl restart wg-quick@wg0 (на системах с systemd).
Настройка DNS на клиенте
На клиенте (вашем компьютере или телефоне) также нужно указать DNS. Если сервер настроен как выше, некоторые клиенты подхватят DNS автоматически. Но для надёжности пропишите DNS явно в клиентском конфиге, в секции [Peer] или [Interface] — зависит от реализации. Например:
[Interface]
PrivateKey = <приватный ключ клиента>
Address = 10.0.0.2/24
DNS = 1.1.1.1
[Peer]
PublicKey = <публичный ключ сервера>
Endpoint = vpn.example.com:51820
AllowedIPs = 0.0.0.0/0, ::/0
Здесь важны два момента. Во-первых, AllowedIPs = 0.0.0.0/0 включает маршрутизацию всего трафика через туннель, включая DNS-запросы. Если вы хотите отправлять через VPN только DNS, можно сузить до IP-адреса сервера и адреса DNS — но это редкость. Во-вторых, строка DNS гарантирует, что ваша система будет использовать именно 1.1.1.1 для резолвинга.
После правки конфига перезапустите WireGuard. На Linux: sudo wg-quick down wg0 && sudo wg-quick up wg0. В Windows просто переключите туннель в приложении. На Android/iOS отредактируйте туннель и перезапустите его.
Проверка подключения и утечек DNS
Чтобы убедиться, что DNS-запросы идут через WireGuard и используют 1.1.1.1, выполните несколько простых команд (команды могут отличаться в зависимости от ОС — проверьте для своей версии):
- Убедитесь, что туннель активен:
wg show. - Проверьте, какой DNS сейчас используется: на Linux
resolvectl statusилиcat /etc/resolv.conf. - Сделайте DNS-запрос к конкретному серверу:
dig @1.1.1.1 example.com(илиnslookup example.com 1.1.1.1). Если он успешно резолвится, значит доступ до DNS работает. - Проверьте утечки через внешний сервис: откройте в браузере сайт типа
ipleak.netилиdnsleaktest.comи посмотрите, какие DNS-серверы видны снаружи. Если там не 1.1.1.1 — значит запросы уходят мимо туннеля.
Если утечки обнаружены, проверьте, что AllowedIPs включает маршрут к 1.1.1.1 (обычно это 0.0.0.0/0) и что в файле конфигурации нет опечаток. Также на некоторых системах нужно отключить другие DNS-демоны (systemd-resolved, resolvconf) или настроить их правильно — но это выходит за рамки статьи.
Типичные ошибки и их устранение
Настройка DNS в WireGuard может подкинуть несколько сюрпризов. Вот что чаще всего идёт не так, и как это исправить:
- DNS не меняется после включения туннеля. Проверьте, что в конфиге есть строка
DNSи что вы перезапустили туннель. В некоторых системах нужно вручную изменить файл/etc/resolv.conf— но лучше использовать штатные механизмы. - DNS-запросы идут через провайдера. Это происходит, когда
AllowedIPsне включает IP-адрес DNS-сервера. Убедитесь, что у вас0.0.0.0/0или добавьте отдельный маршрут1.1.1.1/32. - Конфликт с systemd-resolved. Если у вас Ubuntu с systemd, WireGuard может не переключить DNS автоматически. Решение — использовать
DNS = 1.1.1.1и настройкиPostUp, либо отключитьsystemd-resolvedи вручную редактироватьresolv.conf(проверьте для вашей версии). - Не работает доступ к локальной сети. Если вы добавили
AllowedIPs = 0.0.0.0/0, весь трафик пойдёт через VPN, и локальные ресурсы в вашей офисной сети перестанут открываться. Добавьте исключения вAllowedIPs, например192.168.1.0/24, либо разделите туннели.
Следуя этим рекомендациям, вы сможете настроить приватный DNS в WireGuard и избавиться от утечек. Помните, что конфигурации могут отличаться в зависимости от вашей версии WireGuard и операционной системы — всегда сверяйтесь с документацией к вашему дистрибутиву.
Мини-чеклист
- Строка DNS = 1.1.1.1 прописана в секции [Interface] и на сервере, и на клиенте.
- AllowedIPs на клиенте включает 0.0.0.0/0 или отдельный маршрут к 1.1.1.1/32.
- Туннель перезапущен после изменения конфигурации (wg-quick down/up или эквивалент).
- Проверено отсутствие утечек DNS через dnsleaktest.com или ipleak.net.
Частые ошибки
- Забывают добавить DNS в конфигурацию — система продолжает использовать DNS провайдера.
- Указывают DNS, но не обновляют AllowedIPs — запросы к 1.1.1.1 идут в обход туннеля.
- Не перезапускают туннель — изменения в конфиге не применяются.
- Игнорируют конфликт с systemd-resolved, что приводит к сбою резолвинга (особенно на Ubuntu).
Источники и документация
FAQ
Что такое приватный DNS и почему 1.1.1.1 считается приватным?
Приватный DNS — это сервер, который не ведёт логи запросов и поддерживает шифрование (DoH или DoT). 1.1.1.1 от Cloudflare гарантирует удаление логов в течение 24 часов и не передаёт данные третьим лицам, поэтому он считается приватным. Настройка его в WireGuard защищает ваши DNS-запросы от перехвата.
Можно ли использовать 1.0.0.1 вместо 1.1.1.1?
Да, 1.0.0.1 — это второй DNS-сервер Cloudflare с аналогичными свойствами. Вы можете указать оба адреса через запятую (DNS = 1.1.1.1, 1.0.0.1) для резерва.
Перестанет ли работать интернет, если я укажу DNS в WireGuard?
Если конфигурация настроена корректно (включая AllowedIPs), интернет продолжит работать, но все DNS-запросы будут идти через 1.1.1.1. Сбои обычно возникают из-за ошибок в маршрутизации или конфликтов с системными DNS-сервисами.
Нужно ли настраивать DNS на обоих концах (сервер и клиент)?
Оптимально указать DNS и в серверном, и в клиентском конфиге. Серверная настройка автоматически передаёт DNS некоторым клиентам, но клиентская — гарантирует, что именно ваше устройство использует нужный адрес, даже если серверной директивы не хватает.
Хотите перейти сразу к рабочему доступу?
Если сценарий уже ясен и не хочется проходить все шаги вручную, оформите доступ и проверьте подключение на своем устройстве.
Получить доступ