Вопрос или проблема
Я просто хочу подключиться из своей установки WSL2 Ubuntu к хосту Windows на порту 8529.
Что я попробовал:
- Отключил свой публичный брандмауэр. Это работает, но не является вариантом.
- Я добавил bash, wsl и приложение Ubuntu в правила брандмауэра. Это не сработало.
- Я добавил правило брандмауэра для виртуального сетевого адаптера WSL. Это тоже не сработало.
Этот вопрос задавался достаточно часто, но ни один из обычных ответов не сработал для меня.
Вы можете отключить брандмауэр только для интерфейса vEthernet (WSL). Таким образом, вы разрешите подключения из WSL, сохранив возможность защиты вашего компьютера от внешних угроз брандмауэром.
Что ж, в моем случае я использую приложение CentOS 7 WSL. У меня не было успеха с Norton 360. Так что в В правилах
(я не знаю, как это на английском SO) я добавил приложение CentOS 7. Это сработало для меня.
И у меня есть успех в пинге к google.com
Поскольку Windows случайным образом включает брандмауэр без вашего ведома, принудительное выполнение задания cron для его отключения может быть единственным компромиссным решением. Частично от @sudoqux
# запуск от имени администратора в powershell Windows
$option = New-ScheduledJobOption -RunElevated -RequireNetwork
$atLogin = New-JobTrigger -AtLogOn -User *
$atInterval = New-JobTrigger -Once -RepeatIndefinitely -RepetitionInterval "00:10:00" -At "0am"
Register-ScheduledJob -Name "F wsl firewall" -ScheduledJobOption $option -Trigger $atLogin, $atInterval -ScriptBlock {
Set-NetFirewallProfile -Profile Public -DisabledInterfaceAliases "vEthernet (WSL)";
}
(Я практически ничего не знаю о powershell Windows, так что дайте мне знать, если я ошибаюсь.)
Также не забудьте включить входящие правила на стороне хоста “Windows”.
(В любом случае, я не вижу никаких значимых причин для отклонения всех исходящих соединений из WSL на хост, учитывая, что хост уже имел свои входящие правила.)
Ответ или решение
Для того чтобы подключиться из WSL2 (Windows Subsystem for Linux 2) на Ubuntu к хост-системе Windows по порту 8529 без отключения брандмауэра Windows, важно настроить соответствующие правила брандмауэра и учетные записи. В следующем тексте мы рассмотрим, как правильно это сделать, следуя пошаговому подходу.
1. Настройка брандмауэра Windows
Первый шаг — это управление правилами брандмауэра Windows, чтобы разрешить соединения с WSL2. Вы можете сделать это, не отключая брандмауэр, следуя этим шагам:
1.1 Открытие параметров брандмауэра
- Откройте Панель управления: Нажмите комбинацию клавиш
Win + R
, введитеcontrol
и нажмите Enter. - Перейдите в раздел Брандмауэр Windows: Найдите «Система и безопасность» и затем откройте «Брандмауэр Windows».
1.2 Настройка правил входящего трафика
- Кликните на «Дополнительные параметры» в левой части окна, чтобы открыть консоль управления брандмауэром.
- Выберите «Правила для входящих подключений», чтобы создать новое правило.
- Создайте новое правило:
- Выберите «Создать правило» в правой части окна.
- В диалоговом окне выберите Тип правила: выберите «Порт» и нажмите «Далее»..
- Укажите, что вы хотите открыть TCP и укажите 8529 в поле «Определенные локальные порты». Нажмите «Далее».
- Выберите «Разрешить соединение» и снова нажмите «Далее».
- Установите отметки во всех профилях (Доменный, Частный, Общедоступный), чтобы правило применялось для всех типов сетей. Нажмите «Далее».
- Дайте правилу имя, например, «Разрешить доступ к 8529» и нажмите «Готово».
2. Настройка WSL2
Когда правила брандмауэра на стороне Windows настроены, необходимо убедиться, что вы используете правильный IP-адрес для подключения в WSL2.
2.1 Получите IP-адрес хост-системы
- Откройте терминал в вашей WSL2.
- Выполните команду:
cat /etc/resolv.conf | grep nameserver | awk '{print $2}'
Что вернет IP-адрес вашей локальной сети, который может быть использован в WSL для соединения с хост-системой.
3. Проверка подключения
Теперь вы можете проверить соединение, выполнив следующую команду в терминале WSL2:
nc -zv <IP-адрес-хоста> 8529
Здесь вместо <IP-адрес-хоста>
подставьте полученный ранее IP-адрес.
Если вам потребуется дополнительная проверка, попробуйте использовать веб-браузер или cURL:
curl http://<IP-адрес-хоста>:8529
Заключение
Следуя указанным этапам, вы сможете без проблем подключиться из WSL2 на Ubuntu к хост-системе Windows через порт 8529, при этом сохранив функционирование брандмауэра для защиты от внешних угроз. Также, если у вас есть сторонние антивирусные программы, такие как Norton 360, убедитесь в том, что они не конфликтуют с настройками брандмауэра Windows.
Если у вас возникли дополнительные вопросы или проблемы с подключением, не стесняйтесь обращаться за поддержкой.