上一篇
服务器DNS设置在哪 | 服务器DNS配置指南详解
- 互联网
- 2026-02-09
- 4012
临时修改(重启后失效)
直接修改 /etc/resolv.conf 文件
sudo vi /etc/resolv.conf
添加或替换 nameserver 行(例如使用 Google DNS):
nameserver 8.8.8.8 nameserver 8.8.4.4
注意:某些系统(如使用 systemd-resolved 或 NetworkManager)重启后会自动覆盖此文件。
永久配置(不同系统方法不同)
Debian/Ubuntu(使用 netplan,适用于 Ubuntu 18.04+)
- 编辑 Netplan 配置文件(通常位于 /etc/netplan/): sudo vi /etc/netplan/01-netcfg.yaml
- 在网卡配置下添加 nameservers 字段: network: ethernets: eth0: dhcp4: no addresses: [192.168.1.10/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4] # 设置DNS version: 2
- 应用配置: sudo netplan apply
CentOS/RHEL 7 及以下(使用 network-scripts)
- 编辑网卡配置文件(如 ifcfg-eth0): sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
- 添加以下行: DNS1=8.8.8.8 DNS2=8.8.4.4 PEERDNS=no # 阻止 DHCP 覆盖 DNS
- 重启网络服务: sudo systemctl restart network
CentOS/RHEL 8+ 及 Fedora(使用 NetworkManager)
- 使用 nmcli 修改连接配置: sudo nmcli con mod "eth0" ipv4.dns "8.8.8.8 8.8.4.4" sudo nmcli con mod "eth0" ipv4.ignore-auto-dns yes # 禁用 DHCP 的 DNS sudo nmcli con up "eth0"
通用方法:修改 /etc/resolv.conf 的底层配置
-
编辑 /etc/resolvconf/resolv.conf.d/base(Debian/Ubuntu):
添加:


更新配置:

-
或通过 /etc/systemd/resolved.conf(使用 systemd-resolved 的系统):
sudo vi /etc/systemd/resolved.conf取消注释并修改:
[Resolve] DNS=8.8.8.8 8.8.4.4
重启服务:
sudo systemctl restart systemd-resolved - 检查当前生效的 DNS: cat /etc/resolv.conf
- 测试域名解析: nslookup google.com # 或 dig google.com
- 权限要求:所有操作需 root 权限(使用 sudo)。
- 网络管理工具差异:
- Ubuntu 18.04+ 默认用 netplan。
- CentOS 7 用 network-scripts,CentOS 8+ 用 NetworkManager。
- 防止覆盖:如果使用 DHCP,需设置 PEERDNS=no(CentOS)或 ignore-auto-dns(NetworkManager),避免 DNS 被重置。
- 多网卡场景:确保修改目标网卡的配置文件(如 eth0)。
验证 DNS 设置
关键注意事项
按以上步骤操作后,服务器的 DNS 即可正确配置。