插件在 remote-wsl 中静默失效,先查 .codex 或 .github 配置路径:vscode 插件(如 codex、github copilot、tabnine)在 remote-wsl 模式下不自动同步 windows 侧登录状态,需手动将 windows 的 /mnt/c/users/johndoe/.codex 等目录复制到 wsl 的 /home/john/.codex 并修复权限,且必须完全退出 vs code(含托盘进程)后重连。

插件在 Remote-WSL 中静默失效,先查 .codex 或 .github 配置路径
VSCode 插件(如 CodeX、GitHub Copilot、Tabnine)在 Remote-WSL 模式下不会自动同步 Windows 侧的登录状态或配置目录。它们默认读取 Linux 用户家目录下的对应路径,而这些路径在 WSL 中通常是空的。
典型表现是:插件界面无报错、补全不触发、“正在准备”卡住、日志里出现 ECONNRESET 或 fetch failed。这不是网络问题,而是 Token 根本没加载。
- 确认 Windows 用户名(如
JohnDoe)和 WSL 用户名(如john) - 在 WSL 终端中运行:
cp -r /mnt/c/Users/JohnDoe/.codex /home/john/.codex - 修复权限:
chown -R john:john /home/john/.codex - 同理处理
.github(Copilot)、.tabnine等目录 - 必须完全退出 VS Code(含托盘进程),再重连 WSL
Remote-WSL 下代理设置无效,别信“继承宿主机”
WSL2 是独立网络命名空间,Windows 的系统代理对它完全不可见。直接在 VSCode User 设置里填 http://127.0.0.1:7890 会失败——因为那是 Windows 的 localhost,不是 WSL 的。
必须用 WSL 能路由到宿主机的真实 IP,且该 IP 要被防火墙放行。
- 在 WSL 终端执行:
ip route show | grep -i default | awk '{ print $3}',得到类似172.20.32.1的地址 - 打开 Remote 设置(不是 User 设置),设
http.proxy为http://172.20.32.1:7890 - 设
http.proxySupport为override - 进 Windows 防火墙 → 入站规则 → 新建端口规则,放行该代理端口(如 7890),并勾选“域/专用/公用”
- 若用 Clash/V2Ray,还需在其配置中显式允许来自
172.20.0.0/16网段的连接
netstat -tuln | grep :PORT 看不到监听,说明插件根本没启动成功
很多插件(如 Copilot Chat 后端、自定义 LSP 服务)会在 WSL 内拉起本地 HTTP 或 WebSocket 服务。VSCode 报 connection refused 时,第一反应不该是改 launch.json,而是确认这个服务是否真在跑。
- 查插件文档确认它监听的端口(如 Copilot Chat 默认用
3456) - 在 WSL 终端执行:
netstat -tuln | grep :3456 - 无输出 → 插件未启动,检查其日志(VSCode 输出面板 → 选对应插件)
- 有输出但显示
127.0.0.1:3456→ 正常,WSL2 的 localhost 对 Windows 可达 - 有输出但显示
::1:3456(IPv6)→ 有些旧版 Windows 防火墙不处理 IPv6 入站,建议插件配置强制绑定127.0.0.1
~/.vscode-server 权限错乱会导致所有插件无法加载
Remote-WSL 所有插件都依赖 vscode-server 进程启动。如果该进程因权限问题秒退,整个插件生态就瘫痪——你看到的“插件异常”,其实是底层没起来。
最常见诱因是误用 sudo code .,导致 ~/.vscode-server 归属变成 root,后续普通用户无法写入更新。
- 在 WSL 终端执行:
ls -ld ~/.vscode-server,确认属主是当前用户(非 root) - 若属主错误,运行:
sudo chown -R $USER:$USER ~/.vscode-server - 删掉残留锁文件:
rm -f ~/.vscode-server/bin/*/server.js.lock - 检查
~/.zshrc或~/.bashrc是否有阻塞命令(如未加&的curl、git config),它们会让 shell 初始化超时,VS Code 主动 kill server - 快速验证:
env SHELL=/bin/bash code .,能连上就说明是默认 shell 配置问题
~/.vscode-server 目录状态和插件配置路径的物理存在性——这两处出问题,连日志都不会留下。











