如何使用域名地址替代IP作为DNS?Ubuntu服务器自建NS配置求助
如何配置自定义DNS服务器(ns1/ns2.domain.ltd)用于多站点托管
看起来你想把自己的Ubuntu服务器打造成权威DNS服务器,让其他域名可以通过ns1.domain.ltd和ns2.domain.ltd来解析到你的服务器。先帮你修正当前Bind9配置里的关键错误,再一步步完成后续必要操作:
一、修正Bind9的Zone配置
你当前配置里的ns1和ns2记录类型写错了——应该是A记录(用来绑定域名到IP),而不是NS记录,而且结尾的多余点也需要去掉。修正后的完整配置如下:
$TTL 14400 @ IN SOA ns1.domain.ltd. root.domain.ltd. ( 2018011310 ; 注意:每次修改配置都要递增这个序列号,不然DNS不会生效 7200 3600 1209600 180 ) @ 14400 IN NS ns1.domain.ltd. @ 14400 IN NS ns2.domain.ltd. @ 14400 IN A 000.000.000.000 www 14400 IN A 000.000.000.000 ftp 14400 IN A 000.000.000.000 mail 14400 IN A 000.000.000.000 smtp 14400 IN A 000.000.000.000 pop 14400 IN A 000.000.000.000 imap 14400 IN A 000.000.000.000 @ 14400 IN MX 10 mail.domain.ltd. @ 14400 IN TXT "v=spf1 a mx ip4:000.000.000.000 ~all" _dmarc 14400 IN TXT "v=DMARC1; p=none" ns1 14400 IN A 000.000.000.000 ; 修正为A记录,去掉结尾多余的点 ns2 14400 IN A 000.000.000.000 ; 同理修正
修改完成后重启Bind9服务让配置生效:
sudo systemctl restart bind9
二、在域名注册商处添加Glue记录(关键!)
这一步很容易被忽略,但却是让自定义DNS生效的核心:当其他域名要使用ns1.domain.ltd作为DNS时,全球DNS系统需要先知道ns1.domain.ltd对应的IP——这就需要在你的domain.ltd的注册商控制面板里添加Glue记录(也叫Nameserver IP记录)。
操作步骤:
- 登录domain.ltd的域名注册商后台,找到域名管理的DNS设置板块
- 添加两条Glue记录:
- 主机名:
ns1,对应IP:000.000.000.000 - 主机名:
ns2,对应IP:000.000.000.000
- 主机名:
- 保存设置后,等待DNS全局同步(通常需要1-24小时)
三、在VestaCP中添加新站点并配置DNS
当自定义DNS服务器准备就绪后,就可以在VestaCP里托管其他域名了:
- 登录VestaCP面板,进入
Web模块,点击Add Web Domain - 输入要托管的新域名(比如
example.com),选择服务器IP,勾选DNS Support选项 - 保存后,VestaCP会自动在Bind9中创建该域名的Zone配置,包含必要的A/NS/MX等记录
- 最后去
example.com的域名注册商后台,把它的Nameserver设置为ns1.domain.ltd和ns2.domain.ltd即可
四、验证DNS配置是否生效
可以用以下命令检查配置状态:
- 验证ns1.domain.ltd的IP解析是否正确:
dig ns1.domain.ltd +short
- 验证新域名是否通过你的DNS服务器解析:
dig example.com @ns1.domain.ltd +short
如果返回对应的服务器IP,说明配置已经成功生效。
内容的提问来源于stack exchange,提问作者Siavash
相关产品推荐
相关产品推荐

