如题。我的域名是在 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 2023-01-24 17:12:18 +08:00 1
在 namesilo 里把 nameserver 换成 cloudflare 的之后,只需要到 cloudflare 的 DNS 记录中添加一条 blog 的 CNAME 记录指向你的 GitHub Pages 地址,然后开启 Proxy 模式即可。然后在 GitHub 仓库根目录提交一个名为 CNAME 的文件,内容是你的域名。
不需要在 cloudflare 上办理免费的 SSL 证书,这个证书只用于在 Full(strict) 模式下 cloudflare 服务器连接你的服务器时使用。 |
3
docx 2023-01-24 18:01:30 +08:00 via iPhone
> 怎么会有三条 A 类型的记录啊?一个域名不应该是和一个 IP 唯一对应的么
A 记录可以有多个 |
4
BraveXaiver OP @docx 可是有多个的话它怎么工作呢?是按照先后顺序有权重,第一个不 down 就永远只访问第一个?
@Ranying 谢谢,在 namesilo 里把 nameserver 换成 cloudflare 是因为办 SSL 证书时 cf 要求的。我加了如下图的配置 ![]( https://raw.githubusercontent.com/XSun771/ImgBed/master/uTools1674555675235.png) 不过在仓库里放一个 CNAME 文件,额,可是我 github pages 仓库是 hexo 将生成的产品自动推送上去的,所以有,下次有新博文了也会由于产品推送被删掉。。这个文件要一直保留着吗 |
5
mschultz 2023-01-24 19:13:41 +08:00 1
@BraveXaiver #4 有多个 A 记录或者 AAAA 记录的情况:如果你的浏览器(或者你使用 dig 等 DNS 工具)去查询这个域名, [一般情况] DNS 服务器会返回所有 A/AAAA 记录,顺序随机。浏览器一般可能选择第一个 IP 使用。
上面说的应该是常见情况,DNS 服务器和浏览器的行为都取决于具体实现情况。例如,DNS 服务器根据访问者的 IP 返回不同的 IP ;浏览器尝试第一个 IP 失败后继续尝试其他 IP 等。 |
6
mschultz 2023-01-24 19:17:01 +08:00 1
@BraveXaiver #4 至于保留 CNAME 文件的问题,可以参考 https://github.com/hexojs/hexo-deployer-git/issues/87
|
7
mschultz 2023-01-24 19:23:13 +08:00
「而且这个 parking.namesilo.com 又是啥,是 namesilo 看我没配域名对应的 IP ,可怜我先帮我配上它们自己的网站?」好像可以这么理解哈哈哈
而你把 nameserver 指向 Cloudflare 之后,namesilo 里这些 DNS 记录就失效了,不用管。 |
8
Ranying 2023-01-24 19:24:55 +08:00 1
参见 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 2023-01-24 22:30:16 +08:00 1
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 2023-01-25 15:17:18 +08:00
顺便问问: 我有一个国外买的域名,没有在国内备 案 , 是否可以使用 华为云免费 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 ,可是这并不是必要的,但已经过去一天了,好像不改它就不进行到下一步,这又是为啥呢。。 ![]( https://raw.githubusercontent.com/XSun771/ImgBed/master/20230125152108.png) |
13
BraveXaiver OP @hanguofu 你可以试试,我觉得应该不行。因为我想用 image.我的海外域名.top 作为七牛云的对象存储的外链的域名,七牛云会验证该域名不是国内已备案的域名,要求我只能为海外对象存储使用。
|
14
Ranying 2023-01-25 15:31:14 +08:00 1
你的域名在 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 会不会有动静
|