如何在 Linux 系统中更改 DNS 设置?

Linux 中更改 DNS 可以通过编辑 /etc/resolv.conf 文件或使用 nmcli 命令(对于 NetworkManager)来实现。

Linux 修改 DNS:详细指南

linux 改dns

背景介绍

在Linux系统中,DNS(域名系统)负责将人类可读的域名转换为机器可读的IP地址,正确配置DNS对于网络连接和访问互联网资源至关重要,本文将详细介绍如何在Linux系统中临时和永久修改DNS设置

一、临时修改 DNS

方法

临时修改DNS通常通过编辑/etc/resolv.conf文件来实现,这种方法简单直接,但不持久,重启后会失效。

步骤详解

打开/etc/resolv.conf 文件:使用文本编辑器(如vim或nano)打开该文件。

   sudo vim /etc/resolv.conf

添加或修改内容:在文件中添加或修改DNS服务器地址,使用Google的公共DNS服务器:

     nameserver 8.8.8.8
     nameserver 8.8.4.4

保存并退出:保存更改并退出编辑器。

示例操作

linux 改dns

假设我们要将DNS服务器改为Google的公共DNS服务器,具体操作如下:

打开终端并输入以下命令:

   sudo vim /etc/resolv.conf

在打开的文件中,添加或修改为:

     nameserver 8.8.8.8
     nameserver 8.8.4.4

保存并退出(在vim中按Esc,然后输入:wq)。

注意事项

这种修改方式不会在系统重启后保留,因此适用于临时调试或测试。

如果需要永久修改DNS,请参考后续章节。

二、永久修改 DNS

方法

linux 改dns

永久修改DNS涉及编辑系统配置文件,以确保在重启后仍然有效,不同的Linux发行版可能有不同的配置文件位置和方法。

步骤详解

(1)修改/etc/resolv.conf 文件(适用于大多数Linux发行版)

创建或编辑/etc/resolv.conf.d/head 文件

   sudo vim /etc/resolvconf/resolv.conf.d/head

在文件中添加DNS服务器地址

     nameserver 8.8.8.8
     nameserver 8.8.4.4

保存并退出

(2)修改/etc/systemd/resolved.conf 文件(适用于使用systemdresolved的系统)

打开/etc/systemd/resolved.conf 文件

   sudo vim /etc/systemd/resolved.conf

修改或添加以下行

     [Resolve]
     DNS=8.8.8.8 114.114.115.115
     FallbackDNS=8.8.8.8
     Domains=~.
     LLCMNr=yes
     MulticastDNS=yes
     DNSSEC=yes
     Cache=nonegative

保存并退出

重启 systemdresolved 服务

   sudo systemctl restart systemdresolved

设置开机启动 systemdresolved 服务

   sudo systemctl enable systemdresolved

备份原始的/etc/resolv.conf 文件

   sudo mv /etc/resolv.conf /etc/resolv.conf.bak

重新生成符号链接

   sudo ln s /run/systemd/resolve/resolv.conf /etc/resolv.conf

(3)修改网卡配置文件(适用于静态IP地址)

打开网卡配置文件:对于eth0网卡,编辑/etc/sysconfig/networkscripts/ifcfgeth0文件。

   sudo vim /etc/sysconfig/networkscripts/ifcfgeth0

添加或修改以下行

     DNS1=8.8.8.8
     DNS2=8.8.4.4

保存并退出

重启网络服务

   sudo systemctl restart network

(4)使用 NetworkManager(适用于桌面环境)

打开 NetworkManager 配置文件

   sudo vim /etc/NetworkManager/NetworkManager.conf

注释掉dns=dnsmasq,确保不使用dnsmasq。

编辑对应的连接配置文件:编辑/etc/NetworkManager/systemconnections/YourConnectionName文件,添加或修改以下部分:

     [ipv4]
     method=manual
     addresses1=192.168.1.100;8.8.8.8;8.8.4.4
     dns=8.8.8.8;8.8.4.4;
     dnssearch=domain.com

保存并退出

重启 NetworkManager 服务

   sudo systemctl restart NetworkManager

示例操作

(1)使用/etc/resolv.conf.d/head 文件进行永久修改

假设我们要将DNS服务器永久改为Google的公共DNS服务器,具体操作如下:

打开终端并输入以下命令:

   sudo vim /etc/resolvconf/resolv.conf.d/head

在打开的文件中,添加或修改为:

     nameserver 8.8.8.8
     nameserver 8.8.4.4

保存并退出(在vim中按Esc,然后输入:wq)。

(2)使用/etc/systemd/resolved.conf 文件进行永久修改

假设我们要将DNS服务器永久改为Google的公共DNS服务器,具体操作如下:

打开终端并输入以下命令:

   sudo vim /etc/systemd/resolved.conf

在打开的文件中,修改或添加以下行:

     [Resolve]
     DNS=8.8.8.8 114.114.115.115
     FallbackDNS=8.8.8.8
     Domains=~.
     LLCMNr=yes
     MulticastDNS=yes
     DNSSEC=yes
     Cache=nonegative

保存并退出(在vim中按Esc,然后输入:wq)。

重启 systemdresolved 服务:

   sudo systemctl restart systemdresolved

设置开机启动 systemdresolved 服务:

   sudo systemctl enable systemdresolved

备份原始的/etc/resolv.conf 文件:

   sudo mv /etc/resolv.conf /etc/resolv.conf.bak

重新生成符号链接:

   sudo ln s /run/systemd/resolve/resolv.conf /etc/resolv.conf

三、小编总结与最佳实践

临时修改DNS:通过编辑/etc/resolv.conf文件实现,适用于快速测试或临时需求。

永久修改DNS:根据系统配置不同,可以通过编辑/etc/resolvconf/resolv.conf.d/head/etc/systemd/resolved.conf或网卡配置文件等方法实现,确保重启后仍然有效。

使用合适的DNS服务器:推荐使用可靠的公共DNS服务器,如Google(8.8.8.8,8.8.4.4)或阿里(223.5.5.5223.6.6.6),以提高网络访问速度和稳定性。

最佳实践

定期检查DNS配置:确保DNS配置正确无误,避免因DNS问题导致的网络故障。

备份重要配置文件:在进行任何修改前,建议备份相关配置文件,以防出现错误时可以快速恢复。

使用脚本自动化配置:对于频繁变更的环境,可以编写脚本自动化DNS配置过程,提高效率并减少人为错误。

四、相关问题与解答

如何验证DNS配置是否生效?

可以使用nslookupdig命令来验证DNS配置是否生效。

   nslookup www.google.com

   dig www.google.com

如果返回正确的IP地址,则说明DNS配置已生效。

2. 如果DNS配置不正确导致无法上网怎么办?

恢复备份:如果有备份,可以先恢复到之前的配置文件。

使用默认DNS:临时将DNS改为常用的公共DNS(如Google的8.8.8.8),以恢复网络连接。

检查网络连接:确保网络连接正常,排除物理层的问题。

查看日志:检查系统日志(如/var/log/messages/var/log/syslog)以获取更多错误信息,帮助定位问题所在。

来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/94533.html

Like (0)
小编的头像小编
Previous 2024年12月20日 13:24
Next 2024年12月20日 13:36

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注