SSH-соединение разрывается, когда подключен WireGuard.

Вопрос или проблема

Я собираюсь подключиться к VPS по SSH и подключиться к сервису WireGuard VPN на нем.

Но как только я запускаю клиент WireGuard, соединение SSH разрывается.

Конечно, я знаю, что это происходит из-за изменения правил маршрутизации и исправлял эти проблемы в случае OpenVPN, но сейчас это не работает.

Чем WireGuard отличается?

Это файл конфигурации клиента.

# TorGuard WireGuard Config
[Interface]
PrivateKey = uEHhYaGQy9eV5NP++IDlf/ffWrF8siKE0q79PYXHfWY=
ListenPort = 51820
DNS = 1.1.1.1
Address = 10.10.7.15/24

[Peer]
PublicKey = dHeUCCVg8iBJWTOGOY3KpqlSQhvK6+rug9p44hHUbS0=
AllowedIPs = 0.0.0.0/0
Endpoint = 46.107.90.26:1443
PersistentKeepalive = 25

Заранее спасибо.

Возможно, вы можете сделать это

route add -host <Ваш-Публичный-IP> gw <IP-адрес-Gateway-SSH-Сервера>

Таким образом, по крайней мере, ваш ПК может оставаться подключенным

Просто добавьте шаг PostUp/Down, чтобы всегда маршрутизировать трафик к вашему IP через основной интерфейс, а не через интерфейс WireGuard.

PostUp   = ip route add <ваш публичный ip>/32 dev eth0
PostDown = ip route del <ваш публичный ip>/32 dev eth0

Ответ или решение

Проблема потери SSH-соединения при подключении к сервису WireGuard часто связана с изменением маршрутов, которые происходят в результате активации VPN. Так как WireGuard имеет особенности конфигурации маршрутизации, важно правильно настроить маршруты, чтобы восстановить доступ к вашему VPS через SSH.

Анализ проблемы

Когда вы подключаетесь к WireGuard, конфигурация маршрута по умолчанию может перенаправить весь ваш трафик через VPN-туннель (как это указано в вашем параметре AllowedIPs = 0.0.0.0/0). Это приводит к тому, что ваш SSH-клиент теряет связь с VPS, так как запросы на IP-адрес VPS отправляются через WireGuard, что потенциально может вызвать разрыв соединения.

Что отличает WireGuard от OpenVPN?

WireGuard использует более простую архитектуру и минималистский подход к конфигурации по сравнению с OpenVPN. В WireGuard нет встроенного механизма для сохранения маршрутов для определённых IP-адресов, и из-за этого вы должны это явно прописать в конфигурации. Без дополнительных настроек WireGuard будет пытаться маршрутизировать весь исходящий трафик в туннеле, что не всегда желательно.

Решение проблемы

Есть несколько способов сохранить соединение SSH при использовании WireGuard. Один из наиболее популярных способов — это использование параметров PostUp и PostDown в конфигурации WireGuard для добавления и удаления маршрута к вашему публичному IP. Ниже приведен пример, как это можно реализовать:

  1. Добавить маршруты в конфигурацию: Измените файл конфигурации клиента WireGuard, добавив следующие строки:

    PostUp   = ip route add <ваш публичный IP>/32 dev eth0
    PostDown = ip route del <ваш публичный IP>/32 dev eth0

    Замените <ваш публичный IP> на ваш реальный публичный IP-адрес. Параметр eth0 должен соответствовать интерфейсу вашей сети, по которому происходит связь.

  2. Перезапустить WireGuard: После внесения изменений, не забудьте перезапустить WireGuard, чтобы новые настройки вступили в силу.

Альтернативный метод

Вместо использования пост-настроек, вы также можете попробовать добавить маршрут вручную после подключения к VPN:

route add -host <ваш публичный IP> gw <IP-адрес вашего шлюза>

Этот метод обеспечит постоянное соединение, пока он активен, но может потребовать повторной настройки каждый раз при подключении к VPN.

Итог

Проблемы с потерей SSH-соединения при использовании WireGuard связаны с тем, что весь трафик перенаправляется через VPN. Правильная настройка маршрутов с использованием PostUp и PostDown, а также альтернативное добавление маршрутов вручную помогут вам сохранить доступность вашего SSH-соединения. Убедитесь, что вы тестируете конфигурацию и учитываете все возможные сценарии использования, чтобы минимизировать потенциальные простои.

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

Капча загружается...