我将为您分情况介绍最常用和可靠的方法。

方法一:使用nmcli 命令(推荐 - 适用于 CentOS 7/8/9)
nmcli 是 NetworkManager 的命令行工具,这是管理和修改网络配置最现代和推荐的方式。
你需要知道你要修改的网络连接(Connection)叫什么名字。
nmcli connection show
或者更简短一些:
nmcli con show
输出结果中,NAME 列就是连接名,UUID 列是唯一标识符,通常连接名类似于ens192、eth0 或Wired connection 1。

假设你的连接名是ens192,你想将 DNS 设置为114.114.114.114 和8.8.8.8。
命令格式:
sudo nmcli con mod <连接名> ipv4.dns "<DNS1> <DNS2>"
实际操作示例:
sudo nmcli con mod ens192 ipv4.dns "114.114.114.114 8.8.8.8"
修改配置后,需要重新激活(重启)网络连接才能生效。
方法A:先 down 再 up

sudo nmcli con down ens192 sudo nmcli con up ens192
方法B:使用reload 后重启连接(更优雅)
sudo nmcli con reload # 重新加载配置 sudo nmcli con down ens192 && sudo nmcli con up ens192 # 重启连接
cat /etc/resolv.conf
你应该能看到文件顶部有nameserver 114.114.114.114 和nameserver 8.8.8.8 的条目。
这种方法通过直接编辑网卡的配置文件来修改,同样永久有效,配置文件位于/etc/sysconfig/network-scripts/ 目录下。
注意:CentOS 8 之后,network-scripts 逐渐被弃用,推荐使用上述的nmcli 或下文方法三,但对于 CentOS 7,这是非常标准的方法。
配置文件的名字通常是ifcfg-<网卡名>,例如ifcfg-ens192。
ls /etc/sysconfig/network-scripts/ifcfg
使用vi 或nano 编辑对应的文件。
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens192
在文件中找到或添加以下两行:
DNS1=114.114.114.114 DNS2=8.8.8.8
如果文件中已存在PEERDNS=yes,确保它存在,它的作用是允许通过此配置文件修改/etc/resolv.conf。
保存文件后,重启网络服务以使更改生效。
在 CentOS 7 上:
sudo systemctl restart network
在 CentOS 8/9 上(如果仍在使用 network-scripts):
sudo systemctl restart NetworkManager
同样使用cat /etc/resolv.conf 命令验证。
方法三:使用nmtui 文本图形化工具(交互式,适合新手)
如果你不熟悉命令行,这是一个很好的交互式工具。
1、 在终端中输入以下命令:
sudo nmtui2、 使用键盘方向键选择Edit a connection,回车。
3、 选择你要修改的网络连接,回车。
4、 在配置界面中,向下移动到IPv4 CONFIGURATION 部分。
5、 将Automatic 旁边的<Show> 选项回车展开。
6、 在DNS servers 字段中,填入 DNS 服务器地址,用逗号分隔,114.114.114.114, 8.8.8.8。
7、 按Tab 键移动到最下面的OK,回车保存。
8、 返回主菜单,选择Activate a connection -> 选择你的连接 ->Deactivate,回车关闭它,然后再一次选择它 ->Activate,回车重新激活。
9、 最后选择Back 和Quit 退出。
验证方法同上。
这种方法只修改当前运行时的配置,服务器重启后就会失效,通常用于临时测试。
直接编辑/etc/resolv.conf 文件:
sudo vi /etc/resolv.conf
将里面的nameserver 行替换为你需要的 DNS:
nameserver 114.114.114.114 nameserver 8.8.8.8
保存即可立即生效。
重要警告: 如果系统由 NetworkManager 管理,当服务重启或系统重启后,这个文件会被自动重写,你的更改会丢失,所以这只适合临时测试。
| 方法 | 适用场景 | 永久性 | 推荐度 |
nmcli | 所有版本,尤其 CentOS 8/9 | 永久 | ★★★★★ (最推荐) |
nmtui | 新手,喜欢交互式界面 | 永久 | ★★★★☆ |
编辑ifcfg 文件 | CentOS 7 | 永久 | ★★★☆☆ (CentOS 7 可用) |
编辑/etc/resolv.conf | 临时测试 | 临时 | ★★☆☆☆ (仅用于测试) |
对于绝大多数情况,请直接使用nmcli 方法,这是最标准、最不易出错的方式。
文章摘自:https://idc.huochengrm.cn/dns/15239.html
评论
邝小蕊
回复在 CentOS 中,要更改 DNS 设置只需编辑网络配置文件(如 `/etc/resolv.conf`),添加或修改首选和备用域名服务器地址即可。
侍思松
回复使用nmcli命令修改CentOS系统DNS设置是最推荐的方式,适用于所有版本,尤其CentOS 8/9,操作简单,效果永久。
剑彭丹
回复这篇文章介绍了如何在 CentOS 系统中修改 DNS 设置的方法,文章提供了四种方法,分别是使用命令行工具 `nmcli`、直接编辑网络配置文件(永久生效)、文本图形化工具的交互式界面以及临时修改的快捷方式等不同的方式来实现目的并给出了详细的步骤和注意事项说明各种方法的适用场景及其优缺点其中推荐使用的方法是第一种通过 ncmcli 命令进行修改因为这种方法最标准且不易出错对于大多数情况来说是最推荐的方式同时文章中还提供了一些关于如何验证是否成功修改了DNS设置的指导信息
剧若星
回复介绍了四种修改CentOS系统DNS的方法,包括使用nmcli命令、编辑ifcfg文件、nmtui工具和临时编辑resolv.conf文件,推荐使用nmcli命令进行永久修改。