適用場景:無需搭建DNS服務器,快速將域名映射到指定IP(如開發環境、測試環境)。
操作步驟:
/etc/hosts
文件(如sudo nano /etc/hosts
或sudo vim /etc/hosts
)。IP地址 域名
添加記錄(每行一個),例如:192.168.1.100 example.com
192.168.1.100 www.example.com
(可同時綁定多個域名到同一IP,如192.168.1.100 api.example.com admin.example.com
)。Ctrl+O
→Enter
→Ctrl+X
),修改立即生效,無需重啟系統。ping example.com
或nslookup example.com
命令驗證是否解析到目標IP(注意:nslookup
可能仍查詢DNS,但實際網絡請求會優先走hosts文件)。/etc/nsswitch.conf
中的hosts
行,默認為files dns
);操作步驟:
sudo apt-get update && sudo apt-get install bind9
;sudo yum install bind bind-utils
(bind-utils
包含dig
、nslookup
等工具)。操作步驟:
編輯/etc/bind/named.conf
(Debian/Ubuntu)或/etc/named.conf
(CentOS/RHEL),添加以下全局配置:
options {
directory "/var/cache/bind"; # 指定緩存目錄
recursion yes; # 允許遞歸查詢(客戶端可請求未知域名)
allow-query { any; }; # 允許所有客戶端查詢(生產環境建議限制為特定IP段)
};
操作步驟:
編輯/etc/bind/named.conf.local
(Debian/Ubuntu)或/etc/named.rfc1912.zones
(CentOS/RHEL),添加區域配置:
zone "example.com" { # 要解析的域名
type master; # 區域類型(master為主服務器)
file "/etc/bind/db.example.com"; # 區域數據文件路徑
};
操作步驟:
sudo cp -p /var/cache/bind/db.local /etc/bind/db.example.com # Debian/Ubuntu
sudo cp -p /var/named/named.localhost /var/named/db.example.com # CentOS/RHEL
sudo vim /etc/bind/db.example.com
),添加以下內容:$TTL 86400 # 緩存時間(1天)
@ IN SOA ns1.example.com. admin.example.com. ( # SOA記錄(Start of Authority)
2025101801 ; serial # 序列號(每次修改需遞增)
3600 ; refresh # 刷新周期(1小時)
1800 ; retry # 重試周期(30分鐘)
604800 ; expire # 過期時間(1周)
86400 ; minimum # 最小TTL(1天)
)
@ IN NS ns1.example.com. # NS記錄(Name Server)
ns1 IN A 192.168.1.100 # A記錄(域名→IP)
www IN A 192.168.1.100 # 別名解析
操作步驟:
/etc/bind/named.conf.local
(Debian/Ubuntu)或/etc/named.rfc1912.zones
(CentOS/RHEL),添加反向區域配置:zone "1.168.192.in-addr.arpa" { # 反向區域(IP段192.168.1.0/24的反向表示)
type master;
file "/etc/bind/db.192"; # 反向數據文件路徑
};
sudo vim /etc/bind/db.192
),添加以下內容:$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2025101801 ; serial
3600 ; refresh
1800 ; retry
604800 ; expire
86400 ; minimum
)
@ IN NS ns1.example.com.
100 IN PTR ns1.example.com. # PTR記錄(IP→域名)
操作步驟:
sudo systemctl restart bind9 # Debian/Ubuntu
sudo systemctl restart named # CentOS/RHEL
sudo systemctl enable bind9 # 設置開機自啟(Debian/Ubuntu)
sudo systemctl enable named # 設置開機自啟(CentOS/RHEL)
操作步驟:
編輯客戶端/etc/resolv.conf
文件(需管理員權限),添加DNS服務器IP:
nameserver 192.168.1.100 # 替換為你的DNS服務器IP
(若系統使用NetworkManager管理網絡,可通過圖形界面或nmcli
命令設置DNS)。
操作步驟:
nslookup
命令測試正向解析:nslookup example.com
預期結果:顯示域名對應的IP地址(如192.168.1.100
)。dig
命令測試反向解析(可選):dig -x 192.168.1.100
預期結果:顯示IP對應的域名(如ns1.example.com
)。sudo ufw allow 53
),否則客戶端無法查詢;serial
字段,否則DNS服務器不會加載新配置。