【哥飞科普】说说域名 NS 和 DNS
大家好,我是哥飞。
最近好多第一次注册域名,第一次使用 Cloudflare 和 Vercel 的朋友在域名解析上面产生了一些疑问,所以今天哥飞写篇文章来给大家讲一讲 NS 和 DNS 。
今天不是写论文,所以哥飞会基于自己的理解,尽量用浅显易懂的语言来描述,如果万一哪里有错误,还请大家在评论区补充说明。
我们先从服务器聊起,每一台服务器都有一个IP地址,默认情况下,我们可以使用 IP 地址来访问服务器资源。
但是 IP 地址太长了,很多人记不住,后来就有了域名,域名也可以理解为 IP 的别名。
每一个域名就相当于一个门牌号,把门牌号和服务器IP绑定到一起,用户通过域名也可以访问服务器资源。
管理域名和服务器IP对应关系的系统,就是域名系统,英文名 Domain Name System,简写为 DNS 。
DNS 主要作用就是是把容易记忆的域名与不好记忆的IP地址给关联起来。
DNS 是全球分布式数据库系统,人人都可以搭建,并且对外提供 DNS 服务。
NS 是 Name Server 的简写,中文名是名称服务器。
NS 是 DNS 系统的其中一部分,如果你想对外提供 DNS 服务,就需要有一个 NS,用来让你的用户可以管理域名与IP的对应关系。
域名有域名注册局(Domain Registry)和域名注册商(Domain Registrar)的区分,每一个域名后缀都由一个域名注册局管理。
一般域名注册局不直接对外提供域名注册服务,而是由域名注册商提供域名注册服务。
一个域名注册商会跟多个域名注册局合作,这样就可以提供多种域名后缀的域名注册服务。
一般域名注册商都会提供 NS ,大家注册的域名,默认的 NS 就是域名注册商的。
所以我们如果要配置 DNS 解析记录,可以直接在域名注册商后台找到 DNS 管理,去添加或者修改解析记录。
但如果我们使用 Cloudflare 的服务,Cloudflare会要求域名必须要用 Cloudflare 的 NS 。
所以我们需要去 Cloudflare 后台添加一个域名,然后把 Cloudflare 给我们的 NS 填写到域名注册商的后台。
一旦你填写的新的 NS 生效了,在任意一个 Whois 查询服务里都能够查询到,如我们查一下 SoraWebui.com 的Whois信息。
可以看到上面显示 DNS 服务由 Cloudflare 提供,所以 NS 设置的是 Cloudflare 的服务器。
再看下 Google.com 可以看到 DNS 服务是谷歌自己做的,这也是为了保证服务的稳定性,不会受制于人。
当我们查询 Whois 信息发现 DNS 已经切换为 Cloudflare 的了,那就说明新的 NS 生效了,就可以去 Cloudflare 设置 DNS 解析记录。
在左侧菜单栏就可以找到 DNS 的 Records ,也就是 DNS 解析记录。
点进去,就能够看到所有解析记录。可以在这里添加新记录,修改旧记录,删除记录。
你可能会为,上面要添加解析信息是哪里来的呢?
这就要看你的代码部署在哪里,如果部署在你自己的服务器里,上面就填写你自己服务器的IP地址。
我们这个服务是部署在 Vercel 上的,所以需要填写 Vercel 的IP和域名信息,分别是一个A记录,一个CNAME记录。
A记录里直接填写IP地址,CNAME记录里填写一个域名。
其实两者都表示某一个IP地址,只不过A记录写死了IP地址,而CNAME是别名,目前指向某个IP地址,下次Vercel可以改为另一个IP地址,而不需要通知我们修改。
这里哥飞举个例子大家就明白了。
假设哥飞有一台服务器,里边部署了10个网站,对应10个域名。
哥飞就需要去每一个域名的DNS解析里分别添加一条A记录,写死这台服务器的IP地址。
后面某一天,因为某种原因,这台服务器坏了,哥飞把所有10个网站代码迁移到了第二台服务器,之后要去修改10个域名的解析记录,总共要改10次,才能把全部域名修改完成。
但假如一开始,哥飞就配置了某个子域名通过A记录指向了第一台服务器,然后10个网站都通过CNAME记录指向到了这个子域名。
那么当哥飞要把10个网站迁移到第二台服务器时,只需要去修改那个子域名的A记录,把第一台服务器的IP地址改为第二台服务器IP地址。
剩下10个网站因为是通过CNAME指向到那个子域名的,所以都不需要修改。
这里还需要解释一下,如果你的一台服务器里只有一个网站,那么你在DNS里把域名指向到了这台服务器,就能够访问到这台服务器的这个默认网站。
但假如你一台服务器有10个网站,你就需要用到 Nginx 的虚拟主机,通过配置虚拟主机来绑定域名与你10个网站代码目录的对应关系。
如果不配置的话,你的10个域名很可能都会打开同一个网站。
回来说 Vercel ,因为 Vercel 一台服务器也会有很多个网站,所以我们需要在 Vercel 的每一个项目后台绑定域名。
填写我们想要绑定的域名之后,Vercel 就会告诉我们需要配置的 DNS 解析记录有哪些,一般会给一个 A记录,一个 CNAME 记录。
我们要做的就是去 Cloudflare 找到这个域名,打开 DNS 管理界面,填写新的解析记录。
如果你的解析记录已经存在相同的,会提示冲突,你就需要判断之前已经存在的记录是否需要,如果不需要就删除即可。
好了,以上就是今天的科普内容。
白丁学者 » 【哥飞科普】说说域名 NS 和 DNS