Linux外网DNS怎么设置?

HCRM技术_小炮 DNS 2025-09-26 3 0

Linux系统外网DNS设置指南:告别网络卡顿,提升访问效率

如果你是一名Linux用户,无论是资深的系统管理员,还是刚刚接触这个强大开源世界的爱好者,都可能遇到过这样的场景:在终端里执行ping baidu.com时,响应慢得令人着急;或者使用apt update更新软件源时,进度条如同蜗牛爬行,甚至频频失败,这些问题,很多时候的罪魁祸首并不是你的网络带宽不足,而是那个隐藏在幕后、却至关重要的角色——DNS。

DNS,通俗来讲就是互联网的“电话簿”,当你在浏览器输入www.google.com时,你的计算机并不知道这个名字对应的服务器在哪里,它需要向DNS服务器查询,获取该域名对应的真实IP地址(如142.251.42.206),然后才能建立连接,如果这本“电话簿”本身又旧又慢,或者负责查询的“接线员”(DNS服务器)效率低下,那么即使你拥有千兆光纤,上网体验也会大打折扣。

本文将深入浅出地为你讲解如何在Linux系统中,手动设置高效、可靠的外网DNS服务器,从而显著提升网络访问速度和稳定性。

**一、为何要手动设置外网DNS?

你可能会问:“我不是已经能上网了吗?为什么还要多此一举?” 通常情况下,我们的Linux系统会通过DHCP协议自动从路由器获取DNS服务器地址,这看起来很省心,但潜在问题不少:

1、运营商的DNS可能不够快:国内某些ISP提供的DNS服务器响应速度并非最优,尤其是在跨网络访问时。

2、隐私与劫持风险:部分运营商的DNS可能会记录你的查询记录,甚至对错误的域名或不存在的网站返回带有广告的页面(DNS劫持)。

3、污染与干扰:在某些网络环境下,自动获取的DNS可能受到污染,导致无法正常访问一些网站。

4、可靠性问题:路由器或本地ISP的DNS服务器可能出现故障,导致整个网络“瘫痪”。

手动指定像Google Public DNS (8.8.8.8, 8.8.4.4)Cloudflare DNS (1.1.1.1, 1.0.0.1)OpenDNS这样的公共DNS服务,往往能带来更快速、更清洁、更安全的网络体验。

二、设置前的准备工作:查询当前DNS

在修改之前,我们先看看系统当前正在使用哪些DNS服务器,打开你的终端,输入以下命令:

systemd-resolve --status | grep 'DNS Servers' -A2

或者

cat /etc/resolv.conf

注意:直接查看/etc/resolv.conf文件时,你可能会看到一行注释:This file is managed by man:systemd-resolved(8),这表明DNS设置正由systemd-resolved服务管理,直接编辑这个文件可能不是永久生效的最佳方法,重启后可能会被覆盖。

记下当前的DNS地址,以便需要时可以恢复。

**三、主流方法:永久配置DNS

Linux世界有多种配置网络的方式,我们主要介绍两种最主流和现代的方法。

方法一:使用Netplan配置(Ubuntu 18.04及以后版本、Debian等)

Netplan是Ubuntu新版本引入的网络配置工具,它使用清晰的YAML语法,配置文件通常位于/etc/netplan/目录下,文件名可能是01-netcfg.yaml50-cloud-init.yaml或类似。

1、备份并编辑配置文件

    sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak # 备份
    sudo nano /etc/netplan/01-netcfg.yaml # 使用nano编辑器,也可用vim

2、修改YAML文件

假设你的网络接口名为ens33(可通过ip addr命令查看),你需要找到对应的配置块,在ens33:下的dhcp4: no表示禁用DHCP,然后手动指定IP地址、网关和DNS,如果你的当前配置是DHCP,需要先改为静态IP,或者采用另一种方式只设置DNS。

示例:设置为静态IP并指定DNS

    network:
      version: 2
      renderer: networkd
      ethernets:
        ens33:
          dhcp4: no
          addresses: [192.168.1.100/24] # 你的静态IP和子网掩码
          gateway4: 192.168.1.1 # 你的网关地址(通常是路由器IP)
          nameservers:
            addresses: [8.8.8.8, 1.1.1.1, 208.67.222.222] # 这里设置DNS!可以设置多个

示例:在DHCP获取IP的基础上,只覆盖DNS设置(更常见)

有些Netplan配置允许在DHCP模式下覆盖DNS,确保你的Netplan版本支持,可以尝试如下配置:

    network:
      version: 2
      renderer: networkd
      ethernets:
        ens33:
          dhcp4: yes
          nameservers:
            addresses: [8.8.8.8, 1.1.1.1]

3、应用配置

保存文件后,执行以下命令使配置生效:

    sudo netplan apply

如果出现错误,Netplan会给出提示,请仔细检查YAML的缩进和语法。

方法二:修改systemd-resolved的配置文件(通用性更强)

systemd-resolved是现代Linux发行版(尤其是使用systemd的)中管理DNS的系统服务,这是最推荐的方法之一,因为它能很好地处理DNS缓存和多种配置源。

1、编辑主配置文件

    sudo nano /etc/systemd/resolved.conf

2、取消注释并设置DNS

找到文件中的DNSFallbackDNS行,取消注释(删除行首的#),并填入你想要的DNS服务器地址。FallbackDNS是在主DNS失效时使用的备用DNS。

    [Resolve]
    DNS=8.8.8.8 1.1.1.1 208.67.222.222
    FallbackDNS=8.8.4.4 1.0.0.1
    #Domains=~.
    #LLMNR=yes
    #MulticastDNS=yes
    #DNSSEC=allow-downgrade
    #DNSOverTLS=no
    #Cache=yes
    #DNSStubListener=yes

保存并退出。

3、重启服务并创建符号链接

    sudo systemctl restart systemd-resolved
    # 确保/run/systemd/resolve/stub-resolv.conf文件存在并指向正确的DNS
    sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

4、验证

再次执行cat /etc/resolv.conf,应该能看到你设置的DNS服务器地址了。

**四、验证DNS设置是否生效

修改完成后,如何确认新的DNS已经起作用了呢?

1、再次查看resolv.conf

    cat /etc/resolv.conf

确认显示的nameserver是你设置的地址。

2、使用dignslookup命令测试

    dig google.com
    或
    nslookup google.com

查看命令输出中的SERVER:行,它显示的是正在使用的DNS服务器IP,如果显示的是你设置的IP(如8.8.8.8#53),说明配置成功。

3、体验速度提升

尝试访问之前感觉缓慢的网站,或者再次执行apt update,感受一下速度的变化。

**五、常用公共DNS服务器推荐

Google Public DNS8.8.8.88.8.4.4 - 全球知名,速度快,稳定性高。

Cloudflare DNS1.1.1.11.0.0.1 - 以隐私保护和速度见长。

OpenDNS208.67.222.222208.67.220.220 - 提供额外的安全过滤功能。

Quad99.9.9.9 - 专注于安全,能屏蔽恶意网站。

阿里云DNS223.5.5.5223.6.6.6 - 国内用户访问速度快。

114DNS114.114.114.114114.114.115.115 - 国内老牌公共DNS。

建议可以组合使用,例如将Cloudflare作为主DNS,Google作为备用DNS。

**六、故障排除与注意事项

网络连接断开如果在设置静态IP时出错,可能导致无法连接网络,请确保IP地址、子网掩码(/24)和网关地址填写正确,且在你的局域网段内,如果出现问题,恢复备份的配置文件或重新启用DHCP。

DNS缓存修改DNS后,系统可能有缓存,可以重启systemd-resolved服务来清空缓存:sudo systemctl restart systemd-resolved

选择最适合的DNS不同地区的网络环境对不同DNS的响应速度可能不同,可以使用dig @8.8.8.8 google.com这样的命令分别测试不同DNS的查询速度,选择响应时间最短的。

通过手动配置Linux系统的外网DNS,这个看似微小的调整,实则是优化网络体验的“捷径”,它不仅能解决许多莫名的网络问题,还能在速度、安全和隐私方面带来实质性的提升,花几分钟时间完成设置,从此告别因DNS导致的网络卡顿,让你的Linux系统在互联网上畅行无阻,就打开终端,开始你的优化之旅吧!

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

评论