WSL2 соединение с хостом без отключения брандмауэра Windows

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

Я просто хочу подключиться из своей установки WSL2 Ubuntu к хосту Windows на порту 8529.

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

Этот вопрос задавался достаточно часто, но ни один из обычных ответов не сработал для меня.

Вы можете отключить брандмауэр только для интерфейса vEthernet (WSL). Таким образом, вы разрешите подключения из WSL, сохранив возможность защиты вашего компьютера от внешних угроз брандмауэром.

  • Перейдите в настройки брандмауэра и нажмите Дополнительные параметры
  • Нажмите Свойства брандмауэра Windows Defender
  • Выберите вкладку Публичный профиль
  • Нажмите Настроить Защищенные сетевые подключения
    введите описание картинки здесь
  • Снимите флажок vEthernet (WSL)

Что ж, в моем случае я использую приложение CentOS 7 WSL. У меня не было успеха с Norton 360. Так что в В правилах (я не знаю, как это на английском SO) я добавил приложение CentOS 7. Это сработало для меня.

CentOS 7:
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 Открытие параметров брандмауэра

  1. Откройте Панель управления: Нажмите комбинацию клавиш Win + R, введите control и нажмите Enter.
  2. Перейдите в раздел Брандмауэр Windows: Найдите «Система и безопасность» и затем откройте «Брандмауэр Windows».

1.2 Настройка правил входящего трафика

  1. Кликните на «Дополнительные параметры» в левой части окна, чтобы открыть консоль управления брандмауэром.
  2. Выберите «Правила для входящих подключений», чтобы создать новое правило.
  3. Создайте новое правило:
    • Выберите «Создать правило» в правой части окна.
    • В диалоговом окне выберите Тип правила: выберите «Порт» и нажмите «Далее»..
    • Укажите, что вы хотите открыть TCP и укажите 8529 в поле «Определенные локальные порты». Нажмите «Далее».
    • Выберите «Разрешить соединение» и снова нажмите «Далее».
    • Установите отметки во всех профилях (Доменный, Частный, Общедоступный), чтобы правило применялось для всех типов сетей. Нажмите «Далее».
    • Дайте правилу имя, например, «Разрешить доступ к 8529» и нажмите «Готово».

2. Настройка WSL2

Когда правила брандмауэра на стороне Windows настроены, необходимо убедиться, что вы используете правильный IP-адрес для подключения в WSL2.

2.1 Получите IP-адрес хост-системы

  1. Откройте терминал в вашей WSL2.
  2. Выполните команду:
    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.

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

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

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