1 主机名和域名
主机名是 host name ,域名是 domain name ,两者组成全名 Fully Qualified Domain Name (FQDN) ,类似倒序版某省某市某区某人。
主机名和域名的划分标准不是小数点,至于究竟是什么,我也不知道。
有时为了方便描述,也直接将全名 FQDN 称为主机名。
2 历史
不论是 ipv4 还是 ipv6 ,人脑都是记不住的。而主机名相对好记得多。因此我们需要一项能自动将主机名解析成 ip 的服务。
单一文本是首先想到的方案。人们在 /etc/hosts
文件中将主机名和 ip 一一对应,这样就能通过主机名来取得 ip 了!然而它有一个致命缺陷,即文本无法及时更新。
于是,一套阶层式管理主机名及其对应 ip 的系统 DNS 便适时地出现了!它让人类较容易记忆的字母数字型的有意义的主机名,及时地转译成为计算机熟悉的 IP 地址!
3 阶层架构
DNS 是如此重要,即使我们不架设它,也得了解它。
在整个 DNS 系统的最上方一定是 .
(小数点) 这个 DNS 服务器,称为 root 。早前它下面只管理了 com 、 edu 、 gov 、 mil 、 org 、 net 六个特殊领域和所有标识国家地区的主机名,统称顶级域名。顶级域名之下又划分出子域,基本就是原先 root 管理的六个特殊领域。每个 DNS 服务器只记录其下一层的主机名。至于再下一层,则直接授权给下层管理。
4 查询流程
- 用户在浏览器内输入网址并回车。
- 计算机依据
/etc/resolv.conf
所提供的 DNS 的 IP 联机,并查询用户输入的网址。 - DNS 收到查询要求,先查看自身有无记录。如果没有,再看是否属于自己管辖的范围,是则将查询要求丢给下层,否则丢给上层。
- 查询成功后,记录返回给 DNS , DNS 保留记录,并通知用户。保留时间有限,通常是 24 小时。
运行命令 dig +trace www.chittleskuny.com
可以了解查询流程的细节。
5 优点缺点
优点:
- 主机名修改仅通知自己的 DNS 即可。
- 快速返回曾经查询过的主机名的 ip 。
- 可持续向下授权。
缺点:
如果 DNS 已暂存某主机名的 IP,随后该主机名的 ip 却修改了,此时若有人再次查询, 系统可能返回旧 IP 。所以当我们修改了 domain name 之后,可能要 2~3 天才能全面启用!
6 协议变换
通常 DNS 查询的时候以 udp 来查询, 万一没有获得完整信息,就会以 tcp 来重新查询。所以启动 DNS 的 daemon (named) 时,会同时启动 tcp 和 udp 的 port 53 ,记得防火墙要同时放行。
7 合法授权
合法授权 = 花钱
想架设一台合法授权的 DNS 服务器,首先需要申请一个合法的域名。国内最大的域名商城是阿里云,也就是曾经的万网,注册完需要备案。中文域名都是垃圾,千万别买。国外最大的域名商城就是狗爹了,常年七折优惠,价格亲民。也有免费域名,但我不建议,因为它们随时可能被回收。
假设我们已经重金砸下了心仪的域名,并登录了管理界面。信息很多,不过重点只有两个:
- 记录该域名的所属域名服务器的主机名 NS (NameServer) 。
- 记录该域名的根主机的主机名所对应的地址 A (Address) 。
WWW 服务器与 DNS 服务器没有绝对关系,两者相互独立。它们有时表现出一致性是因为你穷得只有一台主机。
我选择了 Vultr ,最便宜的一款,用了一年多,感觉还行,只是有时软件安装不上去,有时 wordpress 会宕机。
个人 Linux 服务器一般只开放三个端口:
- 22 端口 (SSH/SFTP)
- 80 端口 (HTTP)
- 443 端口 (HTTPS)
登陆服务器使用软件 putty 。
记得开启 BBR 。