Homelab
DDNS
推荐使用 https://dns.he.net/。
以你的域名为 example.com 为例,先在上述网站注册账号,然后为你的一个子域名设置 NS 记录为 ns1, ns2, ns3, ns4 and ns5.he.net。下面详细介绍步骤
将 dyn.example.com 添加上述 NS。注意这个子域名只用来设置 DDNS,不用于访问。
在 dns.he.net 中添加域名,然后添加下级子域名 A 记录(IPv4)和 AAAA 记录(IPv6),取决于你的 IP 版本。“Name”随意设置,例如“homelab”,这样完整的域名就是“homelab.dyn.example.com”。
添加记录时勾选“Enable entry for dynamic dns”,地址可以设置为 0.0.0.0 或者 ::,或者不更改。
点击记录旁边的刷新图标,点“Generate a key”,然后把 key 复制下来,点“Submit”提交。
注意:完全相同的域名的 A 记录和 AAAA 记录共享同一个 key,但是不同域名不共享。例如,如果此后创建 homelab2,完整域名为 homelab2.dyn.example.com,则会使用单独的 key。
编写以下脚本,把其中的域名替换成你的域名,保存为文件,例如 he_ddns.sh。
curl -4 "https://homelab.dyn.example.com:password@dyn.dns.he.net/nic/update?hostname=homelab.dyn.example.com" curl -6 "https://homelab.dyn.example.com:password@dyn.dns.he.net/nic/update?hostname=homelab.dyn.example.com"给 he_ddns.sh 设置执行权限,然后添加到 crontab 里:
chmod +x he_ddns.sh添加 crontab,运行 crontab -e,把下面内容添加到文件末尾:
*/10 * * * * ~/he_ddns.sh假定你的文件位于 ~/he_ddns.sh,请修改为实际位置
将你访问要使用的域名设置 CNAME 到 DDNS 域名,例如将 homelab.example.com 域名 CNAME 到 homelab.dyn.example.com。访问时使用 homelab.example.com。
这么做的好处是,你依然可以使用你原本的解析商的其他功能,例如运行相关脚本签发证书。