Pull to refresh

Comments 86

Самое простое - админить VPS'ки напрямую

OpenSSH клиент на последних версиях все еще нужно включать? Я не помню. Но даже так, какие принципиальные отличия между включением клиента и wsl?

Но это так, безотносительно остальных применений

Если вопрос про WSL, то конечно нет, оно во всех линуксовых дистрах же есть по умолчанию

Нет, вопрос про установку openssh клиента в винде, и про установку wsl ради «прямого доступа» к openssh. С моей колокольни - процедуры не имеют принципиального различия, но имеют оверхед в виде транслятора (wsl1)/виртуальной машины (wsl2)

Повторюсь, без относительно альтернативных применений wsl

а, это конечно резонный вопрос, если рассматривать ситуацию только с т.з. ссх. Но всл даёт намного больше, чем только это)

SSH винды присутствует, но в нём отсутствует часть функций, например команда ssh-copy-id.

Почему? Вам удобнее руками и флешкой копировать открытые ключи на сервер?

Это может быть не самой полезной командой только в том случае, если Вы по ssh ходите по паролю. Но это вообще странно и стрёмно. Надо копировать ключ, а вход по паролю желательно вообще блокировать для безопасности.

А чем старообрядный способ по ручному редактированию в authorized_keys не нравится? Помимо всего остального позволяет посмотреть что там сейчас находится, почистить и т.п...

В последнее время очень часто на той стороне может быть не authorized_keys а что-то другое. А ssh-copy-id не умеет лазить по sshd_config и догадаться куда именно нужно вставить, если там authorized_keys2, например или что-нибудь еще.

Последние пару лет (может больше), я точно руками не включал на виндовых тачках OpenSSH. Работает из коробки, правда есть периодически шаманства с форвардингом ключей, и вроде еще были какие-то проблемы, но сейчас не вспомню

В Win сейчас есть ssh, ssh-agent и ssh-keygen из коробки.
Только готового ssh-copy-id нет, но есть сторонние реализации.

А мультиплексор есть?

screen и tmux можно поставить, но именно родного, вроде бы нет.

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

scp под виндой работает
-D (прокси), -L проброс работает, -R не знаю, но наверно также

Есть костыль без использования сторонних инструментов:

type $env:USERPROFILE\.ssh\id_rsa.pub | ssh {IP-ADDRESS-OR-FQDN} "cat >> .ssh/authorized_keys"

Можно алиас сделать

А чего про него особо говорить то?) Со второй версии практически прекрасно работает (надо только следить за пожираемым дисковым пространством и иногда по какой-то причине сеть внутри отваливается до перезагрузки всла, но такое всего пару раз ловил за несколько лет)

А так, прекрасный инструмент, просто работает, винда наконец-то стала полноценной рабочей операционной системой для админов

1a. Поставить вторую видеокарту для проброса в виртуалку и запускать Windows-игры и специфический софт в виртуалке. Нет, производительность не теряется. Все выгоды дуалбута без дуалбута.

А при нынешнем развитии линуксгейминга (славься, габен!), зачастую, даже этого дроча не требуется, можно просто мышевозно кликать в стиме кнопочки и оно всё само будет работать

UFO just landed and posted this here

Почему на Хабре нет статей про то, как человек вполне доволен наличием WSL и активно ею пользуется?

Потому что негоже отступать от веры истинной...

(шутка)

Эта ваша WSL2 зависает намертво если к примеру есть какие-то NFS маунты в /etc/fstab и потом они периодически отваливаются/лагают (или просто если потом хостовую ось несколько раз в гибернацию поуводить). Кончается тем, что какой-то там хостовый процесс начинает жрать процессор, а сам штатный терминал от WSL2 больше ничего не показывает и зависает. Даже `wsl --shutdown` тоже ничего не делает и зависает. Приходится ребутить хост.

Такое же можно словить даже от безобидных юзерспейсных маунтов по sshfs. Доколе?

Так ведь такое регулярно можно ловить и на обычных линусковых хостах, не думаю, что тут всл как-то сильно отличается.

Вот только то, что не помогает перезапуск всей подсистемы это странно, да

Когда линукс хостом, то зависания от залипших сетевых маунтов конечно бывают, но они всегда излечимы логином под рутом и далее umount -f -l <чтонадо>

Вот только то, что не помогает перезапуск всей подсистемы это странно, да

Он не то чтобы не помогает, он прежде всего не происходит (выполнение wsl --shutdown <имя> не завершается, ничего другого тоже не происходит). И это притом, что WSL терминал тоже зависает и не даёт рутового доступа к гостевой оси.

Ребутить хост? Ну в самом крайнем случае — прибить процесс wsl в диспетчере задач, но именно с необходимостью ребута ни разу не сталкивался.

или просто если потом хостовую ось несколько раз в гибернацию поуводить

Режим Hibernate в Windows вообще недотестирован.
Например, через пару-тройку дней при запущенном Firefox начинает подтормаживать мышь.

Несмотря на наличие поддержки Windows как в режиме сервера, так и клиента (у Ansible эти понятия максимально размыты), я рекомендую пользоваться именно Linux-версией. 

Ээээ... к-к-какого "клиента"?

Да и про сервер интересно было бы послушать. Т.к. официальная документация черным по белому пишет, что Ansible нативно на windows в качестве контроллера не работает.

В альтернативах не указаны другие виртуальные машины, не от микрософт

это да. Если бы WSL2 позволял VirtualBox-у работать, я бы на него уже перешел ...

У меня одновременно WSL2 и Virtualbox умеют работать, вроде бы давно уже несовместимость починили. Либо о чём вы?

А AVX у вас при этом в виртуалке работает?

кажется начиная с 6й версии VirtualBox отлично работает с hyper-V.... на старых версиях да, они были несовместимы и приходилось выбирать, или -- или...

ОК, сейчас на 7м еще раз попробую.

конечно... именно поэтому я и начал с него свой комментарий...

UFO just landed and posted this here

Пользуясь wsl2 я столкнулся с тем, что питоновское приложение на нем работает в десятки раз медленее чем непосредственно с виндой. Хотя вроде бы указывалось что wsl2 имеет 95% скорости винды.

А вы его запускаете напрямую из WSL2 или из примонтированного каталога?

надо запускать приложение ИЗ файловой системы линукс, а не винды.

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

Почему на Хабре нет статей про то, как человек вполне доволен наличием WSL и активно ею пользуется?

Наверное потому, что ни на что большее, чем работа внутри системы, WSL не годится? Сам думал написать статью про настройку XWindow для WSL, но потом столкнулся с тем, что оттуда практически нереально достучаться до устройств, подключенных по USB, плюнул и поставил себе виртуальную машину с нормальной убунтой.

У меня на NUC стоит Win10 ради того, чтобы не заморчаиваться со Stable Diffusion (несколько инстансов portable Automatic1111) и т.п.

И при этом Docker WSL2 c PowerDNS (для внутренних зон). И развернут Kubernetes "одной галочкой", на котором через ArgoCD задеплоено вот вообще все, что мне нужно. От "системно-мониторинговых" типа VictoriaMetrics, Grafana, до прикладных а-ля Netbox (с тем же PowerDNS интегрированным). Ну т.е. отдельно запущены Redis, PostgreSQL, используемые совместно и другими приложениями. Даже Let's Encrypt с Ingress прекрасно дружит, чтобы для всяких Графан работал https и безо всяких левых портов.

IMHO при наличии реальной потребности - вполне себе такой вариант годится. Не хуже, чем если бы я на той же винде именно отдельную виртуалку поднимал под Кубер.

Если не секрет, что именно не получилось с https://learn.microsoft.com/en-us/windows/wsl/connect-usb ?

Если не секрет, что именно не получилось?

Наверное, вот это: Windows 11 is recommended for connecting USB devices to a Linux distribution running on WSL 2. However, Windows 10 can be used to connect USB devices by building your own USBIP enabled WSL 2 kernel following the instructions in the USBIPD-WIN project repo

У меня все еще Win10

На мой взгляд, WSL + Visual Studio Code это отличное рабочее место для devops инженера. Только так и пользуюсь. Быстро стартует, легко бэкапится, можно пробросить GPU, ограничивается по ресурсам, отличная интеграция с VSC.

для экспериментов с кубером посмотрите k3s

Ставьте Линукс, gpu passthrough и виртуализация спасает в тех случаях когда не обойтись без видеокарты

сейчас это удобно и быстро, как никогда: Win+R, ввод wt

Слишком сложно как по мне. Я для себя написал небольшой скрипт для Autohotkey, чтобы запускать терминал по F1. Хотя там в какой-то момент добавили и нативную поддержку такого режима открытия.

Спасибо за подсказку! Исследую это дело

Почему на Хабре нет статей про то, как человек вполне доволен наличием WSL и активно ею пользуется?

Я несколько раз писал такое в комментариях :-) Впрочем, для меня WSL это, в основном, баловство.

Все верно. Сам работаю на Windows + WSL2, вовсю юзаю Docker и счастлив. Удивлен, что автор не упомянул мой кейс - работу через удаленный рабочий стол (RDP). У меня 2 компа - домашний и рабочий. Между ними полчаса езды на трамвае. Иногда бывает нужно вечером или в выходные что-то срочно поделать по работе. Ехать в офис не вариант. Подсоединяюсь к рабочему компу по RDP и работаю. RDP настолько прекрасен, что иногда я забываю, что сижу не на домашнем компе, а через окошко удаленно работаю на рабочем. У Linux в теории тоже есть какой-то свой клиент для удаленной работы, а еще есть TeamViwer и AnyDesk, но они проигрывают начисто нативному виндовому RDP.

А почему не ходить по RDP сразу в линукс?

Почему на Хабре нет статей про то, как человек вполне доволен наличием
WSL и активно ею пользуется? Неужели я один такой? Значит, пора добавить воды писать статью!

Так а что про него писать-то?
Я как раз по мануалам с Хабра WSL-2 и настраивал.
Установил, развернул программистское окружение. Gvim внутри винды вполне нативно открывается - приятно (в виндовых аналогах мой ~/.gvimrc подхватывался не идеально).
Чтобы накидать дома какой-то proof of concept впролне работает. Доволен.

В тенденции импортозамещения, WSL можно использовать как постепенное привыкание к Linux разве что. Хотя времени оставляют уже мало на переход, поэтому проще и его не использовать. 30 сентября протухнут корпоративные лицензии на винду и пересаживаться на отечественные линуксы всё равно придётся резко.

Самое простое - админить VPS'ки напрямую. ssh <user>@<host> и вперёд! За счет выпуска на Винду первоклассного Windows Terminal сейчас это удобно и быстро, как никогда: Win+R, ввод wt (а если Windows Terminal стоит по умолчанию, то можно сразу набрать любимую оболочку, например, pwsh), затем делай через WSL то, что хотел. Намного удобнее, чем запускать Putty или пользоваться OpenSSH на Винде (который еще где-то в компонентах включить надо), и в разы лучше, чем перезагружать Windows и логиниться в Linux;

Простите, но тут вкусовщина и личные предпочтения.

Чем тут неуодбно работать с Putty? жмешь кнопку и он работает. Можно сделать ярлык на быстрой панели, который сразу логинится в нужную сессию. Можно вообще путти агент запустить, и выбираьт нужную сессию двумя кликами мышки.

Если же у вас МНОГО серверов, то вместо putty можно найти какой-нить secureCRT с удобной навигацией по хостам.

putty это просто клиент, им можно и на wsl подключаться, только не спутать порт sshd и wsl

" За счет возможности запуска X-Server есть возможность запустить графические Linux-приложения в Windows - да, окна из одной ОС будут сосуществовать с окнами хостовой операционки. Фантастика!" - фантастика в том, чтоб не знать о существовании Х серверов под винду уже лет 25+. Вот под ДОС - не уверен, что есть Х-серверы :).

Тоже восхохотавши под лавкою )
У виндузятников лапки, если нет штуки которая сделает за них все — они абсолютно беспомощны. Потому таки да, для них — фантастика.

Не понимаю, что вас так удивило в этой фразе.

Для меня лично тоже появление возможности запуска графических приложений из WSL2 стало существенным улучшением по сравнению с WSL.

Не то, чтобы мне это было позарез нужно, но если в эпоху WSL я не мог запустить Firefox линуксовый непосредственно на винде, то теперь иногда захожу с "очень другой машины".

Заминусованный коммент выше как раз про, что это прекрасно делалось и до всяких wsl, еще во времена XP — причем, практически так же, как стало в wsl2.
Надо было установить на винду ssh client и X-ming, и пробрасывать иксы ssh -X — не рокет саенс, вроде бы, но и не программкой, которая все сделает за виндузятника.

Возможно вы прочитали статью как "WSL2 - лучше Linux, айда все на него!".

Я же ее понял более сдержанно. "WSL2 стал вполне на уровне, можно его использовать как практиеский полноценный Linux, и при этом получить кучу дополнительных плюшек от интеграции (в отличие от простого запуска Линукса в вируталке)"

Ох уж эти любители придумывать что-то свое и потом на это обижаться, которым всегда в их придуманных обидках виноват кто-то еще…

Кстати, списком отличительных плюшек не поделитесь? Только действительно отличительных, выходящих за рамки беспомощных лапок, которым теперь не надо трудиться: ни виртуалка в hyperv с пробросом ФС по plan9, ни проброс буфера обмена и иксового сервера, ни создание снепшотов ВМ таковыми не являются — все они были доступны задолго до.

Я уже описывал свою конфигурацию. Docker Desktop на базе WSL2, на нем же Kubernetes.

При этом в базовом режиме (Win10) работает, к примеру, docker ps. Т.е. я спокойно использую эту информацию для виндовых скриптов и т.п. Я также запускаю Windows containers (очевидно).

Если я захожу в WSL2, так же прекрасно работает docker ps уже линуксовый, равно как все остальные линуксовые тулзы.

Мне кажется, надо очень большие усилия приложить для выпрямления моих беспомощных лапок, чтобы я смог запустить Linux в отдельной виртуалке, и при этом в нем же гонять виндовые контейнеры, видимые, как нативные из под виндового powershell, чтобы информация о процессах докера и т.п. уходила во внешние системы через средства мониторинга Windows...

UFO just landed and posted this here

Хоть вопрос и не мне, отвечу :) Основная система видит WSL2 по IP адресу в отдельной внутренней сети, соответственно, этот адрес можно прямо и указывать в браузере.

Одна проблема - способ сделать этот адрес статическим довольно неочевиден, пришлось поискать.

Со стороны Windows вносим в реестр (сеть для примера, выбираете любую удобную из приватных диапазонов):

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss]
"NatGatewayIpAddress"="172.24.80.1"
"NatNetwork"="172.24.80.0/20"

Со стороны WSL в /etc/wsl.conf добавляете:

[boot]
command="ip address add 172.24.80.2/20 brd + dev eth0"

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

О, даже статично можно назначить, оказывается.

Я изгалялся через "узнать из винды IP в WSL и что-то с ним сделать". Хоть DNS свой обновить, хоть в hosts прописывать.

Если же захочется дать доступ к Web-серверу в своем WSL с чужой машины, придется пробросить порты. В моем случае я подключаюсь с ноутбука к NUC серверу с WSL2 путем ssh на 2205/TCP IP адрес самой винды.

$wsl_ipaddress = wsl -d "Ubuntu" hostname -I
$wsl_ipaddress1 = $wsl_ipaddress.split(" ", 2)[0]
netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=2205
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2205 connectaddress=$wsl_ipaddress1 connectport=22

Если же использовать не просто WSL, а Docker или Kubernetes, еще проще. Можно получить дополнительный адрес из "реальной сети". Если предположить, что у Win адрес 192.168.1.5, то через MetalLB я еще .6, .7 получаю. И Ingress висит непосредственно на 192.168.1.6 безо всяких пробрасываний портов.

WSL можно тоже настроить в качестве сетевого адаптера bridge использовать. Сам за ненадобностью не делал, но видел инструкции.

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

UFO just landed and posted this here

Спасибо, интересное

При этом в базовом режиме (Win10) работает, к примеру, docker ps

Не совсем понятно что вы имеете ввиду под базовым режимом. Если это wsl1, то в нем докера нет вообще, и, вероятно, у вас вызывается docker desktop. Вы, возможно, не поверите, но вызывать утилиты командной строки и обрабатывать их вывод в продуктах от M$ было можно еще до всяких там виндов, и не они вообще были первыми, и даже не в десятке первых — ничего удивительного, и, тем более, никаких M$'овских заслуг в том, что командой,разрабатывающей docker, был соблюден совместимый командный интерфейс — нет.

Если я захожу в WSL2, так же прекрасно работает docker ps уже линуксовый

Ну, как бы, это от него и ожидается

Мне кажется <…>

Что-то каджиту кажется, что docker desktop работает и под mac, и делает он это не потому что M$ так заблагорассудилось…

А можно не выдирать по частям, а все вместе рассмотреть?

Мне кажется, надо очень большие усилия приложить для выпрямления моих беспомощных лапок, чтобы я смог запустить Linux в отдельной виртуалке, и при этом в нем же гонять виндовые контейнеры, видимые, как нативные из под виндового powershell, чтобы информация о процессах докера и т.п. уходила во внешние системы через средства мониторинга Windows...

Как там, говорите, легко и непринужденно из powershell посмотреть docker ps в отдельной линуксовой вирутальной машине (без WSL2 интеграции)?

Или как в этой самой линуксовой виртуалке легко и непринужденно запустить также и win контейнер?

Напомню, вы обвинили меня в неспособности это сделать (кривых лапках) в ответ на мое сообщение:

Я же ее понял более сдержанно. "WSL2 стал вполне на уровне, можно его использовать как практиеский полноценный Linux, и при этом получить кучу дополнительных плюшек от интеграции (в отличие от простого запуска Линукса в вируталке)"

А что вы предлагаете вместе рассмотреть, docker desktop и docker for windows (лень гуглить, как оно точно называется), у которых общего только название? )

Это не серьезно.

Так и называется. Docker Desktop for Windows.

Одно единое название.

Даже интересно стало, почему вы все время пытаетесь разделить целое на части.

Что, простите, одно целое по вашему?
Вы, похоже, смешали в кучу виндоконтейнеры, которые не поддерживаются и не работают под линукс (удивительно, не так ли?), с обернутым в докер lxc внутри vm и posh-апплеты и с управлением линукс-контейнерами.

Linux containers несовместимы с NT containers никак, и инструменты управления не совместимы.

Основной темой было преимущества wsl2 перед hyperv + x-forward вообще. К чему вы подменяете тему? )

На мой взгляд это вы подменяете тему и в который раз пытаетесь "множество улучшений, которые принес WSL2 в интеграцию win+lin" раздробить на отдельные фичи "а к linux, запущенному в виртуальной машине, и раньше можно подключаиться через X".

Можно посто взглянуть на корневой комментарий, и все станет понятно: кто что обсуждал, кто как размывал, на что подменял ;)
Можно в матчасть еще заглянуть… но это требует навыка разбираться в том, что творится не только под носом, но и под капотом…

По глупости, не по злому умыслу. Здесь вы правы.

Из альтернатив есть только три с половиной пути самурая

  1. Поставить на отдельные рядом стоящие компы, соединить клавомышь через Synergy.

WSL у меня, понятное дело, стоит и используется, но для всяких админских задач и экспериментов некоторое время назад перешёл на отдельную удалённую виртуалку.

Плюсы - можно запустить в screen долгоиграющую задачу и ноут свой выключить. Можно в срочной ситуации, если ноут не под рукой, подключиться и сделать что надо хоть со смартфона. Бекапится всем образом сразу штатными средствами гипервизора по расписанию. При необходимости легко увеличивается объём выделенных ресурсов (некоторым штукам оперативки надо МНОГО, но иногда это довольно разовые задачи).

Мне пришлось удалить и докер, и wsl из-за того что с ними не запускается эмулятор андроида.

Думаю там речь про сторонний эмулятор типа Bluestacks, с ними были такие заморочки, да.

У меня Windows Subsystem for Android, тоже работает прекрасно (что не удивительно).

У меня стоит Memu - после установки WSL его немножко покосожопило, но сейчас запускается.

LDPlayer - сейчас проверил - сразу запустился

ИМХО в корпоративных доменных сетях построенных поверх AD сложно работать не на виндовом ноуте. Тот же аутлук и его календарь не заменяемый ничем, да есть аналоги но я пробовал кажется все и в одних хорошо реализовано одно в других другое, есть веб версия но это тоже не то. И WSL сейчас позволяет делать все что мне нужно было от линукса, начиная с запуска докера и заканчивая ансиблом и тому подобными штуками.

Раньше использовал кряченный SecureCRT для подключения по ssh и telnet, сохраняя нужные сессии, как в вашем случае VPS. Потом задался целью полного отказа от крякнутого софта и нашёл идеальную бесплатную замену в лице Xshell. Уверен что разницы между Win+R, ввод команды и запуском Xshell и даблкликом в сохранённую сессию на любой сервер линукса нет.

Хм... XShell для коммерческого использования стоит 99$ (и это только за 1 год обновлений, за продление потом отдельно платить). Если использование действительно для домашних нужд, где редко бывает больше пары, ну ОК, полдюжины серверов, - то так ли нужны эти заморочки, чем Windows Terminal не устраивает (его сессии, кстати, удобно через PowerTys Run запускать)? А если лукавить и использовать для коммерческих нужд домашнюю версию - чем это лучше кряка?

Sign up to leave a comment.

Articles