Domain-Name-System

使用綁定將域設置為 ubuntu 20.04 vps

  • July 4, 2021

所以我有一個 ubuntu 20.04 vps 和一個在上面執行的網站,我想將我的域指向它。但是nslookup railnet.ir** server can't find railnet.ir: SERVFAIL

了 vps ip87.236.210.159和域是railnet.ir 我做的事情:

apt install bind9 然後是 configs: /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 address``87.236.210.159

這是我第一次做這樣的事情,所以很明顯我做錯了什麼,但無法弄清楚

首先,您必須ns1.railnet.ir.在您的區域中定義。添加一行

ns1 IN A 87.236.210.159

其次,您的 DNS 伺服器沒有回复。dig railnet.ir @87.236.210.159不返回任何答案。要找出原因,請查看 bind 提供的日誌。可能由於某種原因它無法打開區域文件,或者發現它無效。

第三,根據你寫的內容,你的also-notify和指向你自己。allow-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 是託管自己的那些東西之一。並非不可能,但只有一個域,您必須依賴粘合記錄。與記憶體一起,這可能會導致記憶體的停機時間較短。在外部託管 DNS 通常是一種更好的方法,例如 Cloudflare。

引用自:https://serverfault.com/questions/1068607