192.168.1.100
),避免動態IP變動導致解析失敗??赏ㄟ^nmcli
或編輯網絡配置文件(如/etc/sysconfig/network-scripts/ifcfg-ens33
)設置:nmcli con mod ens33 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 192.168.1.100
nmcli con up ens33
example.com
)及對應的主機記錄(如www.example.com
指向192.168.1.101
、mail.example.com
指向192.168.1.102
)。Bind是CentOS下常用的DNS服務器軟件,通過以下命令安裝核心組件及工具:
yum install -y bind bind-utils
bind
:DNS服務器主程序;bind-utils
:包含nslookup
、dig
等DNS測試工具。named.conf
編輯/etc/named.conf
,調整以下關鍵參數:
vim /etc/named.conf
listen-on port 53
和allow-query
行,修改為:listen-on port 53 { any; }; # 監聽所有IP的53端口
allow-query { any; }; # 允許所有客戶端查詢
listen-on-v6
行的注釋并修改為any
。setenforce 0 # 臨時關閉
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 永久關閉
正向解析將域名映射到IP地址。
/etc/named.rfc1912.zones
(或CentOS 7的/etc/named.conf
內zone
部分),添加:zone "example.com" IN {
type master; # 主DNS服務器
file "example.com.zone"; # 區域文件路徑
allow-update { none; }; # 禁止動態更新
};
named.localhost
)并修改:cd /var/named
cp -p named.localhost example.com.zone
vim example.com.zone
修改內容示例如下(注意域名末尾必須有.
,表示絕對域名;IP末尾無.
):$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2025100601 ; Serial(序列號,每次修改需遞增)
3600 ; Refresh(刷新時間,單位:秒)
1800 ; Retry(重試時間)
1209600 ; Expire(過期時間)
86400 ) ; Minimum TTL(最小TTL)
@ IN NS ns1.example.com. ; 域名服務器記錄
ns1 IN A 192.168.1.100 ; NS記錄對應的IP
www IN A 192.168.1.101 ; www.example.com解析到192.168.1.101
mail IN A 192.168.1.102 ; mail.example.com解析到192.168.1.102
反向解析將IP地址映射到域名,用于郵件服務器等場景。
/etc/named.rfc1912.zones
中添加:zone "1.168.192.in-addr.arpa" IN { # 反向區域名格式:反向IP段.in-addr.arpa
type master;
file "1.168.192.zone";
allow-update { none; };
};
cp -p named.loopback 1.168.192.zone
vim 1.168.192.zone
修改內容示例如下:$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2025100601 ; Serial
3600 ; Refresh
1800 ; Retry
1209600 ; Expire
86400 ) ; Minimum TTL
@ IN NS ns1.example.com.
100 IN PTR ns1.example.com. ; 192.168.1.100反向解析到ns1.example.com
101 IN PTR www.example.com. ; 192.168.1.101反向解析到www.example.com
102 IN PTR mail.example.com. ; 192.168.1.102反向解析到mail.example.com
在重啟服務前,務必檢查配置文件是否有語法錯誤:
named-checkconf # 檢查主配置文件
named-checkzone example.com /var/named/example.com.zone # 檢查正向區域文件
named-checkzone 1.168.192.in-addr.arpa /var/named/1.168.192.zone # 檢查反向區域文件
若輸出無錯誤,則可繼續。
systemctl start named # 啟動服務
systemctl enable named # 設置開機自啟
systemctl status named # 查看服務狀態(確保為“active (running)”)
192.168.1.100
)。nslookup
工具驗證:nslookup www.example.com 192.168.1.100 # 正向解析
nslookup 192.168.1.101 192.168.1.100 # 反向解析
若返回對應的域名或IP,則說明配置成功。netstat -tulnp | grep 53
),若有沖突,停止占用進程或修改DNS端口(不推薦)。setsebool -P named_write_master_zones 1 # 允許named寫入區域文件
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload