Вопрос или проблема
Я использую WSL2 на Windows 11 22H2 22624.1470. Установлена Ubuntu 22.04.6 LTS на WSL2. Когда я запускаю программу под названием aTrust, разработанную компанией Sangfor, мой WSL2 не может подключиться к Интернету или к любым IP-адресам, включая даже шлюз 172.17.160.1
. Я пытался выяснить, что вызвало проблему. Искал везде, но не нашел ничего полезного о Sangfor aTrust и WSL2. Используя WireShark, я обнаружил, что все протоколы ICMP имели предупреждение No Respond Found
, независимо от того, к какому IP-адресу я пингую. Более того, когда я использую traceroute 172.17.160.1
, я мог получить только:
traceroute to 172.17.160.1 (172.17.160.1), 64 hops max
1 * * *
2 * * *
3 * * *
4 * * ^C
Ниже находится файл /etc/resolv.conf
:
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 172.17.160.1
Я знаю, что могу изменить nameserver на 1.1.1.1 или 9.9.9.9 и т.д., но я не могу подключиться ни к одному из указанных выше адресов в WSL2.
Когда я закрываю программу aTrust, все работает нормально, но я не хочу часто ее закрывать, поскольку мне нужно использовать ее для подключения к сети моего университета для работы. Надеюсь, кто-то поможет мне решить эту проблему. Я не очень хорошо разбираюсь в использовании Linux, так как только начал учиться, поэтому использую WSL вместо компьютера с Ubuntu. Я не знаком с сетевыми протоколами, но просто следую инструкциям в Интернете, пытаясь выяснить, в чем проблема.
Я добавил правило в WindowsFirewall, которое позволяет всем протоколам и портам с IP-адресов от 172.17.160.2
до 172.17.160.254
доступ ко всем локальным адресам и портам (боюсь, это рискованно), но это могло сделать доступным только 172.17.160.1
, а все DNS не могут быть разрешены. Ни один из IP-адресов, включая 1.1.1.1, 8.8.8.8, также не может быть доступен. Думаю, что что-то еще пошло не так.
К удивлению, когда я использую Wireshark для захвата WLAN вместо vEthernet(WSL), DNS-решения сайта, на который я пинговал внутри WSL, в порядке, и я мог видеть IP-адрес хоста, возвращающийся в мою Windows-систему.
Я также пытался сделать traceroute IP-адреса после редактирования брандмауэра:
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max
1 172.17.160.1 0.358ms 0.202ms 0.205ms
2 * * *
3 * * *
4 * * *
5 * ^C
Это сработало, но все еще бесполезно.
Да, я могу просто завершить программу aTrust, чтобы все стало в порядке, но я действительно устал от постоянного включения ее для входа в систему и выключения для использования WSL2. Надеюсь, кто-то поможет мне найти решение.
На сайте https://learn.microsoft.com/en-us/windows/wsl/troubleshooting я нашел:
Некоторые пользователи сообщали о проблемах с определенными приложениями брандмауэра, блокирующими доступ к Интернету в WSL. Сообщалось о следующих брандмауэрах:
Kaspersky
AVG
Avast
Symantec Endpoint Protection
В некоторых случаях отключение брандмауэра позволяет получить доступ. В некоторых случаях просто наличие установленного брандмауэра блокирует доступ.
Возможно, Sangfor aTrust будет добавлен в список. Далее я расскажу, что произошло с моим компьютером, так как вы, возможно, не знакомы с программой. Это плохая программа, но я вынужден ее использовать.
Я проверил настройки Windows и обнаружил, что aTrust не создает никаких VPN или прокси. Однако создана виртуальная сеть, которую нельзя остановить, так как она восстанавливается без задержки, когда я блокирую ее с помощью чего-то вроде службы или фонового процесса, который я не нашел. Сеть не имеет доступа в Интернет, но сделала мой компьютер 2.0.0.1 (IP-адрес во Франции):
C:\>tracert 2.0.0.1
через максимум 30 переходов
до DESKTOP-94DT041 [2.0.0.1]:
1 <1 мс <1 мс <1 мс myDESKTOP [2.0.0.1]
Трассировка завершена.
Используя cmd.exe (на упрощенном китайском языке)
И он создал новый виртуальный сетевой адаптер под названием Sangfor aTrust VNIC, который используется для поддержки виртуальной сети. Он даже заблокировал весь доступ по IPv6 в моей системе Windows, изменив реестр. Я думаю, он сделал гораздо больше с моим компьютером, что я не обнаружил, что вызвало проблему, о которой я упомянул.
Спасибо за чтение моего бедного выражения, и я постарался выразить все ясно.
Снимок экрана Wireshark:
Снимок экрана Wireshark, когда я пингую домен
Снимок экрана Wireshark, когда я делаю traceroute 8.8.8.8
Снимок экрана Wireshark, когда я пингую домен, получаю ответ, но не возвращаю его в WSL
Я столкнулся с той же проблемой и нашел официальный пост от aTrust: https://support.sangfor.com.cn/cases/list?product_id=19&category_id=2944.
К сожалению, команда aTrust не предоставила решения, а предложила пользователям отказаться от использования WSL...
Хорошая новость в том, что я нашел инструмент на GitHub под названием wsl-vpnkit (https://github.com/sakai135/wsl-vpnkit). Следуя инструкциям по установке и правильно его настроив, вы сможете получить доступ к сети хоста из WSL без ограничений, включая все сетевые устройства, подключенные к хосту.
.
Ответ или решение
Ситуация с отсутствием доступа к интернету в WSL2 при запущенной программе Sangfor aTrust требует комплексного анализа и решения. Прежде всего, важно понимать, что данная проблема связана с конфликта между сетевыми настройками WSL2 и Sangfor aTrust. Давайте рассмотрим возможные шаги для её решения, объясняя все аспекты.
Четкое определение проблемы:
-
Использование программного обеспечения: Вы работаете с WSL2 на Windows 11, и установили Ubuntu 22.04.6 LTS в данном окружении. Проблема возникает при запуске программы aTrust от Sangfor, которая блокирует все интернет-подключения внутри WSL2, в том числе к шлюзу (172.17.160.1).
-
Наблюдения: Утилита WireShark указывает, что ICMP-протоколы не получают ответов. Также, попытки трассировки (traceroute) показывают недостижимость указанных IP-адресов. Вариант изменения nameserver на общественные DNS-серверы безуспешен, что указывает на более глубокую сетевую проблему.
Исследование и анализ:
-
Сетевые адаптеры: Sangfor aTrust создаёт виртуальный сетевой адаптер, который, возможно, вмешивается в работу привязки адресов WSL2. Он также изменяет параметры реестра Windows, что может повлиять на IPv6 и другие настройки.
-
Способы диагностики: Несмотря на доступность DNS при мониторинге через Wireshark, ответы не доходят до WSL, что возможно связано с блокировкой на уровне виртуального сетевого адаптера Sangfor.
Решения:
-
WSL-VPNKit: Один из подтверждённых методов решения данной проблемы — использование инструмента WSL-VPNKit, доступного на GitHub. Этот инструмент позволяет WSL использовать сеть хоста напрямую, проходя через ограничения, созданные виртуальным адаптером Sangfor aTrust. Установка его по инструкции с GitHub может помочь обойти существующие ограничения.
-
Отказ и поиск альтернатив: Если использование Sangfor aTrust критично, исследуйте возможность настройки параллельного использования других инструментов, таких как ProtonVPN или OpenVPN, для организации VPN-соединений, не конфликтующих с WSL2.
-
Образование и поддержка: Учитывая недостаток информации и официальной поддержки по данной проблеме, рассмотрите возможность обращаться за помощью на профессиональные IT-форумы, такие как Stack Overflow или Reddit, где содействие пользователей может предложить дополнительные инсайты.
Предотвращение и долгосрочные стратегии:
- Постоянно обновляйте свои инструменты, включая WSL, Ubuntu, и ПО Sangfor, чтобы избежать проблем совместимости.
- Рассмотрите возможность предоставления обратной связи разработчикам Sangfor, так как идентификация проблемы с их стороны может ускорить создание обновления или исправления.
Итак, правильное управление сетевыми ресурсами, использование открытых инструментов сообщества, а также активное участие в IT-сообществах может существенно облегчить разрешение подобных технических конфликтов, позволяя эффективно использовать все доступные технологии.