在Linux系统中配置DNS可以通过以下几种方法,具体选择取决于你的需求(临时/永久、网络管理工具等)。以下是详细的配置方法:
/etc/resolv.confsudo nano /etc/resolv.conf
添加或修改以下内容(示例使用Google DNS):
nameserver 8.8.8.8
nameserver 8.8.4.4
注意:某些系统(如使用systemd-resolved或NetworkManager)会覆盖此文件,需结合后续永久配置方法。
resolvectl(systemd-resolved)sudo resolvectl dns eth0 8.8.8.8 8.8.4.4
bash
nmcli con mod <连接名> ipv4.dns "8.8.8.8 8.8.4.4"
nmcli con up <连接名> # 应用更改编辑YAML配置文件(如/etc/netplan/01-netcfg.yaml):
yaml
network:
version: 2
ethernets:
eth0:
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
应用配置:
bash
sudo netplan apply
/etc/network/interfaces(Debian/旧版Ubuntu)plaintext
iface eth0 inet static
dns-nameservers 8.8.8.8 8.8.4.4
重启网络:
bash
sudo systemctl restart networking
编辑/etc/systemd/resolved.conf:
ini
[Resolve]
DNS=8.8.8.8 8.8.4.4
重启服务:
bash
sudo systemctl restart systemd-resolved
bash
cat /etc/resolv.conf
resolvectl status # systemd-resolvedbash
nslookup example.com
dig example.com8.8.8.8 1.1.1.1)。本地DNS缓存:
systemd-resolved缓存:
bash
sudo systemd-resolve --flush-cachesdnsmasq或nscd,需重启相应服务。DHCP分配的DNS:若需覆盖DHCP的DNS,在NetworkManager或Netplan中设置ignore-auto-dns。
/etc/resolv.conf被重置:确保通过正确工具(如NetworkManager)配置,或设置文件为不可变:
bash
sudo chattr +i /etc/resolv.confipv4.dns为ipv6.dns。根据你的Linux发行版和网络管理工具选择合适的方法即可。