如何解决VSCode WSL中安装Go依赖时的I/O超时错误?
解决VSCode WSL环境下Go依赖安装超时问题
问题分析
错误提示显示访问proxy.golang.org时出现I/O超时,说明WSL环境下Go模块代理未正确指向国内镜像,或者网络连通性存在问题。
解决方案
1. 配置WSL内的Go国内代理
在WSL终端执行以下命令,强制设置Go模块代理为国内镜像:
# 永久设置GOPROXY go env -w GOPROXY=https://goproxy.cn,direct # 配置GOSUMDB以避免校验超时 go env -w GOSUMDB=gosum.io+ce6e7565+AY5qEHUk/qmHc5btzW45JVoENfazw8LielDsaI+lEbq6
设置完成后,直接尝试手动安装gopls:
go install golang.org/x/tools/gopls@latest
2. 排查WSL网络连通性
如果上述命令仍超时,先检查WSL能否访问国内代理服务器:
ping goproxy.cn
- 若无法ping通,执行
wsl --shutdown重启WSL,再重新尝试; - 若重启后仍无效,检查主机网络是否正常,确保WSL与主机共享网络连接。
3. 手动安装gopls并指定VSCode路径
如果代理配置仍不生效,手动指定版本安装gopls(以适配Go 1.20的v0.14.2版本为例):
GO111MODULE=on go get golang.org/x/tools/gopls@v0.14.2
安装完成后,找到gopls的二进制路径(通常在$HOME/go/bin或$GOPATH/bin),在VSCode的设置中添加:
"gopls.path": "/home/你的用户名/go/bin/gopls"
4. 同步VSCode Go扩展的代理配置
打开VSCode,按Ctrl+Shift+P调出命令面板,输入Go: Configure Go Environment,确认GOPROXY值为https://goproxy.cn,direct。也可以直接修改settings.json:
"go.goproxy": "https://goproxy.cn,direct", "go.toolsManagement.checkForUpdates": "local"
内容的提问来源于stack exchange,提问作者HJ Wang
相关产品推荐
相关产品推荐

