You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

AWS注册域名关联EC2实例IP失败求助:迁移后托管区配置问题

解决AWS域名关联EC2公网IP无法访问的问题

我来帮你一步步排查这个DNS配置的坑,这种账户迁移后出现的DNS故障我之前也踩过好几次,咱们从最关键的环节开始梳理:

1. 确认域名NS记录与Route53托管区完全匹配

这是最容易出错的核心环节:

  • 先打开Route53的托管区,复制里面全部4条名称服务器(NS)记录,注意每条格式都是类似ns-xxx.awsdns-xx.com.,末尾的点一定不能丢。
  • 到AWS域名注册控制台(Route53注册商界面),找到域名的NS记录设置,把这里的NS记录替换成刚才复制的托管区NS记录,必须保证完全一致,一条都不能少
  • 注意:DNS解析需要时间生效,默认TTL是2天(172800秒),如果刚修改的话,可以临时把TTL改成300秒(5分钟)加速传播,生效后再改回默认值。
  • 你可以用命令行验证匹配情况:
    dig ns my-domain.com
    
    对比返回的NS记录和托管区的是否完全一致。

2. 检查Route53托管区与A记录配置

  • 确认托管区名称和域名完全一致:比如你的域名是my-domain.com,托管区名称必须也是my-domain.com,不能多www或者少结尾的点。
  • 检查A记录配置:
    • 主域名my-domain.com的A记录,值要填EC2的公网IP,类型选A,TTL设置成合理值(比如300秒)。
    • www.my-domain.com的A记录同样指向同一个EC2 IP,或者也可以设为CNAME指向my-domain.com(两种方式都可行)。
  • 额外提醒:普通EC2实例重启后公网IP会变化,建议给EC2绑定弹性IP,避免IP变动导致解析失效。

3. 验证EC2实例的网络可达性

别光顾着排查DNS,EC2本身的网络配置也可能导致无法访问:

  • 检查安全组:确保安全组的入站规则允许HTTP(80端口)HTTPS(443端口)的流量,测试阶段可以把来源设为0.0.0.0/0,后续再按需限制IP范围。
  • 检查网络ACL:如果EC2在自定义VPC里,网络ACL的入站和出站规则也要对应开放80、443端口,以及DNS相关的53端口(UDP/TCP)。
  • 先用EC2的公网IP直接访问,确认网站本身是正常运行的:如果IP能访问但域名不行,那肯定是DNS的问题;如果IP也访问不了,先解决EC2的服务或网络问题。

4. 清除本地DNS缓存并验证解析

本地DNS缓存可能还保留着旧记录,导致你看不到最新的解析结果:

  • Windows系统:打开命令提示符执行:
    ipconfig /flushdns
    
  • Mac系统:打开终端执行:
    sudo dscacheutil -flushcache
    
  • Linux系统(systemd):
    sudo systemd-resolve --flush-caches
    
  • 然后用命令验证解析是否正确:
    dig a my-domain.com
    dig a www.my-domain.com
    
    查看返回的ANSWER SECTION里的IP是不是你的EC2公网IP。

5. 排查其他潜在干扰

  • 检查旧AWS账户是否有残留DNS配置:比如旧账户的Route53里还有同名托管区,虽然域名迁移了,但可能有未删除的记录干扰解析(这种情况比较少见,但值得确认)。
  • 确认是否启用了CloudFront、ELB等服务:如果之前用了这些服务,A记录应该指向对应的端点;如果现在直接用EC2,要确保这些服务已经解绑。

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

火山引擎 最新活动