SystemdDoctor
служба не работает vpn сеть

Туннель поднимается, но перестаёт работать через несколько минут

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

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Периодические пакеты не настроены

    Без них запись в таблице преобразования устаревает за минуты простоя. Обратный трафик отбрасывается.

  2. Настройка сделана не на той стороне

    Периодические пакеты нужны той стороне, которая за преобразованием адресов. На другой стороне они бесполезны.

  3. Маршруты не охватывают нужные адреса

    Список разрешённых адресов задаёт и проверку, и маршруты. Пакеты к адресам вне списка не идут через туннель.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Состояние узлов: время последнего обмена и объём трафика.

sudo wg show

Состояние службы туннеля.

systemctl status "wg-quick@*" --no-pager 2>/dev/null | head -8

Маршруты, созданные туннелем.

ip route show table all | grep -i wg

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Периодические пакеты не настроены
Почему происходит
Без них запись в таблице преобразования устаревает за минуты простоя. Обратный трафик отбрасывается.
Как проверить
Посмотрите настройку и время последнего обмена.
sudo wg show 2>/dev/null | grep -iE "latest handshake|persistent keepalive|transfer"
Как исправить
Включите отправку периодических пакетов на стороне узла за преобразованием адресов. Интервал в 25 секунд подходит почти для всех сетей.
[Peer]
PersistentKeepalive=25
2. Настройка сделана не на той стороне
Почему происходит
Периодические пакеты нужны той стороне, которая за преобразованием адресов. На другой стороне они бесполезны.
Как проверить
Определите, кто за преобразованием адресов.
sudo wg show 2>/dev/null | grep -iE "endpoint|allowed ips"
ip route get 1.1.1.1 2>/dev/null | head -2
Как исправить
Включите отправку на стороне, инициирующей соединение. Если за преобразованием адресов обе стороны, нужна настройка у обеих.
3. Маршруты не охватывают нужные адреса
Почему происходит
Список разрешённых адресов задаёт и проверку, и маршруты. Пакеты к адресам вне списка не идут через туннель.
Как проверить
Посмотрите список адресов и маршруты.
sudo wg show 2>/dev/null | grep -i "allowed ips"
ip route show table all | grep -i wg | head
Как исправить
Приведите список разрешённых адресов в соответствие с тем, что должно идти через туннель. Это не только фильтр, но и источник маршрутов.

Пример вывода

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

$ sudo wg show
interface: wg0
  public key: (скрыт)
  listening port: 51820

peer: (скрыт)
  endpoint: 198.51.100.20:51820
  allowed ips: 10.8.0.0/24
  latest handshake: 4 minutes, 12 seconds ago
  transfer: 1.24 MiB received, 812.00 KiB sent
  persistent keepalive: every 0 seconds

Связанные ошибки

Где встречается чаще всего

Источники

  • Документация WireGuard документация программы
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено туннелем через преобразование адресов без периодических пакетов.
    собственная проверка, systemd 255
    сверено 15 сентября 2026