Рейтинг:2

Не удается подключиться к серверу через HTTPS в WSL

флаг ru
Joe

Я пытаюсь использовать инструмент командной строки для планировщика, который мы установили в моей компании, и решил установить его в моей установке WSL ubuntu. Однако я не могу подключиться к серверу...

curl "[сервер]" --verbose 
* Попытка [сервер: 443]...
*TCP_NODELAY установлен
* не удалось подключиться к порту 443 [сервера]: время ожидания подключения истекло

Я бы предположил, что что-то не так с брандмауэром сервера или моим брандмауэром Windows... кроме:

  • Я могу запустить точно такую ​​же команду curl из CMD в Windows (на той же машине) и подключиться
  • Я могу запустить ту же команду curl из WSL на любой распространенный безопасный веб-сайт (скажем, https://google.com) и соединяется

Я также подумал, что это может быть связано с сертификатом, но не похоже, что я получаю сертификатную часть соединения (и опять же, отлично работает из Windows, и я не делал там ничего особенного). Я пробовал IP-адрес сервера на случай, если он также связан с DNS. Ping работает нормально, и я проверил правильность порта 443.

Есть ли в WSL брандмауэр Ubuntu, с которым мне нужно отдельно иметь дело, который может разрешать трафик на одни сайты, а не на другие? Другие похожие проблемы кажутся связанными с брандмауэром, ping не работает и/или возникают те же проблемы в Windows, что и WSL/Ubuntu.

У меня Windows 10 (версия 1909) и WSL 2 (Ubuntu 20.04.3 LTS/focal). Я использую (корпоративный) VPN.

флаг ru
Joe
Хм, у меня нет возможности обновить Windows (ноутбук, управляемый корпорацией, они за это отвечают). Возможно, удастся обновить Ubuntu, WSL — это то, что я установил. Увидим.
флаг ru
Joe
Обновлено до 20.04.3, текущей версии LTS; все еще есть проблема.
флаг ru
Joe
Я полагаю, но я спрашиваю - что? Я разговаривал с другими ИТ-специалистами (я тоже работаю в ИТ), и ни у кого здесь нет особых подозрений, учитывая, что я могу подключиться к сайту со своего ноутбука в Windows — отсюда и мой вопрос о том, делает ли что-нибудь сама Ubuntu.
NotTheDr01ds avatar
флаг vn
@Joe Уже дал ответ (может быть, правильный, может быть отвлекающим маневром), но любопытно, что `nc -zv 443` шоу из WSL/Ubuntu. Чтобы ответить на часть вашего вопроса, в WSL/Ubuntu нет брандмауэра, который бы мешал.
NotTheDr01ds avatar
флаг vn
@Joe Удалил мой ответ, так как это было очевидно для меня, когда я прочитал последнюю строку вашего вопроса. Это VPN - скорее всего, он не распространяется на WSL. Можно ли получить доступ к *любым* внутренним корпоративным сайтам из WSL?
флаг ru
Joe
@ NotTheDr01ds Хм, хороший вопрос.
Рейтинг:2
флаг vn

Я подозреваю, что VPN не распространяется на WSL2. Это распространенная проблема. Для многих людей, все трафик направляется через VPN, что приводит к все сеть из WSL2, чтобы сломаться, когда VPN активна.

Звучит как только внутренний трафик может быть направлен через вашу VPN. Кажется, я припоминаю, что это нормальная конфигурация для AnyConnect и, вероятно, для некоторых других.

Самое простое решение, если оно вам подходит, — запустить экземпляр WSL1. WSL1 работает на том же сетевом адаптере, что и Windows, а WSL2 — на vNIC, подключенном к NAT за хостом Windows.

Вы всегда можете просто запустить экземпляр WSL1, когда вам нужно работать с этим инструментом планирования, и продолжать использовать WSL2, если он вам нужен для других случаев использования.

Чтобы клонировать существующий WSL2 в WSL1, создайте каталог, в который вы хотите его установить, и:

wsl --export Ubuntu backup.tar
wsl --import Ubuntu_WSL1 <каталог> backup.tar --версия 1

Вам также нужно будет установить пользователя по умолчанию для нового экземпляра, используя /etc/wsl.conf. Видеть этот ответ (предпочтительно метод 1) для деталей.

флаг ru
Joe
Совершенно верно - сработало отлично!
NotTheDr01ds avatar
флаг vn
Отличный! Я ужасно пропускаю эти последние несколько слов при чтении вопроса. Иногда они являются самой важной частью! :-)
флаг ru
Joe
Рад, что я подумал включить их в конце!

Ответить или комментировать

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