在Ubuntu系统中设置域名解析可以通过几种不同的方法来实现,具体取决于您的需求。以下是几种常见的方法:
使用systemd-resolved服务
Ubuntu系统通常使用systemd-resolved
服务来处理DNS解析。要配置特定的域名解析,可以编辑/etc/systemd/resolved.conf
文件。例如,要为a.com
域名指定公共DNS服务器(如114.114.114.114),可以进行以下操作:
sudo vim /etc/systemd/resolved.conf
在文件中找到或添加以下行:
[Resolve] DNS=114.114.114.114 FallbackDNS=a.com
然后重启systemd-resolved
服务以应用更改:
sudo systemctl restart systemd-resolved.service
使用/etc/resolv.conf文件
虽然直接编辑/etc/resolv.conf
文件可能会导致系统覆盖这些设置,但您可以使用以下方法来永久修改DNS服务器:
-
备份当前的
/etc/resolv.conf
文件:sudo cp /etc/resolv.conf /etc/resolv.conf.bak
-
创建一个新的符号链接到
/run/resolvconf/resolv.conf
:sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf
-
编辑
/etc/systemd/resolved.conf
文件来指定DNS服务器,然后重启网络服务:sudo systemctl daemon-reload sudo systemctl restart systemd-resolved.service
使用网络配置文件
Ubuntu使用NetworkManager来管理网络连接,您可以在/etc/netplan/
目录下的配置文件中设置DNS服务器。例如,编辑/etc/netplan/00-installer-config.yaml
文件(或相应的网络配置文件),添加或修改dns-nameservers
行:
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: no addresses: [192.168.1.10/24] gateway4: 192.168.1.1 dns-nameservers: - 8.8.8.8 - 8.8.4.4
然后应用配置:
sudo netplan apply
使用BIND设置本地DNS服务器
如果您需要设置一个本地的DNS服务器来解析自定义域名,可以使用BIND。以下是简要步骤:
-
安装BIND:
sudo apt update sudo apt install bind9 bind9utils bind9-doc
-
配置BIND的主配置文件
/etc/bind/named.conf.options
,设置监听的IP和转发器:options { directory "/var/cache/bind"; recursion yes; allow-query { any; }; forwarders { 8.8.8.8; 8.8.4.4; }; };
-
创建区域配置文件和区域数据文件,例如
/etc/bind/db.example.com
,并添加相应的DNS记录。 -
重启BIND服务:
sudo systemctl restart bind9
-
(可选)配置客户端使用新的DNS服务器,编辑
/etc/network/interfaces
文件并添加dns-nameservers
行。