怎么在Linux系统中添加两个DNS?

HCRM技术_小炮 DNS 2026-04-03 35 0

为你的Linux系统装上“双重导航”:轻松添加两个DNS服务器详解

在现代互联网使用中,DNS(域名系统)就像是网络世界的电话簿,将人类可读的域名(如google.com)转换为机器可读的IP地址,对于Linux系统用户而言,正确配置DNS服务器不仅能提升网络访问速度,还能增强网络连接的可靠性和安全性,本文将详细讲解如何在Linux系统中添加两个DNS服务器,并解释为何这种“双重保险”配置值得推荐。

为什么需要配置多个DNS服务器?

在深入配置步骤之前,我们先了解为什么专业用户往往推荐设置多个DNS服务器:

1、故障转移保障:当主DNS服务器不可用时,系统会自动尝试使用备用DNS,避免网络中断

2、负载均衡:多个DNS可以分散查询请求,提高解析效率

3、地理位置优化:不同DNS服务器可能对同一域名提供不同IP,选择最优路径

4、冗余备份:防止单一DNS服务器故障导致整个网络服务瘫痪

实际案例:2021年,某大型公共DNS服务出现短暂故障,导致数百万用户无法正常上网,而那些配置了备用DNS的用户几乎未受影响,这充分体现了多DNS配置的价值。

Linux系统中的DNS配置机制

Linux系统通过/etc/resolv.conf文件管理DNS设置,但这一机制在现代发行版中有所演变,大多数系统使用网络管理器(NetworkManager)或systemd-resolved服务来管理网络配置,它们最终仍会生成或直接影响/etc/resolv.conf文件。

值得注意的是,直接编辑/etc/resolv.conf在某些系统上可能是临时性的,因为网络服务重启后可能会覆盖更改,我们需要针对不同发行版和网络管理工具采用相应的方法。

不同Linux发行版的DNS配置方法

方法一:Ubuntu/Debian系统(使用Netplan或NetworkManager)

对于使用Netplan的系统(Ubuntu 18.04及以后):

1、找到Netplan配置文件,通常位于/etc/netplan/目录下

2、编辑相应YAML文件,

   sudo nano /etc/netplan/01-netcfg.yaml

3、在配置文件中添加DNS服务器地址:

   network:
     version: 2
     renderer: networkd
     ethernets:
       ens33:
         dhcp4: no
         addresses: [192.168.1.100/24]
         gateway4: 192.168.1.1
         nameservers:
           addresses: [8.8.8.8, 8.8.4.4]

上述示例添加了Google的公共DNS作为主备服务器

4、应用配置:

   sudo netplan apply

对于使用NetworkManager的图形界面:

1、点击网络图标 → 网络设置

2、选择对应连接 → 齿轮图标

3、切换到IPv4或IPv6标签

4、将“自动DNS”切换为“手动”

5、输入两个DNS服务器地址,用逗号分隔

6、点击“应用”保存设置

方法二:CentOS/RHEL/Fedora系统

使用NetworkManager命令行(nmcli):

查看当前连接名称
nmcli connection show
修改指定连接的DNS设置
sudo nmcli connection modify "连接名" ipv4.dns "8.8.8.8 8.8.4.4"
sudo nmcli connection modify "连接名" ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844"
使更改生效
sudo nmcli connection up "连接名"

直接编辑网络配置文件:

对于使用传统网络配置的系统,可以编辑网卡配置文件:

sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0

添加或修改以下行:

DNS1=8.8.8.8
DNS2=8.8.4.4

重启网络服务:

sudo systemctl restart network

方法三:直接管理resolv.conf(通用方法)

对于希望直接控制的用户,可以采取以下步骤确保配置持久化:

1、编辑/etc/resolv.conf文件:

   sudo nano /etc/resolv.conf

2、添加以下内容(示例使用Cloudflare和Google DNS):

   nameserver 1.1.1.1
   nameserver 8.8.8.8
   options rotate timeout:1 attempts:2

其中options rotate表示随机选择DNS查询,timeout设置查询超时,attempts设置尝试次数

3、为防止配置被覆盖,设置文件为不可变(谨慎使用):

   sudo chattr +i /etc/resolv.conf

如需修改,先取消属性:

   sudo chattr -i /etc/resolv.conf

推荐的DNS服务器组合

选择合适的DNS服务器对网络体验至关重要,以下是几种可靠组合:

1、速度优先组合

- 主DNS:Cloudflare (1.1.1.1) - 目前全球最快的公共DNS之一

- 备DNS:Google DNS (8.8.8.8) - 稳定性极高

2、隐私保护组合

- 主DNS:OpenDNS (208.67.222.222)

- 备DNS:DNS.WATCH (84.200.69.80)

3、家庭安全组合过滤):

- 主DNS:CleanBrowsing (185.228.168.9)

- 备DNS:Quad9 (9.9.9.9)

验证DNS配置效果

配置完成后,使用以下命令验证:

1、检查当前DNS配置

   cat /etc/resolv.conf
   # 或
   systemd-resolve --status

2、测试DNS解析速度

   dig example.com | grep "Query time"

3、追踪DNS查询路径

   dig +trace example.com

4、比较不同DNS响应时间

   for dns in 8.8.8.8 1.1.1.1 208.67.222.222; do
     echo "Testing $dns"
     dig @$dns example.com | grep "Query time"
   done

高级技巧与故障排除

按网络接口设置不同DNS

对于多网卡系统,可以为不同接口配置不同DNS:

使用ip命令和resolvectl
sudo resolvectl dns enp0s3 8.8.8.8
sudo resolvectl dns enp0s8 1.1.1.1

DNS缓存管理

清空DNS缓存可解决某些解析问题:

对于systemd-resolved
sudo systemctl restart systemd-resolved
对于dnsmasq
sudo systemctl restart dnsmasq

常见问题解决

1、DNS配置不生效:检查网络管理器是否覆盖了设置

2、解析缓慢:尝试更换DNS服务器组合

3、部分域名无法解析:检查本地hosts文件或防火墙设置

安全注意事项

1、避免使用不可信DNS:恶意DNS可能劫持流量或记录隐私信息

2、考虑使用DNSSEC:启用DNSSEC验证防止DNS欺骗攻击

3、定期更新配置:公共DNS服务地址偶尔会变更

脚本自动化配置

对于需要批量配置多台服务器的管理员,可创建自动化脚本:

#!/bin/bash
dns-setup.sh
PRIMARY_DNS="1.1.1.1"
SECONDARY_DNS="8.8.8.8"
检测发行版
if [ -f /etc/debian_version ]; then
    # Debian/Ubuntu配置
    cat > /etc/resolv.conf << EOF
nameserver $PRIMARY_DNS
nameserver $SECONDARY_DNS
options rotate
EOF
    chattr +i /etc/resolv.conf 2>/dev/null
elif [ -f /etc/redhat-release ]; then
    # RHEL/CentOS配置
    sed -i "/^DNS/d" /etc/sysconfig/network-scripts/ifcfg-eth0
    echo "DNS1=$PRIMARY_DNS" >> /etc/sysconfig/network-scripts/ifcfg-eth0
    echo "DNS2=$SECONDARY_DNS" >> /etc/sysconfig/network-scripts/ifcfg-eth0
    systemctl restart network
fi
echo "DNS配置完成:$PRIMARY_DNS, $SECONDARY_DNS"

为Linux系统配置两个DNS服务器是一项简单却极其有效的网络优化措施,无论你是普通桌面用户还是服务器管理员,这种“双重保险”策略都能显著提升网络体验的稳定性和可靠性,随着网络环境日益复杂,合理的DNS配置已成为保障顺畅网络访问的基础技能。

通过本文介绍的方法,你可以根据自身需求灵活选择合适的DNS服务器组合,并掌握在不同Linux环境中配置它们的技能,在网络配置更改前后进行测试验证,并保留原有配置备份,这样才能在享受优化带来的好处的同时,确保网络服务的连续性。

网络世界变化迅速,DNS技术也在不断发展,建议每隔一段时间重新评估你的DNS配置,确保始终使用最优的解决方案,让你的Linux系统在网络海洋中航行得更加稳健顺畅。

文章摘自:https://idc.huochengrm.cn/dns/24493.html

评论