/etc/resolv.conf 文件或使用 systemdresolved 配置 DNS。Linux 中配置 DNS 的详细指南
在 Linux 系统中,域名系统(DNS)的配置是确保网络通信顺畅的关键步骤,正确配置 DNS 可以使您的系统能够将域名解析为 IP 地址,从而访问互联网上的其他服务器和资源,以下是关于如何在 Linux 中配置 DNS 的详细内容。
一、DNS 的基本概念
DNS(Domain Name System)是一种分布式命名系统,它允许用户通过友好的域名(如 www.example.com)来访问网络上的计算机,而无需记住复杂的 IP 地址,当您在浏览器中输入一个域名时,您的计算机会向 DNS 服务器发送请求,DNS 服务器会将该域名解析为对应的 IP 地址,然后您的浏览器才能与目标服务器建立连接。
二、常见的 DNS 配置文件及位置
在不同的 Linux 发行版中,DNS 配置文件的位置可能略有不同,以下是一些常见的情况:
| Linux 发行版 | DNS 配置文件位置 |
| Debian/Ubuntu 及其衍生版本 | /etc/resolv.conf |
| CentOS/RHEL 及其衍生版本 | /etc/resolv.conf(默认),但可能会被 NetworkManager 动态管理 |
| Arch Linux | /etc/resolv.conf |
三、手动编辑 /etc/resolv.conf 文件配置 DNS
1、打开文件
使用文本编辑器打开/etc/resolv.conf 文件,在命令行中输入以下命令(以 nano 编辑器为例):
sudo nano /etc/resolv.conf
2、添加或修改 DNS 服务器地址
在文件中添加或修改以下内容:
nameserver [IP 地址 1] nameserver [IP 地址 2] ...
nameserver 8.8.8.8 nameserver 8.8.4.4
这里,8.8.8.8 和8.8.4.4 是 Google 提供的公共 DNS 服务器地址,您可以根据需要更改为其他合适的 DNS 服务器地址。
3、保存并关闭文件
在 nano 编辑器中,按下Ctrl + O 保存文件,然后按下Ctrl + X 退出编辑器。
四、通过 NetworkManager 配置 DNS(适用于部分桌面环境)
1、打开 NetworkManager 设置界面
在桌面环境中,通常可以通过系统设置或网络图标找到 NetworkManager 设置。
2、选择网络连接

选择您要配置的网络接口(如有线连接、无线连接等)。
3、进入 IPv4 或 IPv6 设置
根据您的网络类型(IPv4 或 IPv6),进入相应的设置页面。
4、配置 DNS 服务器
在 DNS 服务器字段中,手动输入您想要使用的 DNS 服务器地址,多个地址之间用逗号分隔。8.8.8.8,8.8.4.4。
5、保存设置
点击“应用”或“保存”按钮,使设置生效。
五、验证 DNS 配置是否生效
1、使用nslookup 命令
在命令行中输入以下命令:
nslookup [域名]
nslookup www.example.com
如果配置正确,您应该能够看到该域名对应的 IP 地址信息。
2、使用dig 命令
dig 命令提供了更详细的 DNS 查询信息,输入以下命令:

dig [域名]
dig www.example.com
查看输出中的ANSWER 部分,确认是否返回了正确的 IP 地址。
六、相关问题与解答
问题 1:我更改了 /etc/resolv.conf 文件,DNS 配置没有生效,可能是什么原因?
解答:可能有以下几种原因:
文件权限问题:确保/etc/resolv.conf 文件具有正确的权限,一般应该是 root 用户可读写,其他用户只读,可以使用chmod 命令修改权限,
sudo chmod 644 /etc/resolv.conf
网络服务未重启:在某些情况下,更改 DNS 配置后可能需要重启网络服务,对于不同的 Linux 发行版,重启网络服务的命令可能不同,在 Debian/Ubuntu 系统中,可以使用:
sudo systemctl restart networking
存在其他配置文件或服务干扰:某些 Linux 发行版可能会使用其他方式或配置文件来管理 DNS,如 NetworkManager,如果您的系统使用了 NetworkManager,并且它正在动态管理网络配置,那么直接修改/etc/resolv.conf 可能不会生效,您可以尝试通过 NetworkManager 的图形界面或命令行工具进行配置,或者检查 NetworkManager 的相关配置文件(通常位于/etc/NetworkManager/ 目录下)。
问题 2:如何设置本地 DNS 服务器?
解答:如果您想设置本地 DNS 服务器,可以按照以下步骤进行(以常见的 BIND 软件为例):
1、安装 BIND 软件
在 Debian/Ubuntu 系统中,可以使用以下命令安装:
sudo aptget update sudo aptget install bind9
在 CentOS/RHEL 系统中,可以使用以下命令安装:
sudo yum install bind bindutils
2、配置主配置文件
BIND 的主配置文件通常位于/etc/bind/named.conf,打开该文件并进行必要的配置,例如设置监听地址、端口等,以下是一个简单的示例配置:

options {
listenon port 53 { any; };
listenonv6 port 53 { ::1; };
directory "/var/cache/bind";
recursion no;
allowquery { any; };
};
3、配置区域文件
区域文件包含了域名与 IP 地址的映射关系,假设您要配置一个名为example.com 的正向解析区域,首先需要在/etc/bind/named.conf.local 文件中添加以下内容:
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
};
然后在/etc/bind 目录下创建db.example.com 文件,并添加类似以下的内容:
$TTL 604800
@ IN SOA localhost. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
localhost IN A 127.0.0.1
www IN A [您的服务器 IP 地址]
请将[您的服务器 IP 地址] 替换为您的实际服务器 IP 地址。
4、启动 BIND 服务
使用以下命令启动 BIND 服务:
sudo systemctl start bind9
并设置为开机自启:
sudo systemctl enable bind9
5、配置客户端使用本地 DNS 服务器
在客户端的/etc/resolv.conf 文件中,将 DNS 服务器地址设置为本地 DNS 服务器的 IP 地址,
nameserver [本地 DNS 服务器 IP 地址]
这样,客户端就会使用本地的 BIND 服务器进行域名解析,在实际部署中,还需要考虑安全性、性能优化等诸多因素,以上只是一个简单的示例配置。
希望以上内容对您在 Linux 中配置 DNS 有所帮助,如果您在实际操作过程中遇到任何问题,欢迎随时提问。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/143423.html