Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Сетевое оборудование и VPN

WireGuard подключен, но нет пинга и интернета: настройка AllowedIPs

Обновлено: 27.08.2026 · Официальная документация ↗

Симптомы проблемы

Индикатор WireGuard показывает успешное подключение (зеленый статус, идет отправка байтов Transfer Sent), однако:

  • Ни один внутренний сервер или роутер за VPN не пингуется.
  • При включении туннеля на телефоне или ПК полностью пропадает интернет.
  • Параметр Received (Получено байт) равен 0 или не увеличивается.
Что показывает клиентВ чем реальная причина
Sent: 15 KB, Received: 0 BПакеты уходят с устройства, но сервер их не принимает (неверный Public Key или фаервол блокирует UDP-порт)
Sent: 15 KB, Received: 12 KB, но сайты не грузятсяТуннель работает, но на сервере выключена пересылка пакетов (IP Forwarding) или неверно указан AllowedIPs

Пошаговый чек-лист исправления проблемы

Шаг 1. Проверяем директиву AllowedIPs на клиенте и сервере

Как работает AllowedIPs: Это встроенный белый список маршрутов. Если адрес не входит в AllowedIPs, драйвер WireGuard просто уничтожит пакет на выходе!

  • На стороне клиента (клиентский файл): если вы хотите пустить весь интернет через VPN, должно быть строго: AllowedIPs = 0.0.0.0/0, ::/0. Если только доступ к локалке: AllowedIPs = 10.0.0.0/24, 192.168.1.0/24.
  • На стороне сервера (wg0.conf): у каждого пира в AllowedIPs должен быть указан только его личный IP с маской /32: AllowedIPs = 10.0.0.2/32. Ни в коем случае не ставьте на сервере 0.0.0.0/0 для клиента!

Шаг 2. Включаем пересылку трафика ядра Linux (IP Forwarding)

По умолчанию Linux запрещает пересылать транзитные пакеты между сетевыми интерфейсами. Включите маршрутизацию:

# Проверяем статус (если 0 — маршрутизация выключена):
sysctl net.ipv4.ip_forward

# Включаем на лету:
sudo sysctl -w net.ipv4.ip_forward=1

# Закрепляем навсегда в системе:
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Шаг 3. Настраиваем маскарадинг (NAT) в iptables на сервере

Сервер должен заменять внутренний IP-адрес VPN на свой публичный адрес при выходе в интернет. Добавьте правила в блок [Interface] файла /etc/wireguard/wg0.conf:

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

(Внимание: замените eth0 на имя вашего реального сетевого интерфейса, которое можно узнать командой ip a).

Шаг 4. Проверяем открытость UDP-порта в фаерволе сервера

# Открываем порт WireGuard в фаерволе UFW:
sudo ufw allow 51820/udp
sudo ufw reload
💡 Практика специалистов: Если значение 'latest handshake' в выводе команды 'sudo wg' отсутствует или превышает 2 минуты, значит клиент и сервер не могут связаться. В 95% случаев виновен фаервол хостинга (Security Groups в AWS/Hetzner) или блокировка UDP провайдером.

Частые вопросы (FAQ)

Почему WireGuard всегда показывает 'Подключено', даже если сервер выключен?

WireGuard работает по протоколу UDP и не имеет постоянной сессии рукопожатия (connectionless). Зеленая иконка в клиенте означает лишь то, что локальный сетевой драйвер активирован на вашем ПК.

Что делать, если пинги идут только по IP-адресам, а имена сайтов (ya.ru) не открываются?

Проблема в DNS-сервере. В конфигурации клиента в секции [Interface] явно укажите публичный надежный DNS: DNS = 1.1.1.1, 8.8.8.8.

Почему при включении WireGuard отключается локальный принтер?

Если на клиенте стоит AllowedIPs = 0.0.0.0/0, трафик до домашней подсети перенаправляется в туннель. В клиенте Windows/macOS поставьте галочку 'Block untunneled traffic' в положение ВЫКЛ или исключите локальную подсеть.

Как посмотреть статус подключенных клиентов в реальном времени?

Выполните на сервере команду: sudo wg show. Она покажет время последнего рукопожатия (latest handshake) и переданные мегабайты по каждому пиру.

Полезные материалы
Рекомендуем