如题。我的域名是在 NameSilo 上买的,云服务器暂时懒得买,反正用 github pages 放下博客就够用了。
另外我不太理解为什么 NameSilo 自动帮我创建了如下的 DNS record:

其中怎么会有三条 A 类型的记录啊?一个域名不应该是和一个 IP 唯一对应的么?负载均衡也不是在这一层是在我自己的云服务器上做反向代理吧?
而且这个 parking.namesilo.com 又是啥,是 namesilo 看我没配域名对应的 IP ,可怜我先帮我配上它们自己的网站?可是 blog CNAME 那个我已经设置成了我的 github pages 的网址了,为啥它这里还是现实这个东西呢。。
搞不懂,头大。
谢谢解答。
1
BraveXaiver OP 另外就是我在 cloudflare 上办理了免费的 SSL 证书,但没有 A 类型的记录,只有这个 CNAME 的。之后如果想要加,就重新申请一个呗?
然后 cloudflare 让我把它们的 DNS 解析服务器 id 替换掉 namesilo 的 DNS 解析服务器 id ,我替换之后,进入 namesilo 这边的 DNS recoreds 就会报警:由于你配置的首要 DNS 解析服务器 id 不是我们自己的,你在此处的更改很可能无效。 额,要不然我把 https 的给改回来? |
2
Ranying Jan 24, 2023 在 namesilo 里把 nameserver 换成 cloudflare 的之后,只需要到 cloudflare 的 DNS 记录中添加一条 blog 的 CNAME 记录指向你的 GitHub Pages 地址,然后开启 Proxy 模式即可。然后在 GitHub 仓库根目录提交一个名为 CNAME 的文件,内容是你的域名。
不需要在 cloudflare 上办理免费的 SSL 证书,这个证书只用于在 Full(strict) 模式下 cloudflare 服务器连接你的服务器时使用。 |
3
docx Jan 24, 2023 via iPhone
> 怎么会有三条 A 类型的记录啊?一个域名不应该是和一个 IP 唯一对应的么
A 记录可以有多个 |
4
BraveXaiver OP @docx 可是有多个的话它怎么工作呢?是按照先后顺序有权重,第一个不 down 就永远只访问第一个?
@Ranying 谢谢,在 namesilo 里把 nameserver 换成 cloudflare 是因为办 SSL 证书时 cf 要求的。我加了如下图的配置  不过在仓库里放一个 CNAME 文件,额,可是我 github pages 仓库是 hexo 将生成的产品自动推送上去的,所以有,下次有新博文了也会由于产品推送被删掉。。这个文件要一直保留着吗 |
5
mschultz Jan 24, 2023 @BraveXaiver #4 有多个 A 记录或者 AAAA 记录的情况:如果你的浏览器(或者你使用 dig 等 DNS 工具)去查询这个域名, [一般情况] DNS 服务器会返回所有 A/AAAA 记录,顺序随机。浏览器一般可能选择第一个 IP 使用。
上面说的应该是常见情况,DNS 服务器和浏览器的行为都取决于具体实现情况。例如,DNS 服务器根据访问者的 IP 返回不同的 IP ;浏览器尝试第一个 IP 失败后继续尝试其他 IP 等。 |
6
mschultz Jan 24, 2023 @BraveXaiver #4 至于保留 CNAME 文件的问题,可以参考 https://github.com/hexojs/hexo-deployer-git/issues/87
|
7
mschultz Jan 24, 2023
「而且这个 parking.namesilo.com 又是啥,是 namesilo 看我没配域名对应的 IP ,可怜我先帮我配上它们自己的网站?」好像可以这么理解哈哈哈
而你把 nameserver 指向 Cloudflare 之后,namesilo 里这些 DNS 记录就失效了,不用管。 |
8
Ranying Jan 24, 2023 参见 https://hexo.io/zh-cn/docs/github-pages
若你使用了一个带有 CNAME 的自定义域名,你需要在 source/ 文件夹中新增 CNAME 文件。 全程不需要接触 SSL 证书,域名的 TLS 由 cloudflare 处理。 |
9
BraveXaiver OP 我突然想到一个问题,在 A 商家的控制台中,给 DNS record 加一个 TXT 的 record ,TXT 的内容与 B 商家也就是提供免费申请 SSL 证书的商家要求的一致,以证明我控制着这个域名。此时,还应该继续保证解析域名的是 A 商家背后的 DNS 解析服务器。在添加这个 TXT 完毕之后,大概要等上一天,我才应该在 A 商家的控制台中将 DNS 解析服务器换成
emmm 我好像明白 @Ranying 你的意思是了,你的意思是不是 A 商家的控制台里根本不用改域名解析服务器?因为 HTTP 请求来到 DNS 解析服务器群时,会被分配给 A 商家背后的 DNS 解析服务器。而 HTTPS 请求来时,则会分配给 B 商家背后的 DNS 解析服务器。两个各干各的,我根本不用改来改去? |
10
Ranying Jan 24, 2023 B 商家只是提供了域名的 SSL 证书,并不负责其他的东西。域名的 nameserver 在 A 商家时,DNS 记录可以在 A 商家的控制台里修改,但是无论是 HTTP 或者 HTTPS 请求,都和商家无关。
例如域名 blog.mydomain.com 指向 A 记录 1.14.5.14 ,则请求 http://blog.mydomain.com 网页时系统会通过 DNS 服务器查询到 blog.mydomain.com 指向的服务器 IP ,然后向该 IP 发送 HTTP 协议,内容可能是这样的: GET / HTTP/1.1 Host: blog.mydomain.com 然后服务器可能会 301 跳转到 https://blog.mydomain.com 或者继续用 http 协议传输消息。 上面过程 HTTP 请求和 HTTPS 请求都和 A 商家或者 B 商家无关,而是与域名指向的服务器有关。没有“商家背后的 DNS 解析服务器”这种东西,nameserver 只负责把 DNS 记录更新到 DNS 服务器,选择哪一个 DNS 服务器是用户自己决定的。 不需要修改 nameserver ,如果 B 商家通过 txt 记录验证了您对域名有控制权并给你分发了 SSL 证书,你只需要把该证书配置到域名指向的服务器即可。在您用 GitHub Pages 的情况下,这个服务器即 GitHub 的服务器。您可以将 SSL 证书提交到 GitHub 中( https://docs.github.com/zh/pages/getting-started-with-github-pages/securing-your-github-pages-site-with-https 根据文档,该证书为 GitHub 服务器代替您申请)或者通过 cloudflare 反向代理 GitHub Pages 域名,这两种情况都不需要接触 SSL 证书。 |
11
hanguofu Jan 25, 2023
顺便问问: 我有一个国外买的域名,没有在国内备 案 , 是否可以使用 华为云免费 DNS 服务把它指向 cloudflare 的节点 ?
|
12
BraveXaiver OP @Ranying 谢谢你愿意这么细致地解答,但我还有几点不明白。。
你说没有“商家背后的 DNS 解析服务器”这种东西,那 namesilo 的要求我将 nameserver 配置为 NS1.DNSOWL.COM 和 NS2.DNSOWL.COM ,cloudflare 要去我配置为 jakub.ns.cloudflare.com 和 ulla.ns.cloudflare.com ,并且当我真得在 namesilo 的控制台里改成了 cloudflare 的 nameserver 后,每次更新 DNS record 都会受到 namesilo 的警告,强烈要求我重新改回去。那这两家供应商和它们提供的这个 nameserver 是什么关系呢?供应商是否有被自己控制的 nameserver ? 另外 cloudflare 如下图所示,要求我改掉 nameserver ,可是这并不是必要的,但已经过去一天了,好像不改它就不进行到下一步,这又是为啥呢。。  |
13
BraveXaiver OP @hanguofu 你可以试试,我觉得应该不行。因为我想用 image.我的海外域名.top 作为七牛云的对象存储的外链的域名,七牛云会验证该域名不是国内已备案的域名,要求我只能为海外对象存储使用。
|
14
Ranying Jan 25, 2023 你的域名在 namesilo 购买,所以域名的 nameserver 可以在 namesilo 中控制,但是域名不仅仅只有 nameserver 这一项配置,还有续费,whois 等等其他的配置都需要在 namesilo 中进行。namesilo 提供了一个 nameserver ,并且将从其购买的域名的默认 nameserver 设置为它自己的。
如果将 nameserver 改为了 cloudflare ,更新 DNS 记录就需要在 cloudflare 中进行而不是在 namesilo 。 如果要用 cloudflare 的 CDN 服务,那么 将 nameserver 修改为 cloudflare 就是必要的。 |
15
BraveXaiver OP @Ranying 谢谢,那我还是先把 namesilo 里 name server 换成 cloudflare 的,48 小时候再看 cloudflare 会不会有动静
|