VSCode如何使用Remote WSL开发_VSCode Remote WSL开发使用教程

阿宇姑娘_6006

阿宇姑娘_6006

2026-04-09

1062人浏览

原创

remote wsl 插件需 wsl2 环境、发行版处于 running 状态且正确配置 /etc/wsl.conf;文件路径必须通过 vscode 的 open folder 选择 wsl 路径,终端、调试器等均运行于 wsl2 中,扩展须安装在 remote 侧。

vscode如何使用remote wsl开发_vscode remote wsl开发使用教程

Remote WSL 插件不是“装上就能用”的远程开发方案,它依赖 WSL2 环境、正确的发行版配置和 VSCode 的本地/远程角色分离逻辑——多数连接失败或文件路径错乱,根源不在插件本身,而在 WSL 发行版未真正运行或 /etc/wsl.conf 配置被忽略。

确认 WSL2 发行版已启动且可被 VSCode 识别

VSCode Remote WSL 不会自动拉起 WSL 实例;它只连接当前处于“Running”状态的发行版。常见现象是点击 Remote-WSL: New Window 后卡在“Connecting to server…”或弹出“WSL distribution not found”错误。

  • 在 PowerShell 中执行 wsl -l -v,确保目标发行版(如 Ubuntu-22.04)状态为 Running,而非 Stopped
  • 若为 Stopped,先运行 wsl -d Ubuntu-22.04 手动启动,再打开 VSCode
  • 不要依赖 Windows 启动时自动加载 WSL——它默认不启用,需手动配置 wsl.conf 或使用任务计划程序
  • 避免混用 WSL1 和 WSL2:VSCode Remote WSL 仅支持 WSL2;检查是否误启用了 WSL1(wsl --set-version Ubuntu-22.04 2 可强制升级)

文件路径映射与工作区选择的关键逻辑

VSCode 在 Remote WSL 模式下打开的文件,实际路径是 Linux 下的绝对路径(如 /home/user/project),但 Windows 资源管理器看到的是 wsl$Ubuntu-22.04homeuserproject。两者不可混用,否则 Git、调试器、构建工具会找不到文件。

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • 务必通过 VSCode 的 File > Open Folder...,然后选择 WSL: Ubuntu-22.04 下的路径,而不是从 Windows 文件系统里“拖入”\wsl$... 路径
  • 打开后,左下角状态栏会显示 WSL: Ubuntu-22.04,且资源管理器顶部路径显示为 /home/user/project —— 这才是正确上下文
  • 若误从 Windows 打开,VSCode 会以“本地模式”加载,此时终端仍可调用 WSL 命令,但 Python 解释器、Node 模块路径、PATH 等全部失效
  • Ctrl+Shift+P → Remote-WSL: Reopen in WSL 可强制将当前 Windows 打开的窗口切换到 WSL 上下文(但部分扩展状态可能丢失)

终端、调试器和扩展的行为差异

Remote WSL 模式下,VSCode 的核心组件运行位置发生偏移:UI 和部分前端逻辑仍在 Windows,但终端、调试器、语言服务器、任务执行器全部运行在 WSL2 的 Linux 用户空间中。

  • 集成终端默认是 bash(非 Windows 的 PowerShell/CMD),which python 返回的是 WSL 内的路径,与 Windows 的 python.exe 完全无关
  • Python 扩展必须安装在 WSL 侧(Remote Extensions 栏里勾选 Python,而非 Local Extensions);否则调试器无法 attach 到进程,也无法解析 pyenv 或 venv
  • Git 扩展同样需启用 Remote 版本,否则提交日志显示为空,因为读取的是 Windows 的 Git 配置而非 WSL 的 ~/.gitconfig
  • 自定义 tasks.json 中的命令(如 npm run build)直接在 WSL 中执行,无需加 wsl -e 包裹

常见断连与权限问题的快速定位

编辑过程中突然提示 “Connection lost” 或终端报错 “Permission denied (publickey)”,通常不是网络问题,而是 WSL 用户态服务异常或文件系统挂载权限变更。

  • 检查 /etc/wsl.conf 是否存在并启用自动挂载:
    [automount]
    enabled = true
    options = "metadata,uid=1000,gid=1000,umask=022"
    缺少 metadata 会导致 chmod 失效,进而影响 Node_modules 权限
  • 运行 wsl -t Ubuntu-22.04 再重新启动,可重置所有用户态服务(包括 VSCode 后台的 WSL server)
  • 若 Git 报 fatal: detected dubious ownership,说明 WSL 用户 UID 与 Windows 用户不一致,执行 git config --global --add safe.directory "*" 临时绕过(更稳妥的是统一 UID/GID)
  • 不要在 Windows 资源管理器中直接修改 \wsl$... 下的文件——NTFS 权限会污染 Linux 元数据,导致 chmod/chown 失效

最易被忽略的一点:VSCode Remote WSL 的“远程”本质是进程隔离,不是网络远程。它不走 SSH,也不依赖 sshd;一旦 WSL2 内核崩溃或发行版 init 进程卡死,VSCode 就会静默断连,此时看 Windows 任务管理器里的 wsl.exe 进程是否存在,比查日志更快。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

2135

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

3262

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

1096

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

3719

7

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

2023.07.05

6339

9

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

2023.07.06

1840

6

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

2023.07.24

1074

5

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

4117

7

git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

3861

6

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程