有没有办法自行托管动态 DNS 服务?我真的很喜欢 DynDNS 等的灵活性,但我想托管自己的动态 DNS 服务,这样我就可以更好地控制并能够将我拥有的域名发送到名称服务器而无需付费。是否有可用的动态 DNS FOSS 实现,或者是否有办法在 BIND 中执行此操作?
答案1
bind
v9 支持动态更新:
zone "example.net" {
type master;
file "zones/example.net.db";
update-policy local;
auto-dnssec allow;
key-directory "keys/example.net";
};
您可以使用
nsupdate
在本地管理区域,或致电
nsupdate
来自 CGI 脚本(通过客户端 PC 访问,如 DynDNS 更新程序),或
nsupdate
远程使用使用 TSIG。zone "example.net" { update-policy { grant <keyname> name <hostname> A AAAA TXT; //grant * self * A AAAA TXT; }; }; key <keyname> { algorithm HMAC-MD5; secret "<keydata>"; };
(文档:
update-policy
)Windows 本身支持 DDNS,使用TSIG,这需要有效的 Kerberos 设置(不一定是 Active Directory)。
dhclient
在本地网络中,更新可由 DHCP 客户端 (ISC ) 或服务器 (ISC )执行dhcpd
。这也在安全动态 DNS页。bind
能自动签名动态区域。
答案2
使用 bind 和 PHP 的完整设置指南https://saudiqbal.github.io/Linux/self-hosted-Dynamic-DNS-server-PHP-BIND.html