一、概述
在 Linux 系统中,nameserver 是一个配置项,用于指定 DNS 服务器的 IP 地址。这些配置通常存储在 /etc/resolv.conf 文件中,该文件是系统用来配置 DNS 解析器的主要文件之一。nameserver 行告诉系统应该使用哪些 DNS 服务器来解析域名。
二、作用
nameserver参数的主要作用是将域名解析为IP地址。当用户在Web浏览器中输入一个域名时,操作系统会将该域名发送给配置的DNS服务器,以获取与之相关联的IP地址。通过指定DNS服务器的IP地址,系统能够完成域名到IP地址的转换,从而让用户能够访问Internet上的各种资源。
三、配置
1、 /etc/resolv.conf 文件
/etc/resolv.conf 文件是一个文本文件,通常包含以下几类配置行:
(1) nameserver:指定一个或多个 DNS 服务器的 IP 地址。
(2)search:定义一个或多个搜索域,用于解析不带域名的主机名。
(3)options:指定 DNS 解析器的选项。
实际操作如下:

2、 nameserver 配置项
nameserver 行的基本格式如下:
nameserver <IP 地址>
可以指定多个 nameserver 行来定义多个 DNS 服务器。例如:
nameserver 8.8.8.8
nameserver 8.8.4.4
这意味着系统将首先尝试使用 IP 地址 8.8.8.8 的 DNS 服务器来解析域名,如果该服务器不可用或响应慢,则会尝试使用 8.8.4.4 的服务器。
四、 动态生成的 /etc/resolv.conf
在许多现代 Linux 发行版中,/etc/resolv.conf 文件通常是一个由其他服务动态生成的文件,而不是直接编辑的静态文件。这通常是为了方便网络配置的自动化管理和维护。例如:
- systemd-resolved:在使用 systemd 的系统中,/etc/resolv.conf 往往是一个指向 /run/systemd/resolve/resolv.conf 的符号链接,真正的配置文件是 /etc/systemd/resolved.conf。
- NetworkManager:如果的系统使用 NetworkManager 来管理网络连接,DNS 服务器的信息可能会由 NetworkManager 自动配置并写入 /etc/resolv.conf 文件。
1、 systemd-resolved 示例
(1)指定 DNS 服务器
如果的系统使用 systemd-resolved,可以通过编辑 /etc/systemd/resolved.conf 文件来指定 DNS 服务器:
[Resolve]
DNS=8.8.8.8;8.8.4.4
FallbackDNS=1.1.1.1
(2)重新加载配置
然后可以通过以下命令来重新加载配置:
sudo systemctl restart systemd-resolved.service
2、NetworkManager 示例
(1)指定 DNS 服务器
如果的网络由 NetworkManager 管理,可以在 /etc/NetworkManager/NetworkManager.conf 或者接口的配置文件中指定 DNS 服务器:
[main]
dns=dnsmasq
(2)添加 DNS 服务器
对于特定的网络接口,可以在 /etc/NetworkManager/system-connections/ 下的相应配置文件中添加 DNS 服务器:
[ipv4]
dns=8.8.8.8;8.8.4.4
(3)配置生效
然后重新启动 NetworkManager 服务使配置生效:
sudo systemctl restart NetworkManager.service
五、 手动编辑 /etc/resolv.conf
1、检查该文件是否为符号链接
如果直接编辑 /etc/resolv.conf 文件,请注意,这样做可能会被动态配置覆盖。如果希望手动编辑,可以先检查该文件是否为符号链接:
ls -l /etc/resolv.conf
2、创建一个静态的 /etc/resolv.conf 文件
如果确实是一个符号链接,可能需要编辑原始文件或禁用动态配置。例如,在使用 systemd-resolved 的系统中,可以创建一个静态的 /etc/resolv.conf 文件,并将其设置为非符号链接:
sudo cp /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo chown root:root /etc/resolv.conf
sudo chmod 644 /etc/resolv.conf
3、添加nameserver 行
然后编辑 /etc/resolv.conf 文件,添加 nameserver 行。
六、 实际操作示例
假设要将系统配置为使用 Google 的公共 DNS 服务器(8.8.8.8 和 8.8.4.4),以下是具体步骤:
1. 备份现有配置:
使用如下命令
sudo cp /etc/resolv.conf /etc/resolv.conf.backup
2. 编辑 /etc/resolv.conf 文件:
使用如下命令
sudo nano /etc/resolv.conf
3. 添加 nameserver 行:
nameserver 8.8.8.8
nameserver 8.8.4.4
4. 保存并退出编辑器。
5. 验证配置:
使用如下命令
cat /etc/resolv.conf
通过以上步骤,可以配置 Linux 系统使用指定的 DNS 服务器。如果系统使用 systemd-resolved 或 NetworkManager,还需要根据上述说明进行相应的配置。
七、其他事项
1、DHCP分配的影响
如果Linux系统是通过DHCP获取IP地址的,那么/etc/resolv.conf文件可能会被DHCP客户端自动管理。在这种情况下,手动更改/etc/resolv.conf文件可能不是持久化的,因为DHCP客户端可能会覆盖更改。
为了解决这个问题,可以查找DHCP客户端的配置选项,以允许指定DNS服务器,或者确保DHCP服务器分配了正确的DNS服务器地址。
2、系统重启
在大多数情况下,更改/etc/resolv.conf文件后不需要重启系统或网络服务。但是,如果遇到了问题,尝试重启网络服务(如使用systemctl restart networking命令,具体命令可能因发行版而异)或整个系统可能有助于解决问题。
3、测试配置
更改DNS配置后,使用dig或nslookup命令测试新的配置是否正常工作。这些命令可以帮助验证DNS解析是否按预期进行。
八、常用DNS服务器地址
以下是一些常用的公共DNS服务器地址,可以根据自己的需要选择使用:
Google DNS:8.8.8.8 和 8.8.4.4
Cloudflare DNS:1.1.1.1 和 1.0.0.1
OpenDNS:208.67.222.222 和 208.67.220.220
本文链接:https://blog.runxinyun.com/post/257.html 转载需授权!
版权声明
网站名称: 润信云资讯网
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!邮件:7104314@qq.com
网站部分内容来源于网络,版权争议与本站无关。请在下载后的24小时内从您的设备中彻底删除上述内容。
如无特别声明本文即为原创文章仅代表个人观点,版权归《润信云资讯网》所有,欢迎转载,转载请保留原文链接。
留言0