我在 Namecheap 共享托管服务器上有一个网站,我想使用 Cloudflare(免费套餐)。网站的主要内容位于子域中。根域只有一个虚拟登录页面。我注意到,当我尝试添加网站/域时,Cloudflare 会抓取根域的 DNS 记录,但不会抓取子域的 DNS 记录。
Namecheap 的一位支持代理告诉我,在切换到 Cloudflare 的 DNS 服务器之前,至少应该为子域名创建一个 A 记录。她还导出了我当前的所有 DNS 记录,我可以在 Cloudflare 记录向导中的文件上传功能中使用这些记录:
我并不介意整个域流量(包括根目录下的虚拟登录页面)都会经过 Cloudflare。我只是担心如果我在更改 DNS 服务器之前没有正确的 DNS 记录会发生什么。
我希望能够在周末使用我的网站而不中断服务,但同时我想注册 Cloudflare。我该如何做到这一点而不搞砸呢?
答案1
据我所知,CloudFlare 提供两种服务,DNS 托管和 Web 代理。使用 CloudFlare 作为域的 DNS 名称服务器是 Web 代理服务的先决条件,但并不意味着整个域都将被代理:它们仍然是两个独立的服务。
至于主要问题:
验证 CloudFlare 的 DNS 配置
将 DNS 导出文件上传到 CloudFlare 之后,但在更改域名的名称服务器之前,您可以使用 DNS 查询工具(例如dig
或host
或)nslookup
来验证 CloudFlare 是否具有正确的数据。
首先查询您的域或子域的当前“全局”DNS,然后立即将结果与直接对CloudFlare的名称服务器的查询进行比较:
$ dig example.com A
$ dig example.com A @blah.ns.cloudflare.com
$ host -t A example.com
$ host -t A example.com blah.ns.cloudflare.com
C:\> nslookup -q=A example.com
C:\> nslookup -q=A example.com blah.ns.cloudflare.com
如果它们都返回相同的 A 记录,则 (子) 域的行为也将相同。对 AAAA (IPv6) 和 MX (电子邮件) 重复相同的检查。
在 CloudFlare 中使用子域名
如果您实际上不希望整个域的 DNS 基于 Cloudflare,则不必更改整个域的名称服务器。您可以委托子域名到 Cloudflare,就像 TLD 当前将您的域名委托给 Namecheap 一样。
只需在子域中添加 NS 记录即可创建此类委托。例如,普通的“web”子域如下所示:
mysubdomain A 192.0.2.1
代表团将如下所示:
mysubdomain NS blah.ns.cloudflare.com.
对于大多数目的来说,委派的子域名充当其自己的域名。