我有一个 Jenkins 管道,它将启动我的 AWS Ubuntu EC2 实例。此 Jenkins 管道还将更新我在 route53 中为我的 EC2 实例设置的 CNAME 记录。
有时,我通过 CNAME ssh 连接到实例时会遇到很长的延迟。我认为这可能是缓存问题,但如果我执行,我会看到 DNS 记录的更新版本。此外,我也可以毫无问题地 ssh 到新 IP 和AWS 为我的实例提供的dig the-cname.example.com
DNS 记录的值。A
我的 ssh 客户端是否使用了 CNAME 的缓存版本?
答案1
dig
执行实际的 DNS 查询,而ssh
只会要求您的系统(最有可能通过gethostbyname
)解析名称。
dig
将询问实际的 DNS 服务器,同时ssh
将询问负责 DNS 的本地服务(现在最有可能是 systemd-resolve),该服务将缓存结果。
如果使用 systemd,您可以使用 清除现金systemd-resolve flush-caches
。