Сети

WireGuard: 6 пингов и отсутствие соединения – как исправить

WireGuard отправляет ровно 6 пингов и не устанавливает соединение. Узнайте, как исправить подсеть, маршруты, IP‑форвардинг и брандмауэр, чтобы подключиться к локальной сети колледжа через VPS.

WireGuard отправляет ровно 6 пингов и не устанавливает соединение: как исправить?
Я пытаюсь подключиться к локальной сети колледжа из дома через VPS и WireGuard. После настройки wg0.conf я получаю только шесть пингов, и соединение не устанавливается. Преподаватель указал, что в сети уже есть WireGuard. Я пробовал разные IP и порты, но ничего не помогает. Вот мой конфиг:

[Interface]
PrivateKey = wLX45LJFI14qJ56pviLjyzhv1G9aHpjumeWuFZ6hoWk=
Address = 10.80.0.2/32
ListenPort = 51820

[Peer]
PublicKey = VP7+ViG15/lxwgdAmB+z5o0L2oYwoQ26g8qV1a/RATc=
AllowedIPs = 10.80.0.1/24

Что делать?

WireGuard отправляет ровно 6 пингов и не устанавливает соединение: как исправить?
Проблема обычно возникает из‑за неправильной подсети, отсутствия маршрута, отключённого IP‑форвардинга или блокировки пакетов брандмауэром. Ниже – пошаговый план диагностики и исправления.


Содержание


Проверка конфигурации WireGuard

В первую очередь стоит проверить несколько ключевых пунктов:

  1. Адресация
    В конфиге указано Address = 10.80.0.2/32.

    • /32 означает, что узел видит только собственный IP, а не сеть.
      Для туннеля, который должен подключить локальную сеть колледжа (10.80.0.0/24), адрес должен быть /24.
    ini
    Address = 10.80.0.2/24
    
  2. AllowedIPs
    В секции [Peer] стоит AllowedIPs = 10.80.0.1/24.
    Это ограничивает трафик только до адреса 10.80.0.1, а не всей сети.
    Нужно разрешить весь диапазон, который хотите пробросить:

    ini
    AllowedIPs = 10.80.0.0/24
    
  3. Endpoint
    Для клиента необходимо указать точку подключения к серверу (IP‑адрес VPS и порт).
    Без этого клиент не знает, куда отправлять пакеты.

    ini
    Endpoint = <IP_сервера>:51820
    
  4. PersistentKeepalive
    На клиенте полезно включить PersistentKeepalive = 25, чтобы туннель не закрывался из‑за NAT‑timeout.

    ini
    PersistentKeepalive = 25
    
  5. Сервер
    На стороне VPS в конфиге [Peer] должен содержать ваш публичный ключ и AllowedIPs = 10.80.0.0/24 (или 0.0.0.0/0, если хотите пробросить весь трафик).


Настройка сетевых параметров ОС

  1. IP‑форвардинг
    Убедитесь, что включён пересылка пакетов:

    bash
    sudo sysctl -w net.ipv4.ip_forward=1
    sudo sysctl -w net.ipv6.conf.all.forwarding=1
    

    Добавьте в /etc/sysctl.conf:

    net.ipv4.ip_forward=1
    net.ipv6.conf.all.forwarding=1
    
  2. MTU
    По умолчанию MTU 1420 может не подходить. Попробуйте 1400:

    ini
    MTU = 1400
    

Проверка и настройка брандмауэра

  1. Порты
    Убедитесь, что порт 51820/UDP открыт на VPS и на клиенте.

    bash
    sudo ufw allow 51820/udp
    
  2. Правила маршрутизации
    На сервере добавьте маршрут к сети клиента, если он отличается от wg0:

    bash
    sudo ip route add 10.80.0.0/24 dev wg0
    
  3. Проверка
    На клиенте выполните:

    bash
    sudo wg show
    

    Должно быть state: ESTABLISHED.
    Если state: CONNECTING – возможно, проблемы с Endpoint или PersistentKeepalive.


Диагностика соединения

  1. Пинг до сервера

    bash
    ping -I wg0 10.80.0.1
    

    Если ответов 6, а потом нет, проверьте dmesg | grep wg на наличие ошибок.

  2. Трассировка

    bash
    traceroute -I wg0 10.80.0.1
    

    Должна пройти через wg0 сразу после 10.80.0.2.

  3. Логи

    bash
    sudo journalctl -u wg-quick@wg0
    

    В логах обычно видны ошибки: unreachable, No route to host.


Обновлённый конфиг и рекомендации

ini
# /etc/wireguard/wg0.conf (на клиенте)
[Interface]
PrivateKey = wLX45LJFI14qJ56pviLjyzhv1G9aHpjumeWuFZ6hoWk=
Address = 10.80.0.2/24
ListenPort = 51820
MTU = 1400

[Peer]
PublicKey = VP7+ViG15/lxwgdAmB+z5o0L2oYwoQ26g8qV1a/RATc=
Endpoint = <IP_сервера>:51820
AllowedIPs = 10.80.0.0/24
PersistentKeepalive = 25
ini
# /etc/wireguard/wg0.conf (на сервере)
[Interface]
PrivateKey = <серверный_ключ>
Address = 10.80.0.1/24
ListenPort = 51820
MTU = 1400

[Peer]
PublicKey = wLX45LJFI14qJ56pviLjyzhv1G9aHpjumeWuFZ6hoWk=
AllowedIPs = 10.80.0.0/24

После перезапуска (sudo wg-quick down wg0 && sudo wg-quick up wg0) проверьте wg show.
Пинг до 10.80.0.1 должен проходить бесконечно, а из сети колледжа – доступ к нужным ресурсам.


Источники

  1. Проблема с WireGuard: 6 ping и отсутствие соединения – обсуждение похожей ситуации.
  2. Проблемы при подключении WireGuard в Linux – рекомендации по настройке AllowedIPs и IP_forward.
  3. WireGuard – настройка маршрутизации и брандмауэра – детали работы MTU и PersistentKeepalive.
  4. Установка и настройка WireGuard на VPS – официальная документация.
  5. Проблемы с соединением после handshake в WireGuard – причины, связанные с IP‑forward и брандмауэром.

Заключение

  • Используйте /24 вместо /32 – иначе туннель видит только свой IP.
  • Разрешите всю нужную сеть в AllowedIPs.
  • Укажите Endpoint и включите PersistentKeepalive для клиента.
  • Включите IP‑форвардинг и откройте порт 51820 в брандмауэре.
  • Проверьте настройки MTU и при необходимости уменьшите до 1400.

Пошаговая проверка и обновлённый конфиг обычно устраняют проблему с 6 пингами и позволяют полностью подключиться к локальной сети колледжа через VPS.

Авторы
Проверено модерацией
Модерация
WireGuard: 6 пингов и отсутствие соединения – как исправить