在 CentOS 7 中,您可以通过几种方式来修改 DNS 设置:
方法 1: 通过
nmcli
(NetworkManager 命令行界面)
这种方法适合通过 NetworkManager 管理网络的系统。
查看网络连接的名称:
nmcli con show
设置新的 DNS 服务器地址,并使用您的网络连接名称替换
YourConnectionName
和您选择的 DNS 服务器替换
DNS1
和
DNS2
(例如,Google 的公共 DNS 服务器
8.8.8.8
和
8.8.4.4
):
nmcli con mod YourConnectionName ipv4.dns "DNS1 DNS2"
nmcli con mod YourConnectionName ipv4.ignore-auto-dns yes
重新启动网络连接以使修改生效:
nmcli con up YourConnectionName
方法 2: 通过编辑网卡配置文件
这种方法适合没有安装 NetworkManager 或喜欢直接编辑配置文件的用户。
- 打开网络配置文件,您需要根据网卡的名称选取对应的文件。网卡配置文件通常位于
/etc/sysconfig/network-scripts/
目录下,并以ifcfg-网卡名称
命名,比如ifcfg-eth0
。使用文本编辑器打开相应的配置文件(假设网卡名称为eth0
):sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
- 在文件中找到以
DNS1
、DNS2
为关键字的行,如果不存在,则添加它们,并将其值设置为您希望使用的 DNS 服务器地址。例如:DNS1=8.8.8.8DNS2=8.8.4.4
- 如果文件中包含
PEERDNS=yes
,并且你想要使用静态设置的 DNS,而不是 DHCP 分配的 DNS,你需要将其更改为PEERDNS=no
。 - 保存文件并退出编辑器。
- 重新启动网络服务以使新的 DNS 设置生效:
sudo systemctl restart network
方法 3: 修改
/etc/resolv.conf
文件
尽管直接编辑
/etc/resolv.conf
文件可以更改 DNS 服务器设置,但在使用 NetworkManager 的系统中,这些更改可能不会持久,因为 NetworkManager 可能会覆盖该文件。
如果您仍希望编辑该文件,可以执行以下命令:
sudo vi /etc/resolv.conf
然后添加或修改
nameserver
行以包括所需的 DNS 服务器地址,例如:
nameserver 8.8.8.8
nameserver 8.8.4.4
保存并关闭文件。
在编辑
resolv.conf
文件之后,为确保修改能持续生效,还需要阻止 NetworkManager 对该文件进行修改:
- 编辑 NetworkManager 的配置文件:
sudo vi /etc/NetworkManager/NetworkManager.conf
- 添加或修改
[main]
部分,设置dns=none
:[main]dns=none
- 重新启动 NetworkManager 以使设置生效:
sudo systemctl restart NetworkManager
在修改 DNS 设置后,您可以通过以下命令测试新设置是否生效:
ping www.google.com
如果能收到响应,则说明 DNS 正在正常工作。
版权归原作者 Kevin_Wuzl 所有, 如有侵权,请联系我们删除。