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