在Linux系统中添加DNS的命令行操作指南
在Linux系统中,正确配置DNS(域名系统)是确保网络连接和互联网访问正常的关键步骤,通过命令行添加或修改DNS设置,可以灵活地管理系统的网络配置,特别是在需要自动化部署或远程管理时尤为重要,本文将详细介绍如何在常见的Linux发行版中通过命令行添加DNS服务器。
理解DNS及其重要性
什么是DNS?
DNS(Domain Name System)是将人类可读的域名(如www.example.com)转换为计算机可识别的IP地址(如192.0.2.1)的系统,它类似于电话簿,帮助设备在网络中找到目标服务器的位置。
为什么需要添加DNS?
- 提高网络访问速度:选择响应速度快的DNS服务器可以加快域名解析速度。
- 增强网络安全:使用可信的DNS服务器可以减少被恶意网站劫持的风险。
- 解决网络连接问题:当默认DNS服务器不可用或不稳定时,添加备用DNS可以提高网络的可靠性。
检查当前DNS配置
在进行任何更改之前,首先需要了解当前的DNS配置,可以使用以下命令查看当前的DNS设置:
cat /etc/resolv.conf
输出示例如下:
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4
上述输出显示当前系统使用的是Google的公共DNS服务器。
添加新的DNS服务器
临时添加DNS(不保存重启)
直接编辑/etc/resolv.conf
文件可以临时添加DNS服务器,但这些更改在系统重启后可能会丢失,具体取决于系统的网络管理方式。
-
打开
resolv.conf
文件进行编辑:sudo nano /etc/resolv.conf
-
添加新的DNS服务器,例如使用Cloudflare的DNS:
nameserver 1.1.1.1 nameserver 1.0.0.1
-
保存并退出编辑器(在nano中,按
Ctrl + O
保存,Ctrl + X
退出)。
注意:如果系统使用NetworkManager或其他网络管理工具,/etc/resolv.conf
可能会在网络重启时被覆盖,临时更改适用于立即生效但不需要持久化的场景。
永久添加DNS(通过网络管理器)
对于大多数现代Linux发行版,推荐使用NetworkManager来永久添加DNS服务器。
使用nmcli命令
nmcli
是NetworkManager的命令行接口,允许你管理网络连接和配置。
步骤:
a. 列出所有网络连接:
nmcli connection show
输出示例:
NAME UUID TYPE DEVICE
Wired connection 1 a1b2c3d4e5f67g8h9i0jkmnlpqrstuvw ethernet eth0
b. 选择要修改的网络连接名称,例如"Wired connection 1"
。
c. 添加新的DNS服务器:
nmcli connection modify "Wired connection 1" ipv4.dns "8.8.8.8 8.8.4.4 1.1.1.1"
说明:上述命令将Google和Cloudflare的DNS服务器添加到指定的网络连接中,你可以根据需要调整DNS地址。
d. 应用更改:
nmcli connection up "Wired connection 1"
使用NetworkManager图形界面(如果可用)
如果你有图形界面访问权限,可以通过以下步骤添加DNS:
- 打开“网络连接”设置。
- 选择你要修改的网络连接,点击“编辑”。
- 转到“IPv4设置”标签页。
- 在“DNS服务器”字段中添加新的DNS地址,使用空格分隔多个地址。
- 保存并应用更改。
编辑Netplan配置文件(适用于Ubuntu 18.04+等使用Netplan的系统)
某些Linux发行版,如Ubuntu 18.04及以上版本,使用Netplan进行网络配置,以下是如何通过编辑Netplan配置文件来添加DNS服务器。
步骤:
-
查找当前的网络接口名称:
ifconfig
或者
ip link show
假设网络接口为
enp3s0
。 -
编辑Netplan配置文件,通常位于
/etc/netplan/
目录下,文件名可能为01netcfg.yaml
或类似名称。sudo nano /etc/netplan/01netcfg.yaml
-
在相应的网络接口配置中添加
dns
条目,添加Google和Cloudflare的DNS:network: version: 2 ethernets: enp3s0: dhcp4: yes dns: 8.8.8.8 1.1.1.1
-
保存并退出编辑器。
-
应用Netplan配置:
sudo netplan apply
注意:编辑Netplan配置文件时需谨慎,错误的配置可能导致网络连接中断,建议在修改前备份原配置文件。
验证DNS配置是否生效
添加或修改DNS服务器后,务必验证配置是否生效,可以使用以下命令进行测试:
查看当前的DNS服务器
cat /etc/resolv.conf
应显示你刚刚添加的DNS服务器地址。
使用systemdresolve
查询DNS信息(适用于使用systemdresolved的系统)
systemdresolve status
该命令将显示当前的DNS服务器列表及其他相关信息。
测试域名解析
使用dig
或nslookup
命令测试域名解析是否正常,使用dig
查询www.google.com
:
dig www.google.com
如果配置正确,应该会返回Google的IP地址及相关信息。
常见问题排查
问题1:添加的DNS服务器未生效
可能原因:
/etc/resolv.conf
被网络管理工具覆盖。- DNS配置未正确应用或保存。
- 网络接口未重新加载配置。
解决方法:
-
确保使用正确的方法永久添加DNS(如通过NetworkManager或Netplan)。
-
检查网络管理工具的配置,确保DNS设置已正确保存。
-
重启网络服务或网络接口以应用更改。
sudo systemctl restart NetworkManager
或
sudo ifdown enp3s0 && sudo ifup enp3s0
问题2:无法连接到任何网络资源
可能原因:
- 错误配置了DNS服务器,导致域名解析失败。
- 添加的DNS服务器不可达或未响应。
- 网络连接本身存在问题。
解决方法:
-
检查
/etc/resolv.conf
中的DNS服务器地址是否正确且可达,可以使用ping
命令测试:ping 8.8.8.8
-
如果DNS服务器不可达,尝试更换为其他可靠的DNS服务器,如Google(8.8.8.8)、Cloudflare(1.1.1.1)等。
-
确保网络连接正常,可以访问其他网络资源或使用IP地址直接访问网站。
相关问题与解答
问题1:如何在不使用NetworkManager的情况下永久添加DNS服务器?
解答:如果不使用NetworkManager,可以通过编辑网络服务的配置文件来永久添加DNS服务器,具体步骤取决于你所使用的Linux发行版和网络管理工具,对于使用ifupdown
的系统,可以在/etc/network/interfaces
文件中添加dnsnameservers
行:
sudo nano /etc/network/interfaces
在对应的接口配置中添加:
auto enp3s0
iface enp3s0 inet dhcp
dnsnameservers 8.8.8.8 1.1.1.1
保存后,重新启动网络服务:
sudo ifdown enp3s0 && sudo ifup enp3s0
问题2:如何删除不需要的DNS服务器?
解答:删除不需要的DNS服务器的方法与添加类似,具体取决于你使用的网络管理工具。
-
通过编辑
/etc/resolv.conf
:打开文件并删除不需要的nameserver
行,然后保存。sudo nano /etc/resolv.conf
删除或注释掉不需要的行,然后保存退出。
-
通过NetworkManager (
nmcli
):首先查看当前的DNS服务器:nmcli connection show "Wired connection 1" | grep 'dns'
然后修改连接,移除不需要的DNS服务器,移除
8.4.4
:nmcli connection modify "Wired connection 1" ipv4.dns "8.8.8.8 1.1.1.1" nmcli connection up "Wired connection 1"
-
通过Netplan:编辑Netplan配置文件,删除不需要的DNS条目,然后应用配置:
sudo nano /etc/netplan/01netcfg.yaml
修改
dns
部分,dns: 1.1.1.1
保存并应用:
sudo netplan apply
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/207505.html