You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform执行apply/destroy时随机出现dial tcp: lookup no such host错误

Terraform 随机出现「dial tcp: lookup no such host」错误的排查与解决

问题描述

执行terraform apply或terraform destroy时,会随机触发DNS解析失败错误,重新执行命令后可能恢复正常。错误示例如下:

Post "https://iam.amazonaws.com/": dial tcp: lookup iam.amazonaws.com on [2001:8a0:6f38:7c00::1]:53: no such host
Post "https://firehose.eu-west-1.amazonaws.com/": dial tcp: lookup firehose.eu-west-1.amazonaws.com on [2001:8a0:6f38:7c00::1]:53: no such host
Post "https://events.eu-west-1.amazonaws.com/": dial tcp: lookup events.eu-west-1.amazonaws.com on [2001:8a0:6f38:7c00::1]:53: no such host

已排查本地基础网络和域名解析,未发现持续性故障。

解决措施

1. 强制使用IPv4解析DNS

错误显示当前采用IPv6 DNS服务器(2001:8a0:6f38:7c00::1),可能存在间歇性IPv6解析故障。通过环境变量强制Terraform使用IPv4:

# Linux/macOS 终端执行
GODEBUG="netdns=go" terraform apply
# Windows PowerShell 执行
$env:GODEBUG = "netdns=go"
terraform apply

2. 更换本地DNS服务器

当前DNS服务器存在不稳定风险,可切换至公共稳定DNS:

  • 谷歌DNS:8.8.8.8、8.8.4.4
  • Cloudflare DNS:1.1.1.1、1.0.0.1
    修改系统DNS配置后,重新执行Terraform命令测试。

3. 增强Provider重试机制

在AWS Provider配置中增加重试参数,应对间歇性解析失败:

provider "aws" {
  region = "eu-west-1"
  retry_max     = 5       # 最大重试次数
  retry_wait_min = 10     # 最小等待间隔(秒)
  retry_wait_max = 30     # 最大等待间隔(秒)
}

4. 升级Terraform及AWS Provider版本

旧版本可能存在DNS相关bug,升级至最新稳定版:

# 升级所有Provider
terraform init -upgrade

也可在配置文件中指定AWS Provider版本:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0" # 锁定最新大版本
    }
  }
}

5. 清理本地DNS缓存

间歇性DNS缓存污染也可能导致问题,执行以下命令清理缓存:

  • Linux:sudo systemd-resolve --flush-caches
  • macOS:sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
  • Windows:ipconfig /flushdns

内容的提问来源于stack exchange,提问作者rui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 19:55:16