WSL2(Ubuntu 20.04)中调用bootstrap-vcpkg.sh失败问题求助
解决WSL2中vcpkg bootstrap脚本的SSL错误
这个ssl3_get_record:wrong version number错误不一定是OpenSSL版本不正确导致的,它通常和TLS版本不兼容、网络拦截或curl配置问题更相关,下面是具体的分析和可尝试的解决步骤:
TLS版本不匹配
vcpkg的bootstrap脚本需要访问的资源大概率要求使用TLS 1.2或更高版本,但你的curl可能默认启用了较旧的SSL/TLS协议。你可以先测试指定TLS版本的curl请求:curl -v --tlsv1.2 https://github.com/microsoft/vcpkg-tool/releases/download/2024-04-26/vcpkg-linux-x64如果这个请求能成功,那就修改
bootstrap-vcpkg.sh里的curl调用,给所有curl命令加上--tlsv1.2参数,再重新运行脚本。网络代理或防火墙拦截
WSL2的网络依赖主机系统,很可能被主机的代理软件、防火墙或者公司网络规则拦截了SSL握手:- 先暂时关闭主机的代理工具(比如各类VPN、翻墙软件),再重新运行bootstrap脚本;
- 在WSL里测试基础HTTPS连通性:
curl https://www.google.com,如果连这个都失败,说明网络本身有问题; - 如果必须使用代理,在WSL里配置代理环境变量:
配置后再尝试运行脚本。export http_proxy=http://你的代理地址:端口 export https_proxy=http://你的代理地址:端口
OpenSSL版本排查(可能性较低)
Ubuntu 20.04自带的OpenSSL版本是1.1.1f,已经完全支持TLS 1.2和1.3,理论上足够满足vcpkg的需求。你可以先验证当前版本:openssl version如果版本确实低于1.1.0,可以尝试更新:
sudo apt update && sudo apt install --only-upgrade openssl手动跳过自动下载
如果上面的方法都没效果,你可以手动下载vcpkg二进制文件跳过bootstrap的自动下载流程:- 找到对应Linux x64版本的vcpkg工具包;
- 将下载的文件放到你的
~/vcpkg目录下,重命名为vcpkg; - 赋予执行权限:
chmod +x vcpkg; - 之后就可以直接使用vcpkg,比如运行
./vcpkg update来初始化。
内容的提问来源于stack exchange,提问作者Decaf Sux
相关产品推荐
相关产品推荐

