Использование Visual Studio Code с WSL

Оглавление
- Почему использовать VS Code и WSL
- Как работает расширение WSL для Visual Studio Code
- Как подключить VS Code к WSL
- Как устанавливать расширения в WSL Visual Studio Code
- Совместимость и ограничения
- Быстрое руководство (SOP) и пошаговые сценарии устранения проблем
- Ролевые чек-листы
- Короткий словарь терминов
- Часто задаваемые вопросы
Почему использовать VS Code и WSL
Windows Subsystem for Linux (WSL) позволяет запускать полноценную Linux-среду внутри Windows без виртуальной машины. Для разработчика это значит:
- Рабочая среда Linux (bash, инструменты сборки, менеджеры пакетов) рядом с привычными Windows-приложениями.
- Простая интеграция с файловой системой Windows и доступ к аппаратуре без перезагрузки или съемного носителя.
Проблема: графические Linux-приложения в WSL (особенно на старых конфигурациях) работают медленно. Visual Studio Code как GUI лучше запускать на Windows, но код и инструменты — в Linux. Расширение WSL решает эту проблему: оно запускает на Windows клиент VS Code и отдельный серверный компонент в WSL, который выполняет операции над файлами и запускает инструменты разработки.
Важно: «расширение WSL» не переносит все функции автоматом — некоторые расширения, требующие локальных бинарников (компиляторы, Docker, интерпретаторы), нужно установить внутри WSL.
Как работает расширение WSL для Visual Studio Code
Коротко: расширение создаёт удалённое соединение между Windows-версией VS Code и экземпляром VS Code Server внутри выбранного дистро WSL. Фактически вы управляете файлами в WSL с интерфейса Windows, а тяжёлые операции выполняются в Linux-среде.
Преимущества:
- Быстрая работа GUI (Windows) + нативные Linux-инструменты (WSL).
- Отладка и запуск с использованием Linux-окружения (например, systemd-замены, Linux-утилит).
- Управление пакетами и SDK через пакетный менеджер дистро.
Ограничения:
- Расширения, которые зависят от нативных бинарников, требуют установки внутри дистро (см. раздел «Как устанавливать расширения»).
- Некоторые GUI-программы в WSL остаются медленными; если нужна 100% нативная производительность GPU/GUI — рассматривайте dual-boot или полноценную Linux-машину.

Как подключить VS Code к WSL
- В Visual Studio Code откройте боковую панель Расширения и введите «WSL» в поиске расширений.

- Нажмите кнопку “Установить” напротив расширения «Remote - WSL» и дождитесь завершения установки.

- Откройте палитру команд: Справка -> Показать все команды либо сочетанием клавиш Ctrl+Shift+P.

- Введите команду
WSL: Connect to WSLи выберите дистро, к которому хотите подключиться.

Примечание: Внизу слева в окне VS Code вы увидите префикс WSL: <имя-дистро>, когда соединение установлено.
Если расширение не обнаруживает WSL, выполните в Windows PowerShell с правами администратора:
wsl --installили установите нужный дистро через Microsoft Store и повторите попытку.
Как устанавливать расширения в WSL Visual Studio Code
После подключения в списке расширений появится новая категория — “Local - Installed” (или “Локально — Установлено”). Чтобы расширение работало в контексте WSL:
- Откройте панель Расширений.
- Найдите нужное расширение.
- Нажмите “Install on WSL: <дистро>” (Установить в WSL: <дистро>).

Какие расширения следует устанавливать в WSL:
- Языковые сервера, которые запускают процессы (например, rust-analyzer, gopls), если они должны работать против нативных бинарников в Linux.
- Расширения, использующие компиляторы, интерпретаторы или менеджеры пакетов (Node.js, Python, GCC).
Не обязательно устанавливать расширения, которые обеспечивают только клиентскую функциональность (цветовая тема, сниппеты), их можно оставить в Windows-клиенте.
Совместимость и ограничения
Таблица совместимости (обобщённо):
| Компонент | Работает через WSL | Требует установки в WSL |
|---|---|---|
| Цветовая тема / сниппеты | Да | Нет |
| Языковые серверы с нативными бинарями | Частично | Да |
| Docker (локальный daemon Windows) | Да, через Docker Desktop | Если нужен Linux-сокет — требуется настройка |
| GUI Linux-приложения | Частично, зависит от WSLg и GPU | — |
Когда WSL не подходит:
- Если вы разрабатываете высокопроизводительные GPU-приложения и вам нужна максимальная производительность — лучше нативный Linux.
- Если вашему рабочему процессу нужны специфичные системные службы, недоступные в WSL (например, полноценный systemd в старых версиях), рассмотрите виртуальную машину.
Быстрое руководство: SOP для начала работы
Шаги «быстро запустить проект»:
- Установите WSL и дистро (если ещё не установлен):
wsl --install. - Установите VS Code и расширение Remote - WSL.
- Подключитесь: Ctrl+Shift+P ->
WSL: Connect to WSL-> выберите дистро. - В VS Code откройте папку: Файл -> Открыть папку -> /home/<ваш-пользователь>/проект.
- Установите нужные расширения в WSL (Install on WSL).
- Откройте терминал (Terminal -> New Terminal) — по умолчанию он будет bash вашего дистро.
- Запустите сборку/тесты и отладку внутри терминала WSL.
Критерии приёмки (проверить перед началом работы):
- Внизу слева отображается
WSL: <дистро>. - Терминал запускается с оболочкой дистро (bash/zsh).
- Языковая подсветка и отладка работают в контексте WSL.
Инцидентный план: устранение проблем и откат
Ситуация: VS Code не подключается к WSL.
Пошаговый план:
- Перезагрузите Windows и службу WSL: в PowerShell (Админ) выполните
wsl --shutdownи затем откройте снова VS Code. - В палитре команд выполните
Remote-WSL: Reinstall VS Code Server in WSLдля принудительной переустановки серверной части. - Проверьте версию WSL:
wsl -l -v— убедитесь, что дистро включено и версия — 2. - Если ошибка связана с конкретным расширением — удалите его из WSL и установите заново через кнопку “Install on WSL”.
- Откат: если проблемы возникли после апдейта расширения, переключитесь на Windows-клиент, закройте удалённое соединение (Ctrl+Shift+P ->
remote: Close Remote Connection) и работайте локально, пока не найдёте исправление.
Ролевые чек-листы
Разработчик (frontend/backend):
- Установить WSL и дистро.
- Подключить VS Code к WSL.
- Установить Node/Python/Go внутри дистро.
- Установить нужные расширения в WSL.
- Запустить тесты и сборку в терминале WSL.
Студент или начинающий:
- Убедиться, что VS Code и Remote - WSL обновлены.
- [ ] Открыть проект из пути внутри WSL (
/home/...). - Использовать встроенный терминал для команд.
Системный администратор / DevOps:
- Проверить версию WSL (wsl -l -v).
- Настроить интеграцию с Docker Desktop, если требуется.
- Настроить политики безопасности (антивирус, доступы к портам).
Мини-методология: как выбирать, где ставить расширение
Правило 3-х вопросов:
- Требует ли расширение нативных бинарников или запускает процессы? Если да — ставьте в WSL.
- Нужно ли расширению доступ к Windows-специфичным API (например, SharePoint)? Если да — ставьте в Windows-клиент.
- Это только визуальная/темовая доработка? Тогда ставьте в клиент.
Пример сценариев: когда это может не сработать
- Вы используете расширение, которое автоматически обнаруживает исполняемые файлы в PATH Windows — в WSL оно может ничего не найти, если не настроены символьные ссылки или переменные окружения.
- Инструменты CI, привязанные к Windows-окружению, могут вести себя иначе в WSL.
Диаграмма принятия решения (Mermaid)
flowchart TD
A[Нужно ли использовать Linux-инструменты?] -->|Да| B[Подключиться к WSL]
A -->|Нет| C[Работать в Windows-клиенте]
B --> D{Расширение требует нативных бинарей?}
D -->|Да| E[Установить расширение в WSL]
D -->|Нет| F[Установить расширение в клиенте]Советы по безопасности и приватности
- Не храните секреты (ключи, .env) в общедоступных директориях; используйте системные менеджеры секретов внутри дистро.
- Проверьте правила антивируса/файрвола: некоторые средства безопасности Windows могут блокировать работу серверной части VS Code в WSL.
- Для корпоративных дистро согласуйте политики установки и обновлений расширений.
Короткий словарь терминов
- WSL — Windows Subsystem for Linux, подсистема Windows для запуска Linux-бинарников.
- VS Code Server — серверная часть VS Code, работающая в удалённой среде (в данном случае — в WSL).
- Дистро — сокращение от дистрибутива Linux (Ubuntu, Debian и т.д.).
Часто задаваемые вопросы
Как вернуться к обычному Visual Studio Code после установки расширения WSL?
Чтобы разорвать удалённое соединение: нажмите Ctrl+Shift+P и введите remote: Close Remote Connection. После этого VS Code вернётся в локальный режим. Чтобы снова подключиться — используйте WSL: Connect to WSL.
Доступно ли расширение WSL в VSCodium?
Разработанное Microsoft расширение Remote - WSL официально поддерживается в Visual Studio Code и, как правило, не включается в сборки VSCodium. В VSCodium могут отсутствовать некоторые расширения, которые доступны в официальном магазине Microsoft.
Заключение
Использование VS Code с WSL — надёжный способ сочетать производительный Windows GUI и нативные Linux-инструменты. Это особенно полезно для проектов, где сборка, тесты или рантайм зависят от Linux-среды. При настройке обратите внимание на то, какие расширения и бинарники нужно ставить непосредственно в дистро, и пользуйтесь простым SOP для входа в рабочую сессию.
Автор снимков экрана: Terenz Jomar Dela Cruz. Источник изображения: Unsplash.