Подключение VPN в WSL2 периодически прерывается, но интернет в WSL2 продолжает работать.

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

У меня возникла проблема, которую трудно отладить. Я изучил различные темы на SU и Reddit, но ни одна из них, кажется, не соответствует моей проблеме. Я опишу проблему, с которой я столкнулся, и шаги, которые предпринял для её решения. Надеюсь, кто-то может иметь представление о том, что происходит.

Настройка

Я использую WSL2 Ubuntu (22.04.4 LTS) на Windows версии 23H2 сборка 22631.3737. Мне нужен доступ к VPN для определенных ресурсов компании. VPN настроен с использованием клиента Microsoft Azure VPN на Windows. Я настроил его так, чтобы мой компьютер автоматически подключался к VPN всякий раз, когда я загружаю устройство – я использовал Сеть и Интернет -> VPN для этой настройки.

Ситуация

Когда я только загружаю компьютер, VPN работает как ожидалось. На хосте я могу получить доступ ко всем ресурсам компании. Внутри WSL2 я также могу получить доступ ко всем ресурсам компании. Когда я использую ping google.com в Ubuntu, я получаю успешный ответ. Когда я использую ping some_server (наш сервер Git), я также получаю успешный ответ. Всё работает как ожидалось.

Через некоторое время – обычно после того, как я нахожусь AFK в течение некоторого времени, например, во время обеда или ужина – я больше не могу получить доступ к ресурсам компании внутри WSL2. Использование ping some_server не возвращает никаких пакетов. Однако, когда я использую ping google.com, я всё ещё получаю успешный ответ, т.е. сетевое соединение всё ещё работает. Это отличается от того, что я читал, например, здесь, здесь и в бесчисленных других ресурсах, которые я мог найти. Более того, VPN всё ещё работает как ожидалось на хосте. Я всё ещё могу получить доступ к ресурсам компании с Windows, но не с WSL2/Ubuntu.

Как Wi-Fi, так и Ethernet соединения работают одинаково, и у них наблюдается описанное выше поведение.

Что я пробовал

  • Я пробовал отключать и снова подключать VPN, когда это происходит, но это не работает.
  • Я пробовал переходить в режим самолёта, а затем переподключаться к VPN, но это не работает.
  • Я пробовал различные настройки DNS в etc/resolv.conf, как предложено в аналогичных темах, но ни одна из них не работает стабильно.
  • Я пробовал завершать работу WSL wsl --shutdown и перезагружать дистрибутив Ubuntu, но это также не работает: VPN ресурсы недоступны, но сеть работает.
  • Единственное, что consistently работает – это перезагрузка компьютера, что, очевидно, не идеальное решение.

Подробности

# etc/resolv.conf - я сделал этот файл неизменяемым с помощью `chattr +i`
nameserver 10.10.5.4
nameserver 8.8.8.8
nameserver 192.XXX.X.XXX <- это (замаскированный) шлюз по умолчанию для моего роутера, который я добавил безрезультатно на основе другого обсуждения
# wsl.conf
[boot]
systemd=true

[network]
generateResolvConf=false
# hosts на Windows (C:\Windows\system32\drivers\etc)
...
10.0.0.4     some_server  # это домен нашего Git сервера
...

Как мой Ethernet, так и Wi-Fi адаптеры настроены на автоматическое конфигурирование DNS на стороне Windows.

Надеюсь, кто-то сможет подсказать, что здесь может происходить, так как я не знаю, что предпринять. Пожалуйста, дайте знать, если нужна какая-то дополнительная информация.

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

Решение проблемы с нестабильным соединением VPN в WSL2 при сохранении интернет-доступа

Уважаемый клиент, описанная вами проблема с соединением VPN внутри WSL2 на Windows после периода неактивности действительно может вызывать неудобства в рабочих процессах. Давайте детально рассмотрим возможные причины и пути решения этой ситуации.

Основные причины проблемы

  1. Сетевые конфликты и настройки маршрутизации

    • После выхода из состояния неактивности, взаимодействие между WSL2 и системой VPN на Windows может быть нарушено сетевыми изменениями, такими как изменение маршрутизации или DNS-конфигурации.
  2. DNS разрешение в WSL2

    • Обычно проблемы с VPN в WSL2 связаны с некорректной маршрутизацией DNS. Вы уже указали, что пытались разные конфигурации в resolv.conf, но они не дали стабильного результата.
  3. Состояние сетевого интерфейса

    • Временное отключение сетевых интерфейсов может вызвать потерю эффективности в маршрутизации внутренних сетевых запросов через VPN.

Рекомендуемые шаги по устранению проблемы

  1. Проверка и обновление маршрута

    • Перейдите к проверке текущей таблицы маршрутизации в WSL2 с помощью команды ip route. Возможно, это поможет диагностировать отклонения в настройках после периода бездействия.
    • Вы можете вручную перезапустить сетевой интерфейс в WSL2 с командами: sudo ifconfig eth0 down и затем sudo ifconfig eth0 up.
  2. Обновление resolv.conf

    • Убедитесь, что ваш файл resolv.conf в WSL2 правильно указывает на DNS-серверы вашей компании, если они доступны. Попробуйте временно отключить изменяемость файла с помощью chattr -i /etc/resolv.conf, обновить его, а затем вернуть неизменяемое состояние.
  3. Актуализация системных пакетов

    • Обновите все пакеты и системные компоненты в WSL2 через sudo apt update && sudo apt upgrade. Обновления могут содержать решения для известных проблем с сетевым подключением.
  4. Рассмотрение конфигураций подключения

    • Если ваш VPN использует специфичные параметры или шлюзы, удостоверьтесь, что маршрутизация исправлена через iptables или аналогичные инструменты, чтобы направлять трафик через нужное соединение.
  5. Автоматизация при помощи скриптов

    • Создайте пользовательский скрипт, который будет автоматически проверять соединение с корпоративными ресурсами и автоматически перезапускать сетевой интерфейс или обновлять маршруты. Это может облегчить процесс восстановления подключений без полной перезагрузки системы.

Заключение

Хотя перезагрузка компьютера временно решает проблему, полное осознание сетевых процессов и правильная настройка систем WSL2 и VPN помогут избежать необходимости в таких радикальных мерах. Если указанные рекомендации не дадут результатов, возможно, стоит проконсультироваться с IT-специалистами вашей компании для глубокого анализа взаимодействия между WSL2 и VPN.

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

С уважением,
[Ваше Имя],
[Ваша Компания/Организация]

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

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