使用 bind 将域名设置为 ubuntu 20.04 vps

使用 bind 将域名设置为 ubuntu 20.04 vps

所以我有一个 ubuntu 20.04 vps 和一个在其上运行的网站,我想将我的域名指向它。但是nslookup railnet.ir给出的** server can't find railnet.ir: SERVFAIL
vps ip 是87.236.210.159,域名是railnet.ir 我所做的事情:
apt install bind9 然后是配置/etc/bind/named.conf.options::

options {
    directory "/var/cache/bind";
    allow-query { any; };
    forwarders {
        8.8.8.8;
        8.8.4.4;
    };
    dnssec-validation auto;
    listen-on{
        87.236.210.159;
    };
    listen-on-v6 { none;};
};

/etc/bind/named.conf.local

zone "railnet.ir" {
        type master;
        file "/etc/bind/db.railnet.ir";
        allow-transfer { 87.236.210.159; };
        also-notify { 87.236.210.159; };
};

最后/etc/bind/db.railnet.ir

$TTL    604800
@       IN      SOA     ns1.railnet.ir. myemail.gmail.com. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.railnet.ir.
@       IN      A       87.236.210.159

并且在我的域名提供商网站中我也设置server namens1.railnet.irip address87.236.210.159

这是我第一次做这样的事,所以很明显我做错了什么,但却想不通

答案1

首先,你必须ns1.railnet.ir.在你的区域中定义。添加一行

ns1 IN A 87.236.210.159

其次,您的 DNS 服务器没有回复。dig railnet.ir @87.236.210.159没有返回任何答案。要找出原因,请查看 bind 提供的日志。很可能由于某种原因它无法打开区域文件,或者发现它无效。

第三,根据您写的内容,您的also-notifyallow-transfer指向您自己。通常,这些应该指向该域的辅助 DNS 服务器。

首先对所有有效名称进行权威绑定回复,例如

  • dig railnet.ir SOA @87.236.210.159应该返回ns1.railnet.ir
  • dig ns1.railnet.ir A @87.236.210.159应该返回87.236.210.159

完成后,更新 whois,并希望粘合记录能够正确配置。

此外,您可能还想定义一些 ACL。就目前而言,bind 可以回答任何人提出的任何问题。您可能希望它回答它所控制的区域,并拒绝其他查询。

此外,DNS 是那些自己托管起来有点棘手的东西之一。这并非不可能,但只有一个域,您必须依赖胶合记录。与缓存一起,这可能会导致短暂的停机时间被缓存。使用 Cloudflare 等外部托管 DNS 通常是更好的方法。

相关内容