WSL2 Ubuntu下Docker克隆UE4时GnuTLS TLS包异常错误求助
WSL2环境下克隆UE4到Docker的报错排查方案
1. 修复GnuTLS TLS包长度异常报错
- 先升级系统基础依赖:
sudo apt update && sudo apt install -y git gnutls-bin ca-certificates - 调高Git HTTP缓冲区适配大仓库传输:
git config --global http.postBuffer 524288000,将缓冲区设为500M匹配UE4仓库的大小 - 替换Git底层SSL实现:Ubuntu默认Git使用GnuTLS编译,网络兼容性较差,执行以下命令切换为OpenSSL版本Git:
sudo add-apt-repository ppa:git-core/ppa sudo apt update && sudo apt install -y git libcurl4-openssl-dev - 禁用HTTP/2协议避免分包异常:
git config --global http.version HTTP/1.1
2. 修复SSH认证与网络不可达报错
- 先排查WSL2网络冲突:关闭Windows端代理软件的TUN/虚拟网卡模式,或将WSL子网段加入代理排除列表
- 调整Docker网络配置:Docker桥接网络默认MTU和WSL2不匹配容易丢包,构建镜像时指定使用主机网络:
docker build --network=host . - 修正SSH认证配置:在WSL2本地执行
ssh-keygen -t ed25519 -C "你的GitHub绑定邮箱"生成密钥,将~/.ssh/id_ed25519.pub的完整内容添加到GitHub账号的SSH密钥设置中,不要复制多余空格或换行 - 测试SSH连通性:执行
ssh -T git@github.com,如果提示Hi+你的用户名说明认证正常;如果22端口被封禁,修改~/.ssh/config添加以下配置走443端口传输SSH数据:Host github.com Hostname ssh.github.com Port 443 User git IdentityFile ~/.ssh/id_ed25519 - Docker构建需要用SSH克隆时,挂载本地SSH agent套接字避免密钥泄露:
docker build --ssh default=$SSH_AUTH_SOCK .
3. UE4仓库克隆额外注意项
- 使用浅克隆减少数据拉取量:
git clone --depth 1 git@github.com:EpicGames/UnrealEngine.git,后续需要完整历史可执行git fetch --unshallow补全 - 确认你的GitHub账号已经加入EpicGames官方组织白名单,否则即使认证通过也没有UE4仓库的访问权限,会返回权限错误
- 临时测试可关闭SSL校验定位问题:
git config --global http.sslVerify false,问题解决后建议改回true保证安全
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

