安装 DNS 服务软件
在 CentOS 中,通常使用bind
作为 DNS 服务器软件,执行以下命令安装bind
和bindutils
:
sudo yum install y bind bindutils
配置 DNS 服务
编辑主配置文件:打开/etc/named.conf
文件,进行以下修改 :
将listenon port 53 { 127.0.0.1; };
修改为listenon port 53 { any; };
,允许外部网络访问 DNS 服务器。
将allowquery { localhost; };
修改为allowquery { any; };
,允许任何主机查询该 DNS 服务器。
配置正向解析区域:编辑/etc/named.rfc1912.zones
文件,添加类似如下的配置 :
zone "example.com" IN { type master; file "example.com.zone"; };
其中example.com
是要配置的域名,example.com.zone
是对应的区域文件名,然后创建并编辑该区域文件,如/var/named/example.com.zone
示例如下 :
$TTL 86400 @ IN SOA example.com. root.example.com. ( 2024010101 ; Serial 3600 ; Refresh after 1 hour 1800 ; Retry after 30 minutes 604800 ; Expire after 1 week 86400 ) ; Minimum TTL of 1 day @ IN NS dns.example.com. @ IN A [你的服务器IP地址] dns IN A [你的服务器IP地址]
这里[你的服务器IP地址]
需替换为实际的服务器 IP 地址。
配置反向解析区域:同样在/etc/named.rfc1912.zones
文件中添加反向解析区域配置,例如对于网段192.168.1.0/24
,添加以下内容 :
zone "1.168.192.inaddr.arpa" IN { type master; file "1.168.192.zone"; };
然后创建并编辑相应的区域文件,如/var/named/1.168.192.zone
示例如下 :
$TTL 86400 @ IN SOA example.com. root.example.com. ( 2024010101 ; Serial 3600 ; Refresh after 1 hour 1800 ; Retry after 30 minutes 604800 ; Expire after 1 week 86400 ) ; Minimum TTL of 1 day @ IN NS dns.example.com. 1 IN PTR dns.example.com.
配置网卡文件或使用 NetworkManager 设置 DNS
如果未安装 NetworkManager,可以通过编辑网卡配置文件来设置 DNS,假设网卡名称为eth0
,执行以下命令打开配置文件:
sudo vi /etc/sysconfig/networkscripts/ifcfgeth0
找到以DNS1
、DNS2
等开头的行,如果没有则添加,设置如下 :
DNS1=8.8.8.8 DNS2=8.8.4.4
保存并退出后,重新启动网络服务使设置生效 :
sudo systemctl restart network
若使用 NetworkManager,可通过图形界面或命令行工具nmcli
进行设置,:
nmcli con mod your_connection_name ipv4.dns "8.8.8.8 8.8.4.4" nmcli con up your_connection_name
其中your_connection_name
为网络连接的名称。
测试 DNS 设置
使用ping
或nslookup
等命令测试新设置的 DNS 是否生效,:
ping www.google.com nslookup www.google.com
如果能收到响应,则说明 DNS 设置成功。