In this post we install and configure an instance of Ubuntu Server under WSL2 for Linux. Many developers are going to choose to use WSL2, so we guide them to install the Ubuntu Server version of WSL2. This provides a more standard environment referenced by many howto procedures on the Internet.
WSL2 enables a computer running Windows 11 Pro to host a guest instance of Ubuntu Server:
WSL2 offers some advantages for a developer experience
WSL2 offers some advantages for a local developer in terms of networking: if they install a service that opens a port, like port 22/tcp for SSH, that same port is opened on localhost of the Windows machine hosting the WSL2 Ubuntu Server instance. A developer can SSH to port 22 on localhost, without configuring a static IP address or port forwarding. This eliminates the need to configure virtual switches, static IP addresses, and port forwarding. In addition, WSL2 provides a file mounts of the Windows file system within Linux, and a file mount of the Linux filesystem within Windows.
Other ways to install Ubuntu Server on a Windows 11 Pro computer
There are other ways to install Ubuntu Server on a Windows 11 Pro computer, including Windows Hyper-V. If you need to host multiple instances of Ubuntu Server with static IP addresses and subnet routing, consider using Hyper-V instead.
Start a CMD window as Administrator. At the Start menu, type the letters “cmd” then right-click on the app icon to run the command prompt as root:
Enter the following command:
Enter the following command:
wsl --install -d Ubuntu-24.04
Reboot your computer.
Enter values for username and password:
Enter the following command from a CMD window running as Administrator:
Enter the following command:
wsl --setdefault Ubuntu-24.04
Enter the following command:
Enter the following command:
Enter the following command:
Updating apt packages on the Linux system
Enter the following commands:
Enter the following command:
Enter y for yes:
Enter the following command:
from a CMD window running as Administrator, enter the following command:
Installing some utilities
Enter the following commands:
sudo su apt install net-tools git build-essential
Installing openssh-server
Enter the following command:
apt install openssh-server
From a CMD window running as Administrator, enter the following command:
From KiTTY SSH terminal:
Create and save a session called localhost pointing to the host localhost:
Click on “Accept”:
Accessing the Windows file system within Linux
Look at the mountpoint:
Accessing the Linux file system within Windows
From File Explore on Windows, look for the Linux device icon:
Exposing the SSH port on the public IP address of the Windows computer
From a CMD window run as Administrator, enter the following command:
Look through the listing to find the public IP address of the Windows computer:
From a shell on the Linux instance, enter the following command:
Look through the listing to find the public IP address of the Linux instance:
Opening a firewall exception for port 22/tcp (SSH) inbound on the Windows computer
Click on “New Rule…”:
Select “Port”, click on “Next”:
Select “TCP”. Select “Specify local ports”, enter the value 22. Click Next:
Select “Allow the connection”, click “Next”:
Ensure that “Domain”,”Private”,”Public” are selected. Click “Next”:
For “Name” enter the value: in22tcp
For “Description (Optional):” enter the value: in22tcp
Click “Finish”:
Allowing connections to port 22/tcp of the Linux instance via the public IP address of the Windows Computer
From a CMD window running as Administrator, enter the following commands (subtitute appropriate values for windowsip and wsl2ip:
netsh interface portproxy add v4tov4 listenaddress=windowsip listenport=22 connectaddress=wsl2ip connectport=22
netsh interface portproxy show all
Хочу поделиться своим опытом по организации простого виртуального сервера на линуксе на локальном компьютере.
Зачем это нужно?
Для тестирования своих проектов на совершенно бесплатном своем вебсервере на линуксе, который к тому же можно в течении минимального времени вернуть к любому нужному состоянию и продолжить эксперименты.
Вы скажете, а как же Опенпанель, Денвер, Ксампп, Вингинкс и т.д?
Всё это, безусловно, очень удобно и хорошо. Создателям этих инструментов надо поставить памятник! Но иногда требуется протестировать работу сайтов и приложений на реальном линукс-сервере. Со всеми установками веб-панели, работой в консоли по SSH, с правами на папки, установленными расширениями и прочими нюансами. Можно, конечно, за 150 рублей в месяц найти вполне нормальный VDS, но это опять зависимость от воли хостера и доброжелательности техподдержки.
Можно и вообще ничего не тестировать, не экспериментировать, а задавать вопросы на форуме в надежде, что подскажут товарищи, у которых есть площадка для экспериментов. Но это какой-то растительный метод существования. А человек должен мыслить и развиваться!
Инструкция рассчитана на самых неискушенных в линуксе людей, как и я сам.
Итак, по пунктам:
1. Создание виртуальной машины.
Заходим на сайт Оракла и скачиваем Виртуалбокс.
www.virtualbox.org/
Устанавливаем Виртуалбокс (далее буду называть его просто VB) стандартно, все что ни предложит – принимать. В настройках можно указать свою папку для виртуальных машин по умолчанию.
Спойлер
Скачиваем минимальный линукс. То есть практически голое ядро с загрузчиком. Мне больше нравится Centos 7, поэтому далее все будет на примере Центоса. Скачать минимальный Centos: isoredirect.centos.org/centos/7/isos/x86_64/
По любой из ссылок скачать CentOS-7-x86_64-Minimal-1908.iso
Далее создаем новую виртуальную машину. Если её назвать как-то вроде Cent111, VB сразу предложит настройки подходящие для установки Центоса и можно смело с ними соглашаться и просто жать кнопку «Далее».
Потом нужно настроить созданную машину. Настроек потребуется всего две: настроить сеть, выбрав тип подключения «Сетевой мост» и сразу подключить образ Центоса для установки:
Спойлер
Запускаем виртуальную машину и Центос сразу начинает устанавливаться. При установке можно выбрать русский язык, тогда линукс будет ругаться по-русски, но в этом случае нужно не забыть переместить английский ввод на первую позицию, иначе будет по умолчанию вводить в консоли русские буквы.
Спойлер
Также очень важно не забыть включить сеть!!! Потому что, попытка включить потом на уже установленной машине, может привести к вывиху мозга.
Не забудьте сразу записать ip, который получила виртуальная машина. Впрочем, если забудете — потом можно посмотреть.
Спойлер
Потом нужно установить пароль root, даже самый простой, иначе линукс сгенерирует пароль сам и Вам не скажет. Если ругается на простой пароль – просто нажмите кнопку «Готово» дважды.
Потом минут 10 устанавливается Центос. Жмем кнопку «Перезагрузка» и видим черное окно с загружающимся линуксом. Далее вводим логин root и ваш пароль. Ввода пароля видно не будет, но нужно ввести его вслепую и нажать энтер. Все, наша виртуальная машина готова!
Теперь нужно посмотреть, какой айпи она получила в сети. Набираем в консоли ipconfig и видим фигу! В минимальном центе не установлен net-tools. Устанавливаем его.
yum -y install net-tools
После установки можно посмотреть айпи. Набираем
Ifconfig
Если лень ставить неттулз – можно набрать в консоли просто
Ip addr
Видим кучу всяких цифирок, одна из которых будет айпишником вашей виртуальной машины.
В этот момент я настоятельно советую снять образ виртуальной машины в этом состоянии, чтобы потом не устанавливать всё заново, если что-то пойдет не так.
2. Снять образ виртуальной машины:
Выключаем виртуальную машину и в меню «Файл» VB жмем «Экспорт конфигураций», выбираем нашу созданную виртуальную машину (далее буду называть её BM), выбираем папку, куда сохранить, называем как-нибудь файл конфига (например Cent0), соглашаемся со всем, что предложит VB и сохраняем. Сохраняется пару минут. Теперь, в случае неудач при дальнейших экспериментах, мы всегда можем удалить загубленную экспериментами ВМ и восстановить заново в первозданном состоянии. Для этого нужно удалить существующую ВМ, нажать «Импорт конфигураций», выбрать наш сохраненный файл и мы получим нашу ВМ в первозданном виде за несколько секунд.
3. Настраиваем подключение в Putty.
С Центосом в самом окне VB работать очень неудобно, он не поддерживает вставки и копирования с родительской машины, поэтому для работы в консоли будет удобнее установить консольный клиент Putty. Скачиваем его здесь: putty.org.ru/download.html
Советую скачивать именно ту версию, ссылка на которую в окне с дискетой. Она хоть и не самая новая, но зато русифицирована и имеет некоторые дополнительные фичи в виде сохранения паролей.
Потом можно сохранить логин-пароль и не нужно будет его вводить каждый раз.
После этого нужно ткнуться опять в верхнюю строчку меню (Сеанс), назвать как-нибудь ваше подключение, ввести ip вашей BM и нажать «Сохранить».
Спойлер
Жмем на название нашего подключения и открывается окно Putty. Если все введено правильно появится вывод командной строки [root@localhost ~]#
Дальше нужно установить Midnight Commander
yum -y install mc
И nano
yum -y install nano
Теперь можно обновить ВМ
yum -y update
Дожидаемся окончания обновления и проверяем работу миднайткоммандера
mc
Должно появиться синее окошко похожее на нортонкоммандер.
Спойлер
В нем работает мышь, можно копировать, переносить, редактировать, запаковывать и распаковывать файлы вашей ВМ. Инструкция по пользованию mc здесь: midnight-commander.org/wiki/ru/doc
Если все нормально работает – экспортируем эту конфигурацию на всякий случай под именем например Cent1(пункт 2).
4. Установка WEB-панели.
Теперь у нас есть подготовленная к работе ВМ и мы можем установить на нее какую-нибудь веб-панель, для управления сайтами.
Из необычайного разнообразия панелей наиболее удобны ISPmanager (платная панель), Vestacp (бесплатная) и Brainycp (тоже бесплатная). Хоть ISP и платная, но её тоже можно установить на тестовую ВМ и две недели тестового периода над ней экспериментировать.
Я экспериментировал со всеми панелями, какие только знаю, поэтому советую Весту. Все быстро, просто, стабильно, расширяемо и имеет хороший форум поддержки на русском в том числе.
Итак, устанавливаем Весту. Идем сюда: vestacp.com/install/, мотаем чуть ниже в ADVANCED INSTALL SETTINGS, выбираем то, что нужно для тестового сервера (зачем на тестовом всякие спамассасины и прочие излишества), вводим желаемое название тестового домена, например cent.test, свой емейл (будут реально приходить письма с Весты) и пароль.
Потом копируем пункты 2 и 3 и вcтавляем правой кнопкой мыши в окно консоли Putty с подключенной вашей ВМ. На все запросы жмем y и энтер.
Минут 15 оно будет печать в окошке всякую информацию, можете даже попробовать её почитать.
В процессе кроме Весты установятся Apace, Nginx, MariaDB, phpmyadmin и прочие нужные вещи.
Потом выдаст что-то типа этого
Спойлер
=======================================================
_| _| _|_|_|_| _|_|_| _|_|_|_|_| _|_|
_| _| _| _| _| _| _|
_| _| _|_|_| _|_| _| _|_|_|_|
_| _| _| _| _| _| _|
_| _|_|_|_| _|_|_| _| _| _|
Congratulations, you have just successfully installed Vesta Control Panel
your_ip:8083
username: admin
password: you_password
We hope that you enjoy your installation of Vesta. Please feel free to contact us anytime if you have any questions.
Thank you.
Все, Веста установлена. Проверяем, все ли работает. Переходим по адресу your_ip:8083 и видим окно авторизации. Вводим логин-пароль и видим панель.
Заходим просто по айпи your_ip и видим приветствие большими серыми буквами.
Если все нормально работает, можно сохранить это состояние. Выключить ВМ, экспорт конфигураций и сохраняем в файл например Vesta0. Это будет чистая и незамутненная экспериментами Веста.
5. Установка сайта на вашу ВМ.
В Весте от имени админа лучше сайтов не делать. Потом проблем не оберетесь. Сразу создаем нового пользователя. User – Жмем зеленый кружок – Add user. Создаем какого-нибудь юзера, например с именем Cent. Вводим ему пароль, емейл и указываем имя-фамилию от балды. Жмем Add – юзер создан.
Находим кнопку Edit, и выcтавляем SSH Access в положение bash. Потом это пригодится!
ADDING USER→ User cent has been created successfully. / login as cent
Логинимся под нового юзера и создаем наш сайт.
Идем Web – жмем зеленую кнопку — Add web domain. Казалось бы будет логично создать сайт, который мы заявляли при установке Весты, cent.test, но он уже есть у админа, второй создать не даст. Поэтому либо перелогиниваемся обратно под админа (в правом верхнем углу admin->cent logout) и удаляем админский сайт cent.test, либо делаем сайт с другим именем, на тестовом сервере это все равно. Потом жмем кнопку DB вверху, зеленый плюс и создаем базу данных. Название, логин, пароль и т.д.
Потом коннектимся к нашей ВМ по ftp любой удобной Вам программой. Filezilla, Totalcomander, WinSCP. Вот WinSCP настоятельно рекомендую установить: winscp.net/eng/download.php
С его помощью можно не только управлять файлами, но и править их в любом удобном редакторе прямо на сервере.
Итак, подключились по ftp, идем в папку /home/cent/web/cent.test/public_html, удаляем или переименовываем лежащий там файл index.html и закачиваем туда архив с нашим сайтом, или установочный архив InstantCMS. Загруженный архив можно было бы распаковать из WinSCP, но это будет настолько долго, что проще распаковать архив на компе и загружать уже распакованным. Поэтому это не наш метод. Подключаемся по SSH при помощи Putty, перелогиниваемся под юзера cent. Это важно! Иначе владельцем файлов будет root.
su cent
и запускаем миднайт коммандер:
mc
Там заходим в папку web/cent.test/public_html и видим наш архив. Теперь можно его распаковать.
Тыкаем в него правой кнопкой, вверху выбираем Команда – Меню пользователя – Do something on current file. В открывшемся поле ввода набираем unzip и жмем энтер. Пока убираем палец с энтера – архив уже распакован. Можно приступать к установке сайта. Заходим по айпи адресу нашей ВМ и видим меню установки InstantCMS. Что делать дальше, думаю все знают.
Если нужно несколько сайтов — просто создаем под вашим пользователем сколько нужно сайтов с разными названиями, потом идем на компьютере в папку c:\Windows\System32\drivers\etc\ и редактируем файл hosts
В конец файла написать
192.168.1.107 cent1.tes
192.168.1.107 cent2.tes
192.168.1.107 cent3.tes
И так далее. Соответственно имена сайтов и айпи вставьте свои. Тогда ваши сайты будут открываться по доменному имени.
Теперь можно оттюннинговать нашу панель.
6. Доработка панели Веста.
Сразу предупреждаю, весь этот тюннинг хорош для тестового сервера, на рабочей панели Веста такое делать можно на свой страх и риск и если понимаете, что делаете!
6.1 Повышаем версию MariaDB с 5.5 до 10.2:
Создаем новый файл репозитория мариидб:
nano /etc/yum.repos.d/mariadb.repo
Вставляем туда это:
# MariaDB 10.2 CentOS repository list - created 2018-01-18 19:33 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
и жмем CTRL + X потом Y и энтер.
Останавливаем Марию
systemctl stop mariadb
и обновляем пакеты
yum -y update
Должна скачаться и установиться новая версия Марии. Запускаем её снова
systemctl start mariadb
Теперь заходим в phpmyadmin your_ip/phpmyadmin и видим новую версию Марии.
Спойлер
6.2 Устанавливаем новые версии php.
Самый простой вариант – идем сюда github.com/Skamasle/sk-php-selector/blob/master/sk-php-selector.sh, копируем там всю эту простыню, вставляем правой кнопкой в окно SSH и жмем энтер. Далее все поставится само. Создателю данного переключателя php Skamasle – отдельное спасибо! Рестартуем Апач
systemctl restart httpd
Теперь можно переключать версии php в настройках web-домена:
Спойлер
6.3 Замена стандартного шаблона Весты:
И наконец для самых тонких ценителей извращений – замена стандартного шаблона Весты на Admin_LTE, доработанный специально под Весту товарищем louislam.
yadi.sk/d/vI6J7HSr3RafaN
Скачиваем архив, распаковываем и при помощи WinSCP копируем содержимое архива в папку /usr/local/vesta/web с заменой файлов.
Наслаждаемся модным интерфейсом Admin_LTE.
Спойлер
7. Установка и тестирование BrainyCP
Установить Брейни на ВМ с уже установленной Вестой не получится, поэтому останавливаем ВМ, удаляем её полностью со всеми файлими и импортируем конфигурацию с чистым обновленным Центосом, сохраненную нами ранее как Cent1. Теперь на нее можно установить Брейни.
BrainyCP новая бесплатная web-панель со множеством настроек. Удобства по сравнению с Вестой — имеет встроенный файлменеджер elFinder, можно прямо из панели менять и устанавливать дополнительные версии php и mysql. Также имеется уже установленный ioncube loader и memcached.
Недостатки по сравнению с Вестой — легкая тормознутость (обдумывает каждое нажатие кнопки) и нестабильность. Никогда не знаешь, что откажется работать и по какой причине. У меня например, отказался работать ftp сервер. Но его удалось переустановить прямо из панели.
Заходим на официальный сайт Брейни в даунлоадс brainycp.com/download, мотаем чуть вниз в расширенную установку, выбираем нужные настройки и жмем «Сгенерировать команду установки».
Спойлер
Текст из серого окошка выделяем, копируем и правой кнопкой вставляем в консоль Putty.
Устанавливается минут 40. Брейни система навороченная.
Спойлер
После установки переходим в браузере по адресу ваш_ip:8002 и видим панель авторизации.
Спойлер
Там вводим логин root и ваш пароль рут, который Вы задали при установке Центоса.
В Брейни тоже никаких сайтов от админа заводить не нужно (админская учетка не для этого), а нужно создать нового пользователя, войти под ним и создать новый сайт.
Windows Server Installation Guide
The Windows Subsystem for Linux (WSL) is available for installation on Windows Server 2019 (version 1709) and later. This guide will walk through the steps of enabling WSL on your machine.
Install WSL on Windows Server 2022
Windows Server 2022 now supports a simple WSL installation using the command:
You can now install everything you need to run WSL on Windows Server 2022 by entering this command in an administrator PowerShell or Windows Command Prompt and then restarting your machine.
This command will enable the required optional components, download the latest Linux kernel, set WSL 2 as your default, and install a Linux distribution for you (Ubuntu by default).
See the standard WSL docs for more information on how to:
Install WSL on previous versions of Windows Server
To install WSL on Windows Server 2019 (version 1709+), you can follow the manual install steps below.
Enable the Windows Subsystem for Linux
Before you can run Linux distributions on Windows, you must enable the «Windows Subsystem for Linux» optional feature and reboot.
Open PowerShell as Administrator and run:
Download a Linux distribution
See the Downloading distributions section of the manual installation page for instructions and links to download your preferred Linux distribution.
Extract and install a Linux distribution
Now that you’ve downloaded a Linux distribution, in order to extract its contents and manually install, follow these steps:
Extract the .appx package’s contents, using PowerShell:
Once the distribution has been downloaded, navigate to the folder containing the download and run the following command in that directory, where app-name is the name of the Linux distribution .appx file.
Installation failed with error 0x8007007e: If you receive this error, then your system doesn’t support WSL. Ensure that you’re running Windows build 16215 or later. Check your build. Also check to confirm that WSL is enabled and your computer was restarted after the feature was enabled.
3.Add your Linux distribution path to the Windows environment PATH ( C:\Users\Administrator\Ubuntu in this example), using PowerShell:
Источник
Руководство по установке Windows Server
Подсистема Windows для Linux (WSL) доступна для установки на Windows Server 2019 (версия 1709) и более поздних версий. В этом руководстве рассматриваются действия по включению WSL на компьютере.
Установка WSL в Windows Server 2022
Теперь Windows Server 2022 поддерживает простую установку WSL с помощью команды:
Теперь вы можете установить все необходимые компоненты для запуска WSL в Windows Server 2022. Для этого введите эту команду в PowerShell от имени администратора или в командной строке Windows и перезапустите компьютер.
Эта команда позволяет включить необходимые дополнительные компоненты, скачать последнюю версию ядра Linux, установить WSL 2 в качестве компонента по умолчанию и установить дистрибутив Linux (по умолчанию Ubuntu).
Из стандартной документации по WSL вы узнаете, как выполнять следующие задачи:
Установка WSL в предыдущих версиях Windows Server
Чтобы установить WSL в Windows Server 2019 (версия 1709+), выполните действия, описанные ниже.
Включение подсистемы Windows для Linux
Перед запуском дистрибутивов Linux в Windows необходимо включить дополнительный компонент «Подсистема Windows для Linux» и перезагрузить компьютер.
Запустите PowerShell от имени администратора и выполните следующую команду:
Скачивание дистрибутива Linux
Инструкции и ссылки для скачивания нужного дистрибутива Linux см. в разделе Скачивание дистрибутивов в статье по выполнению установки вручную.
Извлечение и установка дистрибутива Linux
После загрузки дистрибутива Linux для извлечения его содержимого и установки вручную выполните следующие действия.
Извлеките содержимое пакета .appx , с помощью PowerShell:
После скачивания дистрибутива перейдите к папке со скачанным файлом и выполните следующую команду в этом каталоге, где app-name — имя APPX-файла дистрибутива Linux.
Сбой установки с ошибкой 0x8007007e. При возникновении этой ошибки система не поддерживает WSL. Убедитесь, что вы используете сборку Windows 16215 или более позднюю версию. Проверьте используемую сборку. Также убедитесь, что WSL включен и ваш компьютер перезагружен после включения этой функции.
3. Добавьте путь к дистрибутиву Linux в переменную PATH в Windows (в этом примере C:\Users\Administrator\Ubuntu ) с помощью PowerShell:
Источник
Как запустить Linux на Windows Server 2019 с WSL
Вопросы: Как включить функцию Windows Subsystem for Linux (WSL) на Windows Server 2019?
Как использовать Linux на Windows Server 2019?
В этом руководстве показано, как включить функцию Windows Subsystem for Linux (WSL) на сервере Windows 2019 и запустить сервер Linux, например Ubuntu, внутри Windows Server.
В нашей последней статье мы рассмотрели запуск контейнеров Docker на Windows Server.
Подсистема Windows для Linux позволяет вам запускать среду GNU / Linux, которая включает большинство инструментов, утилит и утилит командной строки Linux непосредственно в вашей системе Windows без каких-либо изменений или издержек в хост-системе.
Одна предварительная версия уже установлена Windows Server 2019.
Достаточно повезло,что у нас есть руководство по установке Windows Server 2019.
Шаг 1. Включите функцию Windows Subsystem для Linux (WSL) в Windows
Прежде чем вы сможете установить любой дистрибутив Linux для WSL, вы должны убедиться, что включена функция «Windows Subsystem for Linux»:
Откройте PowerShell от имени администратора и выполните следующую команду, чтобы включить функцию Windows Subsystem for Linux (WSL) в Windows.
Согласитесь и перезагрузите компьютер при появлении соответствующего запроса.
Вы можете сделать то же самое из Диспетчер серверов графического интерфейса Server Manager>Add roles and features>Select features
Шаг 2: Установите свой Linux
Существуют различные способы установки дистрибутивов WSL Linux через Microsoft Store.
В этом руководстве мы будем использовать скачать и установить один из командной строки.
Запустите PowerShell и загрузите дистрибутив с помощью командлета Invoke-WebRequest или curl.exe. Вот пример инструкции по загрузке Ubuntu 18.04.
После загрузки распакуйте и установите дистрибутив Linux.
Измените свой рабочий каталог на ubuntu1804 и запустите программу установки, чтобы завершить установку дистрибутива.
Программа установки предложит вам указать имя пользователя и пароль для создаваемого пользователя UNIX.
Команда sudo может использоваться для привилегированных операций.
Добавьте свой путь к дистрибутиву в среду PATH среды Windows, используя Powershell:
Это позволит вам запустить ваш дистрибутив с любого пути, набрав .exe загрузчик
Например, используя ubuntu1804.exe.
Обратите внимание, что для этого потребуется закрыть и перезапустить PowerShell.
Наслаждайтесь использованием дистрибутива Linux на вашем Windows Server. Другие дистрибутивы Linux, которые вы можете запустить:
Источник
Как установить и запустить Ubuntu WSL под Windows 10
У пользователей Windows 10 есть необычная возможность установить операционную систему Ubuntu на свой компьютер. Механизм, обеспечивающий такую возможность, называется WSL — Windows Subsystem for Linux. Далее я расскажу, как с помощью WSL установить полноценную Ubuntu на Win 10 штатными средствами системы.
Что такое Ubuntu WSL
Для начала кратко поясню, что такое WSL на практике. Это некий слой абстракции, который позволяет запускать linux приложения в среде windows. И это не виртуальная машина. И Linux, и Windows приложения работают в рамках одной операционной системы с совместным доступом к данным на дисках. Вы прозрачно можете запустить приложение на ubuntu и открыть им файл в директории windows.
Для примера, расскажу, где ubuntu под wsl версии 1 хранит свои файлы — C:\Users\user1\AppData\Local\lxss.
Тут и корень системы, и директории пользователей. Посмотреть содержимое можно из-под windows. Только не рекомендуется их редактировать. Работа linux системы может быть нарушена. На примере доступа к файлам видно, что это не виртуальная машина. Важно понимать это отличие.
А вот то же самое можно сделать из-под ubuntu, открыв файлы из директории windows.
С помощью данной технологии, вы условно сможете запустить полноценный Ubuntu Server на своем компьютере. Читайте мой обзор на Ubuntu, чтобы иметь представление о том, чем он отличается от остальных linux дистрибутивов.
Зачем нужна Ubuntu WSL на Windows
Поговорим немного о том, зачем может понадобиться установка Ubuntu WSL в Windows 10. Можно в небольшой список это вынести и перечислить по пунктам:
- Первое и самое очевидное — для использования линуксовых утилит — git, ansible, cron, rsync и т.д. Речь в первую очередь идет о том софте, которого нет в windows, либо которое затруднительно или неудобно запускать.
- Настройка привычного web окружения в виде lamp (linux, apache, mysql, php) или lemp (то же самое, только с nginx). Особенно это актуально для разработчиков.
- Для обычного знакомства и изучения linux. Нет нужды разбираться с виртуализацией или рядом с windows устанавливать отдельно linux. Тут все в комплекте, можно без проблем переключаться между системами в режиме реального времени. В общем, это удобно.
Это то, что первое приходит в голову. Думаю, есть и другие причины, для чего может быть полезно установить ubuntu wsl. Делитесь своим мнением в комментариях. Может я что-то важное упускаю.
Установка Ubuntu WSL под Win 10
Установка подсистемы Windows для Linux в Windows 10 неплохо описана в официальном руководстве от Microsoft. Чтобы установить Ubuntu WSL на Windows, надо для начала включить компонент системы Windows под названием Windows-Subsystem-Linux. Для этого запускаем cmd с правами администратора (это важно!) и переходим в powershell. Там выполняем:
После этого активируем компонент Платформа виртуальных машин.
Далее обязательно перезагрузить систему, иначе дальше будут ошибки. После перезагрузки продолжаем ставить ubuntu под wsl.
Cкачиваем и устанавливаем Пакет обновления ядра Linux в WSL 2 для 64-разрядных компьютеров — https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
Дальше устанавливаем версию WSL 2 по умолчанию. Она более продвинутая и быстрая, по сравнению с первой.
Теперь идем в Windows Store и ищем там необходимую вам версию Ubuntu WSL. Я просто в строку поиска ввел название дистрибутива и получил все доступные версии.
После установки в меню Пуск можно запустить Ubuntu WSL. При первом запуске вам предложат задать имя пользователя для Linux системы.
Вот и все. Заходим в свежеустановленную Ubuntu 20 LTS на Win 10.
У вас под рукой практически полноценная linux система, работающая нативно под windows.
Настройка Ubuntu WSL
Выполним первоначальную настройку Ubuntu WSL, чтобы с ней удобнее было далее работать. Начнем с подключения по SSH.
Настройка ssh
Терминал Windows не очень удобен и привычен. Так что если вы привыкли подключаться по ssh через какой-нибудь другой менеджер подключений, вам нужно будет на wsl системе настроить ssh. Это не совсем очевидная процедура. Чтобы заставить нормально работать openssh server, его надо переустановить. Делаем это:
Теперь сразу разрешим подключаться с использованием паролей. Для этого открываем конфиг /etc/ssh/sshd_config и разкомментируем настройку:
После этого перезапустите службу sshd
Мы закончили настройку ssh в ubuntu. Теперь к ней можно подключиться, например, через putty. Используем адрес 127.0.0.1 и порт 22.
Вот и все. Можете использовать любой другой ssh клиент.
Обновление
Для того, чтобы обновить Ubuntu WSL на Windows 10 достаточно внутри linux системы запустить стандатрное средство обновления пакетов — apt.
В общем случае этого достаточно для обновления системы. Если же вы хотите выполнить обновление до следующего релиза, то лучше это сделать через Windows Store, установив нужную версию ubuntu.
Установка MC
Для того, чтобы установить популярный в linux среде файловый менеджер Midhight Commander или коротко MC, необходимо опять же воспользоваться пакетным менеджером apt.
При этом вы сможете без проблем перемещаться не только внутри ubuntu, но и открывать файлы windows. Традиционные диски C:, D: и т.д. смонтированы в /mnt.
Войти под root
Для того, чтобы в Ubuntu WSL зайти под ученой записью root, необходимо под пользователем выполнить в консоли:
Теперь вы полноценный root пользователь и можете запускать команды с повышенными привилегиями без sudo.
Автозапуск служб
В Ubuntu WSL не работает systemd и возникает закономерный вопрос, а как же тогда настроить автозапуск нужных служб. Тут есть два принципиально разных подхода по автозапуску служб:
- Служба в wsl запускается автоматически после запуска компьютера.
- Служба wsl запускается автоматически после первого входа в bash установленного linux.
Для первого случая проще всего воспользоваться готовым скриптом wsl-autostart — https://github.com/troytse/wsl-autostart. С его помощью вы можете выбрать любые программы из ubuntu, которые захотите запустить при старте компьютера.
Если вы хотите выполнить какую-то команду при первом входе в wsl, то просто добавьте ее в файл .bashrc домашнего каталога пользователя. Например, добавим туда вывод фразы Hello World! Для этого добавляем в самый конец:
Теперь при запуске терминала wsl, вы увидите свое сообщение.
Вместо команды echo можете написать любую другую. Например, запуск MC:
Теперь при запуске терминала ubuntu wsl у вас автоматически будет запускаться файловый менеджер MC.
Обновление WSL до WSL2
Во время установки любой WSL системы у вас есть возможность выбора ее версии. Вторая версия более современная и быстрая, так что в общем случае рекомендуется использовать ее. Но возможно вам по какой-то причине понадобится первая. Например, в WSL 1 файловая система linux в открытом виде в виде файлов в директории C:\Users\user1\AppData\Local\lxss, а во второй версии в виде единого виртуального диска. Разница принципиальна.
Для того, чтобы обновить WSL1 до WSL2 необходимо через powershell активировать компонент VirtualMachinePlatform:
Указать версию WLS2 как дефолтную:
В завершении проапгрейдить установленный дистрибутив до WSL2 или поставить новый.
Версии WSL можно переключать в любое время. Узнать distribution name можно с помощью команды:
Reboot Ubuntu WSL
Работа в Windows 10 с Ubuntu несколько необычна, поэтому сходу не понятные даже такие простые вещи, как перезагрузка linux системы. Как сделать reboot в Ubuntu WSL? Для того, чтобы перезагрузить систему, достаточно выполнить в консоли powershell команду:
Все экземпляры wsl будут завершены. После запуска терминала ubuntu wsl она запустится заново, что будет равнозначно обычной перезагрузки системы.
Если вы используете первую версию WSL, то перезапуск linux систем выполняется перезапуском службы, которая их обслуживает. Выполняется так же в консоли windows^
Как удалить Ubuntu WSL
Если вам нужно удалить Ubuntu WSL из Windows 10, то сделать это можно точно так же, как любое другое приложение, установленное из Магазина. Выбираете Ubuntu WSL через пуск и нажимаете Удалить.
То же самое можно сделать и через консоль powershell
Список установленных систем смотрим командой:
Ничего сложного, система удаляется фактически в одну команду. Для повторной установки достаточно еще раз установить ubuntu через Магазин.
Источник
Composite
Posted on
• Edited on
Yay! WSL 2 now supports on Windows Server 2022!
and, Microsoft now introduced how to install WSL 2 on Windows Server 2022!
WSL2 now available on Windows Server 2022
TL;DR; for normal users:
- Install Windows update KB5014021 first. you can skip if you installed this update.
- Install Hyper-V if not installed.
- just run
wsl --install
and see process of install kernel, default distro like Ubuntu, and done.
Well, are you still having trouble? okay, I tell you how to figure it out.
Cannot apply WSL version 2?
YOU MUST INSTALL KB5014021 UPDATE FIRST!
wsl --install
does not work!
If you run wsl --install
, some users will see HOWTO message instead of installing message.
Me too. but don’t worry. you can go manual solution for installing WSL 2 like Windows 10. note that if you see not working via wsl --install
, you’ll see not working via wsl --update
too. so, follow instructions below:
- run
wsl --set-default-version 2
. - Download WSL Update Package
- Install and Reboot
-
wsl --install -d Ubuntu
to install WSL Distro. You can change distro bywsl -l -o
for list of Available distros. - WSL2 will initialized automatically.
WSL 2 didn’t run and got message WslRegisterDistribution failed with error: 0x800706be
.
when you install Windows Server, you’ll never see create user while installing and startup as Administrators
.
Administrator
is Windows root user and CANNOT use some specified features on Windows(such as Microsoft store apps, WSL2…). so, you must create a normal user with Administrator
, Users
group. Administrator
group makes you can initialize distros and manage WSL status. yes, it also activates annoying privileges elevation popup like Windows 10.
after login a created user and run distros like Ubuntu, you’ll see just working without problem.
Is this not Windows 11 based?
Sadly, NO. so you can’t use WSL with Windows 11 only feature like these:
- attach Hyper-V Private network and set static IP.
- Startup script.
- WSLg.
I want to make SSH server open to external network.
You can follow this instructions.
Yes. he posted more easier solution but it can use only SSH solutions, not for other linux service.
If you scripted solution and attach in Task scheduler, I made and recommend powershell script below:
NOTE: sudo
will prompt password by default. if you don’t want to do without password, use sudo visudo
and append a line like:
# change username to your linux default user name who can run sudo.
username ALL=(ALL:ALL) NOPASSWD: /sbin/service, /usr/sbin/service
Enter fullscreen mode
Exit fullscreen mode
or you can just use NOPASSWORD: ALL
instead for all sudo process without prompt password.
save to file with path you want, and make new task schedule with:
- Input task name as you want.
- User is current WSL’s user.
- Check Run whether user is logged on or not and Run with the highest privileges.
- Trigger: schedule every 5 mins recommended. if first run or IP changed, this script will register port forwarding and firewall inbound and outbound rules. or replace if exists.
- Action:
%WINDIR%\system32\\WindowsPowerShell\v1.0\powershell.exe
- Arguments:
-NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File "C:\Path\To\wsl2-network.ps1
- Working Directory: it’s optional. but you can input ps1 path.
Run it now! Next, how you can check it’s success:
-
wsl hostname -I
for see current distro’s IP. (may be 1 or multiple IPs. but if it dosen’t work, check default distro and set default distro and run script again.) -
netsh interface portproxy show v4tov4
for list of port forwaing. and see IPs equal towsl hostname -I
. - Open Windows advanced firewall and see
WSL 2 Firewall Unlock
exists in inbound and outbound rules.
At last, go to external client and connect SSH and see it works.
Don’t forget enable PubkeyAuthentication yes
or PasswordAuthentication yes
in distro’s /etc/ssh/sshd_config
and check the SSH service is running or wsl service ssh start
.
If you connected your WSL2 SSH Server, it’s done.
How to connect Windows RDP by tunneling WSL instead of Direct?
Yes, sure, RDP shouldn’t connect without any security tunnel.
First, Disable ALL RDP-In inbound rules in Windows Firewall. You can skip if your server’s network is in router.
and you must get distro’s gateway IP first.
$ ip route show | grep -i 'default via'| awk '{print $3 }'
Enter fullscreen mode
Exit fullscreen mode
If you wan’t tunneling hostname instead of IP, you can make crontab script with the script:
#!/bin/bash
IP=$(ip route show | grep -i 'default via'| awk '{print $3 }')
HOST="gateway"
if cat /etc/hosts | fgrep -q "$HOST"
then sed -i "/$HOST/ s/.*/$IP\t$HOST/g" /etc/hosts
else echo >> /etc/hosts; echo "$IP\t$HOST" >> /etc/hosts; echo >> /etc/hosts
fi
Enter fullscreen mode
Exit fullscreen mode
because WSL is always change /etc/hosts
for localhost forwarding. but you can disable by follow instructions in /etc/hosts
file.
Anyway, login as root via sudo -i
and crontab -e
for edit crontab file:
*/5 * * * * /root/gatehost.sh
Enter fullscreen mode
Exit fullscreen mode
and you must also run wsl sudo service cron start
in Windows startup if you are using auto port forwarding powershell script by me, you don’t need it.
and connect SSH with tunneling such as:
ssh -N -L33389:gateway:3389 wsluser@external.wsl.host
Enter fullscreen mode
Exit fullscreen mode
and connect IP via localhost:33389
and see it works.
Once you followed these instructions, you are ready to serve with WSL, and serve with docker service, etc.
You know that’s not recommended for production use. it’s for workstation or development server. right?
For production, use Linux with Hyper-V, cloud or native instead. WSL is more extremely slow and unstable than Hyper-V, you know.
Happy Windows-ing!
Узнайте, какие версии Windows Server совместимы с подсистемой Windows для Linux (WSL). Согласно последним рекомендациям Microsoft, вы можете запускать Linux на Windows Server 2019 с ВСЛ. Эта совместимость распространяется на несколько выпусков Windows Server Semi-Annual Channel (SAC), включая версии 1909, 2004, 20H1, 20H2 и более позднюю версию Windows Server 2022.
Содержание:
- Узнайте, как запустить Linux на Windows Server 2019 с помощью WSL
- Процесс установки WSL на Windows Server
Для тех, кто заинтересован в запуске приложений Linux с графическим интерфейсом через WSL, есть полезное руководство под названием «Как установить приложения Linux с графическим интерфейсом в Windows 10 и Windows 11 с помощью WSL»доступно на Петри. Этот ресурс предоставляет пошаговый подход к улучшению вашего опыта работы с WSL.
Процесс установки WSL на Windows Server
Процесс установки WSL на Windows Server представляет собой интригующую перспективу, прежде всего потому, что процедура различается в зависимости от конкретной используемой версии Windows Server. Одним из заметных отличий является поддержка или отсутствие таковой дистрибутивов WSL 2 в Windows Server 2019 и 2022. Это существенное отличие по сравнению с установкой в Windows 10 и 11.
Однако, помимо этого ключевого момента, общий опыт использования WSL на Windows Server аналогичен таковому в Windows 10 или 11. Этот процесс аналогичен настройке Hyper-V на этих платформах. Точно так же, как вы включаете Hyper-V и используете диспетчер Hyper-V для создания виртуальных машин в Windows 10 и 11, WSL обеспечивает плавный переход между его использованием в клиентских системах Windows и средах Windows Server.
Начало работы с WSL в Windows
Активация WSL в вашей системе
Чтобы начать процесс использования дистрибутивов Linux через WSL, первым делом нужно активировать «Подсистема Windows для Linux» на вашем компьютере.
- Через PowerShell: откройте PowerShell с правами администратора и введите следующую команду, чтобы включить функцию WSL в Windows:
- Скопировать код
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
- Подтвердите и продолжите перезагрузку системы, когда будет предложено убедиться, что изменения применены.
- Через диспетчер сервера (для пользователей сервера): если вы работаете с сервером, того же результата можно добиться графически. Перейдите в Диспетчер серверов, выберите «Добавить роли и функции», затем перейдите в раздел «Функции», чтобы включить WSL.
Эти шаги закладывают основу для установки предпочитаемых вами дистрибутивов Linux в подсистеме Windows для Linux, упрощая интеграцию сред Windows и Linux на вашем компьютере.
Запуск предпочитаемого вами дистрибутива Linux с помощью WSL
После включения подсистемы Windows для Linux (WSL) следующим шагом будет выбор и установка желаемого дистрибутива Linux. В этом разделе описывается весь процесс с использованием командной строки, уделяя особое внимание непосредственному приобретению дистрибутива Linux.
Загрузка и установка дистрибутива Linux через командную строку
- Получите свой дистрибутив Linux
Начните с открытия PowerShell. Вы можете загрузить выбранный вами дистрибутив Linux с помощью командлета Invoke-WebRequest или Curl.exe. Например, чтобы загрузить Ubuntu 20.04, вы должны использовать следующую команду:
«`
curl.exe -L -o ubuntu-2004.appx https://aka.ms/wslubuntu2004
«`
- Подготовьте и установите дистрибутив
После загрузки вам необходимо подготовить файл к установке:
– Переименуйте загруженный файл в формат .zip для извлечения:
«`
Rename-Item ubuntu-2004.appx ubuntu-2004.zip
«`
– Извлеките содержимое zip-файла:
«`
Expand-Archive ubuntu-2004.zip ubuntu2004
«`
– Перейдите в извлеченный каталог и запустите исполняемый файл установки:
«`
cd ubuntu2004
.\ubuntu2004.exe
«`
Во время установки вам будет предложено создать имя пользователя и пароль UNIX. Этот шаг необходим для обеспечения безопасности вашей новой среды Linux.
Настройка и обновление среды Linux
После установки рекомендуется обновить и установить необходимые пакеты:
– Обновите список пакетов вашей системы и обновите все установленные пакеты до последних версий:
«`
sudo apt update && sudo apt upgrade
«`
– Чтобы установить дополнительные инструменты или программное обеспечение, используйте команду apt install. Например, установка Ansible:
«`
sudo apt install ansible
«`
Интеграция вашего дистрибутива Linux в среду Windows
Чтобы беспрепятственно управлять своим дистрибутивом Linux из любого места в PowerShell, добавьте путь к дистрибутиву в PATH среды Windows. Это можно сделать с помощью следующих команд PowerShell:
«`
$userenv = [System.Environment]::GetEnvironmentVariable("Path", "User")
[System.Environment]::SetEnvironmentVariable("PATH", $userenv + ";C:\Users\Administrator\ubuntu2004", "User")
«`
После обновления PATH вам потребуется перезапустить PowerShell, чтобы применить изменения. Теперь вы можете запустить дистрибутив Linux непосредственно из любого каталога, введя имя его исполняемого файла, например `ubuntu2004.exe
`.
Эта установка обеспечивает гибкую и интегрированную среду для запуска Linux вместе с вашим Windows Server, предлагая лучшее из обоих миров для разработчиков и системных администраторов.