WireGuard подключён, но интернета нет – что проверить в AllowedIPs, DNS и маршрутах

WireGuard подключается, но нет интернета? Разбираем AllowedIPs, DNS, NAT и маршрутизацию. Пошаговые проверки и исправление, чтобы восстановить доступ в…

Коротко: Интернет отсутствует из-за того, что трафик клиента не уходит в туннель (неверные AllowedIPs), DNS‑запросы обходят VPN или сервер не делает маскарадинг и не форвардит пакеты. Проверьте эти три узла – и доступ появится.

Если WireGuard подключается, но нет интернета, вы на верном пути – скорее всего, проблема кроется в трёх настройках: AllowedIPs, DNS и маршрутизация с NAT.
Разберём, почему возникает AllowedIPs, какие проверки стоит выполнить сначала и в каком порядке лучше устранять проблему.

Что означает AllowedIPs

Разберём, почему возникает AllowedIPs, какие проверки стоит выполнить сначала и в каком порядке лучше устранять проблему.

Основные причины

Причина Что это значит
AllowedIPs не включает весь трафик Если на клиенте указан только IP‑адрес сервера или конкретная подсеть, пакеты в Интернет идут через локальный шлюз, а не через туннель.
Не настроен DNS внутри туннеля Браузер не может разрешить имена сайтов, потому что DNS‑запросы уходят мимо VPN или на неправильно указанный сервер.
Отсутствует маскарадинг (NAT) на сервере Пакеты из туннеля доходят до сервера, но не маскируются под его внешний IP – обратные пакеты не находят путь к клиенту.
IP‑форвардинг выключен Ядро сервера не пересылает пакеты между интерфейсами (wg0 и eth0), даже при правильном NAT.
Брандмауэр блокирует проброс iptables или nftables по умолчанию запрещают FORWARD‑трафик между зонами, что останавливает выход клиентов в сеть.
Конфликт IP‑адреса клиента с локальной сетью Если туннельный адрес совпадает с подсетью, в которой находится сам сервер, маршрутизация путается и пакеты теряются.
Проблема с MTU Слишком большой MTU туннеля вызывает фрагментацию и потерю пакетов на отдельных ресурсах – сайты не грузятся полностью.

Что проверить сначала

  • Выполните wg show – убедитесь, что handshake состоялся и передаются данные (transfer больше нуля).
  • Откройте конфигурацию клиента и проверьте строку AllowedIPs: должно быть 0.0.0.0/0, а для IPv6 дополнительно ::/0.
  • Проверьте, указан ли DNS в секции [Interface] клиента, или файл /etc/resolv.conf использует сервер провайдера.
  • Сделайте ping 8.8.8.8 с клиента. Если ответ есть, а сайты не открываются – проблема в DNS.
  • Если ping на IP не проходит, проверьте таблицу маршрутов клиента: ip route – дефолтный шлюз должен указывать на wg0.
  • На сервере выполните sysctl net.ipv4.ip_forward; значение должно быть 1. Для IPv6 – net.ipv6.conf.all.forwarding=1.
  • Посмотрите правила маскарадинга: iptables -t nat -L POSTROUTING – должно присутствовать правило с MASQUERADE для выходного интерфейса.
  • Проверьте цепочку FORWARD в iptables – разрешён ли трафик с интерфейса wg0 и обратно.
  • При частичной недоступности сайтов уменьшите MTU в клиентском конфиге до 1280 и перезапустите туннель.
  • Сравните IP клиента в туннеле с локальными подсетями сервера – они не должны пересекаться.

Пошаговое решение

  1. Откройте конфигурационный файл WireGuard на клиенте (обычно /etc/wireguard/wg0.conf или адаптивный путь в Windows).
  2. В секции [Peer] убедитесь, что параметр AllowedIPs равен 0.0.0.0/0. Если нужен IPv6, добавьте через запятую ::/0.
  3. В секции [Interface] пропишите DNS-сервер, например: DNS = 8.8.8.8, 1.1.1.1. Это перенаправит DNS-запросы в туннель.
  4. Сохраните файл и перезапустите туннель командой wg-quick down wg0 && wg-quick up wg0.
  5. Проверьте базовую связность: ping 8.8.8.8. Если пинги идут, но браузер не открывает сайты, переходите к шагу по DNS.
  6. Если пинг не работает, зайдите на сервер и включите IP-форвардинг: sysctl -w net.ipv4.ip_forward=1. Для постоянства добавьте строку в /etc/sysctl.conf.
  7. Настройте маскарадинг. Для iptables выполните: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE (замените eth0 на ваш внешний интерфейс). Для nftables создайте аналогичное правило masquerade.
  8. Разрешите форвардинг пакетов через туннель: iptables -A FORWARD -i wg0 -j ACCEPT и iptables -A FORWARD -o wg0 -j ACCEPT. Если используется nftables, добавьте accept в цепочке forward.
  9. Сохраните правила iptables (iptables-save > /etc/iptables/rules.v4) и убедитесь, что они применяются при загрузке.
  10. Если после этого интернет всё равно нестабилен, откройте клиентский конфиг и в секции [Interface] добавьте MTU = 1280. Перезапустите туннель.
  11. Проверьте, не конфликтует ли клиентский IP (например, 10.0.0.2/24) с подсетью сервера. При необходимости измените адреса туннеля на уникальный неиспользуемый диапазон.
  12. Перезагрузите сервер или перезапустите WireGuard и протестируйте открытие нескольких HTTPS-сайтов.
AI-инструмент

Проверить проблему WireGuard

Введите ошибку, симптом или часть конфигурации: handshake, AllowedIPs, DNS, MTU, Endpoint.

FAQ

Почему после подключения WireGuard нет интернета, хотя рукопожатие в порядке?

Скорее всего, трафик клиента не отправляется в туннель из-за неправильных AllowedIPs, либо DNS-сервер не настроен, либо на сервере отсутствует маскарадинг.

Обязательно ли указывать AllowedIPs = 0.0.0.0/0 на клиенте?

Да, если вы хотите направлять весь интернет-трафик через VPN. Без этого маршрутизироваться будут только подсети, перечисленные в AllowedIPs.

Как проверить, работает ли DNS через WireGuard?

Выполните nslookup google.com с принудительным указанием DNS-сервера туннеля или проверьте resolvectl status. Если ответ приходит, DNS настроен правильно.

После настройки NAT интернет появляется, но некоторые сайты не открываются. Что делать?

Это типичный симптом MTU. Уменьшите MTU в клиентской конфигурации WireGuard до 1280 в секции [Interface] и перезапустите туннель.

Сервер – VPS, интернет-доступ есть, но клиентские устройства не могут выйти в сеть. Почему?

Проверьте IP-форвардинг и наличие правила MASQUERADE на выходном интерфейсе сервера. Без маскарадинга обратный трафик не вернётся клиенту.

Можно ли обойтись без изменения правил брандмауэра?

Нет, iptables или nftables должны явно разрешить форвардинг между интерфейсом wg0 и внешним интерфейсом. Иначе пакеты будут отброшены политикой по умолчанию.

Итог

Проблема «WireGuard подключается, но нет интернета» почти всегда решается настройкой трёх вещей: разрешить весь трафик в AllowedIPs, прописать DNS и включить NAT с форвардингом на сервере. Пройдите по проверкам выше – и туннель начнёт работать как полноправный VPN.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *