带有 WSL2 的 VSCode - 由于对 ping 没有响应而延迟启动
Posted
技术标签:
【中文标题】带有 WSL2 的 VSCode - 由于对 ping 没有响应而延迟启动【英文标题】:VSCode with WSL2 - Delayed launching due to no response to ping 【发布时间】:2021-05-24 09:54:24 【问题描述】:在 WSL2 中使用 VSCode。直到上周一切都很好。从今天开始,我观察到启动 WSL 需要一些时间。以下是来自 VSCode 的日志。
[2021-02-22 06:00:31.458] Resolving wsl+myubuntu2004, resolveAttempt: 1
[2021-02-22 06:00:31.553] Starting VS Code Server inside WSL (MyUbuntu2004)
[2021-02-22 06:00:31.553] Extension version: 0.53.4, Windows build: 18363. Multi distro support: available. WSL path support: enabled
[2021-02-22 06:00:31.553] No shell environment set or found for current distro.
[2021-02-22 06:00:31.657] Probing if server is already installed: C:\Windows\System32\wsl.exe -d MyUbuntu2004 -e sh -c "[ -d ~/.vscode-server/bin/622cb03f7e070a9670c94bae1a45d78d7181fbd4 ] && printf found || ([ -f /etc/alpine-release ] && printf alpine-; uname -m)"
[2021-02-22 06:00:31.830] Probing result: x86_64
[2021-02-22 06:00:31.831] No server install found in WSL, needs x64
[2021-02-22 06:00:31.832] Launching C:\Windows\System32\wsl.exe -d MyUbuntu2004 sh -c '"$VSCODE_WSL_EXT_LOCATION/scripts/wslServer.sh" 622cb03f7e070a9670c94bae1a45d78d7181fbd4 stable .vscode-server 0 '
[2021-02-22 06:00:31.957] Setting up server environment: Looking for /home/raj/.vscode-server/server-env-setup. Not found.
[2021-02-22 06:00:31.957] WSL version: 5.4.72-microsoft-standard-WSL2 MyUbuntu2004
[2021-02-22 06:00:31.957] Installing VS Code Server from tar available at /mnt/c/Users/1186738/AppData/Local/Temp/vscode-remote-wsl/622cb03f7e070a9670c94bae1a45d78d7181fbd4/vscode-server-linux-x64.tar.gz
[2021-02-22 06:00:32.857] Unpacking: 0% 1% 2% 3% 4% 5% 6% 7% 8% 9% 10% 11% 12% 13% 14% 15% 16% 17% 18% 19% 20% 21% 22% 23% 24% 25% 26% 27% 28% 29% 30% 31% 32% 33% 34%
[2021-02-22 06:00:33.158] 35% 36% 37% 38% 39% 40% 41% 42%
[2021-02-22 06:00:33.459] 43% 44% 45% 46% 47% 48% 49% 50% 51% 52% 53% 54% 55% 56% 57% 58% 59% 60% 61% 62% 63% 64% 65% 66% 67% 68% 69% 70% 71% 72% 73% 74% 75% 76% 77% 78% 79% 80% 81% 82% 83% 84% 85% 86% 87% 88% 89% 90% 91% 92% 93% 94% 95% 96% 97% 98% 99%100%
[2021-02-22 06:00:33.459] Unpacked 1769 files and folders to /home/raj/.vscode-server/bin/622cb03f7e070a9670c94bae1a45d78d7181fbd4.
[2021-02-22 06:00:33.459] WSL2-shell-PID: 96
[2021-02-22 06:00:33.459] Starting server: /home/raj/.vscode-server/bin/622cb03f7e070a9670c94bae1a45d78d7181fbd4/server.sh --port=0 --use-host-proxy --without-browser-env-var --enable-remote-auto-shutdown
[2021-02-22 06:00:33.459]
[2021-02-22 06:00:33.459]
[2021-02-22 06:00:33.459] *
[2021-02-22 06:00:33.459] * Visual Studio Code Server
[2021-02-22 06:00:33.459] *
[2021-02-22 06:00:33.459] * Reminder: You may only use this software with Visual Studio family products,
[2021-02-22 06:00:33.459] * as described in the license https://aka.ms/vscode-remote/license
[2021-02-22 06:00:33.459] *
[2021-02-22 06:00:33.459]
[2021-02-22 06:00:33.459] IP Address: 172.x.x.x
[2021-02-22 06:00:33.459] Extension host agent listening on 34395
[2021-02-22 06:00:33.459]
[2021-02-22 06:00:33.459] [11:30:33] Extension host agent started.
[2021-02-22 06:00:33.467] Pinging 172.x.x.x:34395...
[2021-02-22 06:03:34.217] 172.x.x.x:34395 no response
[2021-02-22 06:03:34.217] WSL resolver response: ::1:34395
[2021-02-22 06:03:34.217] To debug connection issues, open a local browser on http://[::1]:34395/version
可以看出,'Pinging 172.x.x.x:34395...' 需要 3 分钟的时间并且没有返回任何响应。这会导致每次启动 VSCode 工作区时延迟 3 分钟。
我通过 Windows 和 WSL 成功地测试了与上述 ip 的连接。
PS C:\Users\Raj> Test-NetConnection 172.x.x.x -port 34395
ComputerName : 172.x.x.x
RemoteAddress : 172.x.x.x
RemotePort : 34395
InterfaceAlias : vEthernet (WSL)
SourceAddress : 172.x.x.x
TcpTestSucceeded : True
raj@WSL-Host:~$ nc -vz 172.x.x.x 34395
Connection to 172.x.x.x 34395 port [tcp/*] succeeded!
VSCode 版本详情。
Version: 1.53.2 (user setup)
Commit: 622cb03f7e070a9670c94bae1a45d78d7181fbd4
Date: 2021-02-11T11:48:04.245Z
Electron: 11.2.1
Chrome: 87.0.4280.141
Node.js: 12.18.3
V8: 8.7.220.31-electron.0
OS: Windows_NT x64 10.0.18363
【问题讨论】:
【参考方案1】:问题似乎是由于 VSCode 设置中的代理配置造成的。删除它已经解决了延迟问题。
【讨论】:
【参考方案2】:您可以将 WSL 远程扩展配置为使用 localhost 而不是 VM 机器 IP 进行探测。 (见issue)。
将remote.WSL.server.connectThroughLocalhost
设置配置为true
。
【讨论】:
以上是关于带有 WSL2 的 VSCode - 由于对 ping 没有响应而延迟启动的主要内容,如果未能解决你的问题,请参考以下文章
WSL2:Python 使用 VS Code 调试器重命名文件
Xdebug 3.0 WSL2 和 VSCode - 有效的配置