MacOS:需要使用 OSX 上的主机在本地验证 DNS?
我的一位客户将他们的网站迁移到批量托管帐户。 他们更新了他们的域名 DNS A 和的设置 CNAME 记录,但难以确定该网站是否正在使用新的托管帐户(新 IP 地址)。
在对 DNS 进行故障排除时,请记住以下几点:了解 DNS 的工作原理、域名注册商的工作原理以及主机如何管理其域条目。
DNS如何工作
在浏览器中键入域时:
- 在Internet中查找域 名称服务器 查找应将请求发送到的位置。
- 如果是 Web 域请求 (HTTP),名称服务器将 将 IP 地址返回到您的计算机.
- 然后,您的计算机将其存储在本地,称为 DNS高速缓存.
- 该请求被发送到主机,该主机路由该请求 内部 并展示您的网站。
您的域名注册商的工作方式
请注意: 并非每个域名注册商都实际管理您的 DNS。 例如,我有一位客户通过 Yahoo! 注册域名。 尽管在他们的政府中似乎是这样做的,但雅虎! 只是经销商 Tucows的。 因此,当您更改 Yahoo! 中的 DNS 设置时,可能需要几个小时才能在 Yahoo! 中更新这些更改。 真实 域名注册商。
当您的 DNS 设置更新时,它们会在互联网上的一系列服务器上传播。 大多数时候,这需要几秒钟的时间才能发生。 这就是人们愿意付费的原因之一 托管DNS。 托管DNS公司通常既具有冗余性又具有难以置信的快……通常比您的域注册商快。
Internet服务器更新后,系统下次发送DNS请求时,将返回托管站点的IP地址。 注意: 请记住,我说过下次您的系统发出请求时。 如果您之前请求过该域,则 Internet 可能是最新的,但您的本地系统可能会根据您的 IP 地址解析旧的 IP 地址 DNS高速缓存.
您的主机DNS的工作方式
由本地系统返回和缓存的 IP 地址通常不是单个网站所独有的。 一台主机可能在单个 IP 地址(通常是服务器或虚拟服务器)上托管数十个甚至数百个网站。 因此,当从 IP 地址请求您的域时,您的主机会将您的请求转发到服务器内的特定文件夹位置并显示您的页面。
如何对DNS进行故障排除
因为这里有三个系统,所以也有三个系统需要排查! 首先,您需要检查本地系统以查看 IP 地址在系统中指向的位置:
通过打开“终端”窗口并键入以下命令,可以轻松完成此操作:
ping domain.com
或者您可以进行特定名称服务器查找:
nslookup domain.com
如果您更新了域名注册商中的 DNS 设置,那么您需要确保清除 DNS 缓存,并且需要再次发出请求。 要清除 macOS 中的 DNS 缓存:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
sudo killall mDNSResponderHelper
sudo dscacheutil -flushcache
此时,您可以重试 ping 或 NSLOOKUP 查看该域是否解析为新的 IP 地址。
下一步是查看互联网的 DNS 服务器是否已更新。 保持 DNS资料 这样做很方便:您可以通过他们的平台获得完整的 DNS 报告,这非常好。
如果您看到 IP 地址在网络上正确显示,但您的网站仍未显示,您可以绕过 Internet 服务器并告诉您的系统将请求直接发送到该 IP 地址。 您可以通过更新您的
hosts
文件并刷新您的 DNS。 为此,请打开终端并输入:
sudo nano /etc/hosts
输入系统密码,然后按Enter。 这将直接在终端中调出文件进行编辑。 使用箭头移动光标,并在新行中添加IP地址和域名。
媒体 control-o
按键盘上的键保存文件,然后返回以接受文件名。 按 control-x 退出编辑器,这将返回到命令行。 不要忘记刷新缓存。 如果网站无法正常显示,则可能是您的主机本地存在问题,您应该联系他们并告知他们。
最后说明: 请记住将您的主机文件返回到其原始版本。 您不想留下想要自动更新的条目!
通过执行以下步骤,我能够验证我的注册服务商中的DNS条目是最新的,Internet上的DNS条目是最新的,我的Mac的DNS缓存是最新的以及网络主机的DNS是最新的迄今为止……很好!