Windows下Terraform Init连接GCP Provider频繁失败:连接被远程主机强制关闭
解决Terraform init时wsarecv连接被强制关闭的问题
针对你在Windows下运行terraform init频繁出现wsarecv: An existing connection was forcibly closed by the remote host的问题,可尝试以下解决方案:
禁用IPv6或强制使用IPv4
报错中出现了IPv6地址,多数是IPv6网络连接不稳定导致:- 临时禁用IPv6:打开网络适配器属性,取消勾选「Internet协议版本6 (TCP/IPv6)」,重启网络后重试
terraform init。 - 强制Terraform用IPv4:在命令行执行
setx TF_CLI_CONFIG_ARGS "-ipv6=false",重启命令行窗口后再执行初始化。
- 临时禁用IPv6:打开网络适配器属性,取消勾选「Internet协议版本6 (TCP/IPv6)」,重启网络后重试
清理本地Terraform缓存
缓存损坏可能引发连接异常,删除以下内容后重试:- 系统缓存目录:
%APPDATA%\terraform.d\plugins下的所有文件 - 项目目录下的
.terraform文件夹和.terraform.lock.hcl文件
- 系统缓存目录:
检查并配置代理(如果适用)
若系统使用代理,确保Terraform能正确访问外部网络:- 设置代理环境变量:
set HTTP_PROXY=http://你的代理地址:端口 set HTTPS_PROXY=http://你的代理地址:端口 - 若无需代理,清空代理变量:
set HTTP_PROXY= set HTTPS_PROXY=
- 设置代理环境变量:
指定Google Provider固定版本
在main.tf中添加版本约束,避免每次初始化都去查询所有可用版本,减少连接请求:provider "google" { project = "myprojectID" region = "us-east1" } terraform { required_providers { google = { source = "hashicorp/google" version = "~> 4.77.0" # 选择一个稳定的版本号 } } }切换网络环境验证
尝试使用手机热点等其他网络,排查是否是公司防火墙或网络限制导致的连接问题。
内容的提问来源于stack exchange,提问作者sks
相关产品推荐
相关产品推荐

