为什么*需要* CNAME / A / AAAA记录的弹性IP(公共IP不起作用)

时间:2019-11-16 22:10:31

标签: amazon-ec2 dns terraform

我正在使用terraform配置EC2实例,然后创建指向该实例的DNS记录。在AWS上,建议在公共IP地址上使用静态IP地址,这样在重新启动时更改IP地址不会引起问题。但是通过terraform,DNS记录将使用新的公共IP /公共DNS进行更新。 因此,从理论上讲,我不需要弹性IP地址。

没有 eip ,我仍然能够使用AWS提供的公共IP地址和公共DNS /主机名进行SSH。但是,当将DNS记录(A或CNAME)指向公共IP地址和公共DNS时,SSH超时。即使在DNS记录传播时也会发生这种情况(我用dig domain.com 全局DNS传播检查器进行了检查)。看起来有些东西阻止了非IP地址/非AWS公共DNS主机的访问。

有人将DNS记录直接指向公共IP /公共DNS时遇到这个问题吗?

1 个答案:

答案 0 :(得分:1)

哦,哇。事实证明,这最终是DNS记录了。。。输入问题后,我重试了,它起作用了。最初由于某种原因,dig返回了更新的记录,但是ssh使用的是旧记录?这怎么可能!

为什么SSH使用旧记录?我可以使用dig

清楚地获得正确的记录

答案是DNS缓存!尽管dig会为我提供Cloudflare的DNS服务器的最新DNS记录,但我的计算机仍在使用旧的。因此,我不得不刷新DNS。在Mac上,我使用了sudo killall -HUP mDNSResponder。然后,这带来了DNS欺骗检测到的消息,因此我不得不使用ssh-keygen -R domain.com

更新known_hosts文件夹。