永久配置网卡DNS需将DNS1/DNS2等写入对应发行版网卡配置文件:RHEL/CentOS系为/etc/sysconfig/network-scripts/ifcfg-XXX,Ubuntu/Debian系为/etc/netplan/*.yaml或/etc/network/interfaces,保存后重启网络服务并验证。

永久配置网卡的 DNS 地址,关键在于把 DNS 信息写进网卡配置文件,而不是只改 /etc/resolv.conf——后者重启后容易被覆盖或重置。
确认网卡配置文件路径和名称
大多数传统 Linux 发行版(如 CentOS/RHEL 7 及更早、Rocky Linux、AlmaLinux)使用 /etc/sysconfig/network-scripts/ifcfg-* 文件管理网卡。运行以下命令查看当前活跃网卡名:
-
ip -br a或ifconfig -a(需安装 net-tools) - 常见名称如
ens33、eth0、enp0s3
对应配置文件一般为 /etc/sysconfig/network-scripts/ifcfg-ens33(以实际网卡名为准)。
编辑网卡配置文件添加 DNS
用 root 权限编辑该文件:
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33- 在文件末尾追加三行(支持最多三个 DNS):
DNS2=8.8.8.8
DNS3=1.1.1.1
确保已有 BOOTPROTO=static(静态 IP)或 BOOTPROTO=dhcp(DHCP 模式下部分发行版仍会读取 DNS1/DNS2)。若为 DHCP,某些系统还需添加 PEERDNS=no 防止 NetworkManager 覆盖 DNS 设置。
重启网络服务使配置生效
保存退出后,重启网络服务:
- RHEL/CentOS 7+、Rocky/AlmaLinux:
sudo systemctl restart network - 部分旧系统(RHEL 6):
sudo service network restart
验证是否生效:nmcli dev show | grep DNS 或 systemd-resolve --status(若启用 systemd-resolved),也可直接检查生成的 /etc/resolv.conf 内容是否已更新。
注意不同系统的差异
Ubuntu/Debian 系统默认使用 Netplan 或 NetworkManager,不走 ifcfg 文件:
- Ubuntu 20.04+:修改
/etc/netplan/*.yaml,在对应网卡下添加nameservers:块 - 例如:
nameservers: {addresses: [114.114.114.114, 8.8.8.8]} - 应用配置:
sudo netplan apply
使用 systemd-networkd 的系统,则需在 /etc/systemd/network/*.network 中的 [Network] 段添加 DNS= 行。


















