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
保存并退出:保存更改并退出编辑器。
示例操作
假设我们要将DNS服务器改为Google的公共DNS服务器,具体操作如下:
打开终端并输入以下命令:
sudo vim /etc/resolv.conf
在打开的文件中,添加或修改为:
nameserver 8.8.8.8 nameserver 8.8.4.4
保存并退出(在vim中按Esc
,然后输入:wq
)。
注意事项
这种修改方式不会在系统重启后保留,因此适用于临时调试或测试。
如果需要永久修改DNS,请参考后续章节。
二、永久修改 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配置是否生效?
可以使用nslookup
或dig
命令来验证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