上一篇                     
               
			  linux下如何设置dns
- Linux
- 2025-07-09
- 3609
 Linux下设置DNS,可直接编辑/etc/resolv.conf文件,添加nameserver及对应DNS服务器IP地址,保存后重启网络服务使配置生效
 
Linux系统中,DNS(域名系统)的设置对于网络连接和域名解析至关重要,以下是如何在Linux下设置DNS的详细指南:
通过修改/etc/resolv.conf文件设置DNS
 
/etc/resolv.conf是Linux系统中用于配置DNS服务器的配置文件,以下是具体步骤:
- 打开终端:使用root用户或通过sudo命令获取管理员权限。
- 编辑/etc/resolv.conf文件:可以使用vi、nano或其他文本编辑器。sudo nano /etc/resolv.conf 
- 添加或修改DNS服务器地址:在文件中添加或修改以下行,指定你希望使用的DNS服务器IP地址: nameserver 8.8.8.8 # Google Public DNS nameserver 8.8.4.4 # Google Public DNS 你可以根据需要替换为其他DNS服务器,如Cloudflare(1.1.1.1)、OpenDNS(208.67.222.222)等。 
- 保存并退出:保存文件并退出编辑器。
- 重启网络服务:使配置生效,可以使用以下命令: sudo systemctl restart network 或者,如果使用NetworkManager: sudo systemctl restart NetworkManager 
通过NetworkManager设置DNS
如果你的系统使用NetworkManager来管理网络连接,可以通过以下方式设置DNS:

- 打开终端:使用nmcli命令行工具。
- 查看当前网络连接: nmcli connection show 找到你要配置的网络连接名称(如 eth0、wlan0等)。
- 修改DNS服务器:使用以下命令设置DNS服务器: sudo nmcli con mod <connection_name> ipv4.dns "8.8.8.8 8.8.4.4" 将 <connection_name>替换为你的连接名称,DNS服务器地址可以替换为你需要的值。
- 重启网络连接: sudo nmcli connection up <connection_name> 
通过网卡配置文件设置DNS
在某些Linux发行版中,可以通过编辑网卡配置文件来设置DNS,以下是针对CentOS/RHEL系统的示例:
- 打开网卡配置文件:编辑ifcfg-eth0文件:sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0 
- 添加DNS配置:在文件中添加以下行: DNS1=8.8.8.8 DNS2=8.8.4.4 
- 保存并退出:保存文件并退出编辑器。
- 重启网络服务: sudo systemctl restart network 
通过netplan设置DNS(适用于Ubuntu/Debian)
在Ubuntu 17.10及以上版本中,netplan是默认的网络管理工具,以下是配置步骤:

- 编辑netplan配置文件:编辑/etc/netplan/01-netcfg.yaml文件:sudo nano /etc/netplan/01-netcfg.yaml 
- 添加DNS配置:在文件中添加或修改以下内容: network: version: 2 ethernets: eth0: dhcp4: true nameservers: addresses: [8.8.8.8, 8.8.4.4]将 eth0替换为你的网络接口名称,DNS服务器地址可以替换为你需要的值。
- 应用配置: sudo netplan apply 
验证DNS配置
配置完成后,可以通过以下命令验证DNS是否工作正常:
- 使用nslookup命令:nslookup example.com 如果能够正确返回IP地址,则表示DNS配置成功。 
- 使用dig命令:dig example.com 该命令会显示详细的DNS解析信息。  
常见问题及解决方法
| 问题 | 解决方法 | 
|---|---|
| 修改 /etc/resolv.conf后DNS不生效 | 确保已重启网络服务,并检查文件权限是否正确,如果使用NetworkManager,可能需要禁用其对 resolv.conf的管理。 | 
| DNS解析速度慢或失败 | 尝试更换DNS服务器,或检查网络连接是否正常。 | 
| 配置冲突导致DNS无法解析 | 确保没有重复的DNS配置,且优先级设置正确。 | 
FAQs
Q1: 如何锁定/etc/resolv.conf文件以防止被自动覆盖?
A1: 可以使用chattr命令锁定文件,防止被NetworkManager或其他服务修改: 
sudo chattr +i /etc/resolv.conf
如果需要修改,先解锁:
sudo chattr -i /etc/resolv.conf
Q2: 如何临时使用特定的DNS服务器进行测试?
A2: 可以直接编辑/etc/resolv.conf文件,添加或修改DNS服务器地址,然后重启网络服务,测试完成后,可以恢复原配置或重新
 
  
			