5154

Good Luck To You!

Ubuntu如何永久修改DNS设置以优化网络速度?

在Ubuntu操作系统中,域名系统(DNS)的配置是一项基础但至关重要的网络设置,DNS负责将我们易于记忆的域名(如www.google.com)转换为机器能够理解的IP地址,默认情况下,Ubuntu会自动从网络服务提供商(ISP)或路由器获取DNS服务器地址,但出于提升网速、增强安全性、绕过网络审查或实现家长控制等目的,手动修改DNS设置往往是必要的,本文将详细介绍在Ubuntu系统中修改DNS的几种主流方法,并分析其适用场景与优劣。

Ubuntu如何永久修改DNS设置以优化网络速度?

为什么要修改DNS设置?

在深入操作之前,了解修改DNS的动机至关重要,更换公共DNS服务器,如Google DNS(8.8.8.8)、Cloudflare DNS(1.1.1.1)或Quad9 DNS(9.9.9.9),通常能带来以下好处:

  • 更快的解析速度:一些公共DNS服务器拥有更广泛的缓存和更优化的全球节点,能加快域名解析过程,从而提升网页加载速度。
  • 增强的隐私与安全:部分DNS服务提供商提供防止恶意软件、钓鱼网站和广告的过滤功能,为您的浏览体验增加一层安全屏障。
  • 绕过地域限制:通过特定DNS服务,有时可以访问某些地区受限的网络内容。
  • 更高的可靠性:公共DNS服务通常比ISP提供的DNS服务更稳定,宕机概率更低。

通过图形用户界面(GUI)修改(适合新手)

对于使用Ubuntu桌面版的用户,最直观、最简单的方法是通过图形界面进行设置,此方法无需接触命令行,非常适合初学者。

  1. 打开“设置”应用程序。
  2. 在左侧菜单中,点击“网络”或“Wi-Fi”,具体取决于您使用的连接类型。
  3. 找到您正在活动的网络连接(有线连接”或已连接的Wi-Fi网络),点击其右侧的齿轮图标。
  4. 在弹出的窗口中,切换到“IPv4”或“IPv6”标签页。
  5. 将“DNS”一栏的设置从“自动(DHCP)”改为“关闭”。
  6. 在下方的“DNS服务器”输入框中,填入您希望使用的DNS地址,多个地址之间用逗号分隔,输入1.1.1, 8.8.8.8
  7. 点击右上角的“应用”按钮保存设置,系统可能会短暂断开并重新连接网络以使更改生效。

此方法的优点是简单易行,缺点是配置仅对当前网络连接有效,如果更换网络(如连接到另一个Wi-Fi),需要重新设置。


使用Netplan进行命令行配置(推荐方法)

从Ubuntu 18.04 LTS开始,Netplan成为默认的网络配置工具,它使用YAML文件来定义网络接口,通过Netplan修改DNS是服务器版和高级用户最推荐的方法,因为它稳定、持久且与系统深度集成。

  1. 找到Netplan的配置文件,这些文件通常位于/etc/netplan/目录下,文件名可能为01-netcfg.yaml50-cloud-init.yaml等,使用以下命令列出文件:

    ls /etc/netplan/
  2. 使用文本编辑器(如nano)打开该配置文件,请将your-config-file.yaml替换为您实际的文件名:

    sudo nano /etc/netplan/your-config-file.yaml
  3. 在文件中,找到您要配置的网络接口(如eth0enp0s3),并在其配置下添加或修改nameservers部分,YAML文件对缩进非常敏感,请务必使用空格而非Tab键,并保持对齐。

    network:
      version: 2
      ethernets:
        enp0s3:
          dhcp4: true
          nameservers:
            addresses: [1.1.1.1, 8.8.4.4]

    在这个例子中,我们为enp0s3接口设置了静态DNS地址,如果您使用的是静态IP配置,结构类似,只需将dhcp4设为false并配置其他静态参数即可。

    Ubuntu如何永久修改DNS设置以优化网络速度?

  4. 保存并关闭文件(在nano中按Ctrl+X,然后按Y确认,最后按回车)。

  5. 应用新的配置:

    sudo netplan apply

    如果没有错误提示,DNS设置便已成功更新,此方法设置的DNS是永久性的,系统重启后依然有效。


直接编辑 /etc/resolv.conf(临时方法,不推荐)

在传统的Linux系统中,/etc/resolv.conf是存储DNS信息的核心文件,在现代Ubuntu系统中,该文件通常由systemd-resolved服务动态管理,手动修改后很可能在系统重启或网络服务重启后被覆盖。

如果您只是想临时测试一个DNS服务器,可以直接编辑此文件:

sudo nano /etc/resolv.conf
```修改为:

nameserver 1.1.1.1 nameserver 8.8.8.8

此更改会立即生效,但如前所述,它是临时的,不推荐将其作为长期解决方案。
---
### 方法四:配置systemd-resolved(全局生效)
这是一种更底层的全局配置方法,它会为`systemd-resolved`服务本身设置默认DNS,从而影响所有网络接口。
1.  编辑`/etc/systemd/resolved.conf`文件:
    ```bash
    sudo nano /etc/systemd/resolved.conf
  1. [Resolve]部分,取消DNS=FallbackDNS=行的注释(删除开头的),并填入您想要的DNS地址。

    [Resolve]
    DNS=1.1.1.1 8.8.4.4
    FallbackDNS=8.8.8.8 1.0.0.1
  2. 保存文件后,重启systemd-resolved服务以应用更改:

    Ubuntu如何永久修改DNS设置以优化网络速度?

    sudo systemctl restart systemd-resolved
  3. 为了确保/etc/resolv.conf指向由systemd-resolved管理的存根文件,可以执行以下命令:

    sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

此方法设置的DNS同样是永久性的,并且作用于全局,是一种非常可靠的配置方式。

方法对比

方法 适用场景 持久性 难度等级 推荐度
图形界面(GUI) 桌面版用户,快速临时更改 仅限当前网络
Netplan 服务器版,桌面版高级用户,永久配置 永久
/etc/resolv.conf 临时测试,故障排查 临时
systemd-resolved 全局统一配置,高级用户 永久 中高

相关问答FAQs

我已经按照教程修改了DNS,但是使用nslookupdig命令检查时,显示的仍然是旧的DNS服务器,这是为什么?

解答: 这个问题通常由两个原因导致,本地系统和DNS服务器本身都有缓存机制,您可以尝试清除本地DNS缓存,在Ubuntu中可以通过重启systemd-resolved服务来实现:sudo systemctl restart systemd-resolved,请确保您修改了正确的配置文件,如果您是桌面用户,可能同时存在GUI和Netplan(或NetworkManager)的配置,它们之间可能存在冲突,建议优先使用Netplan进行统一配置,或者在GUI中确保没有其他设置覆盖了您的更改,请检查/etc/resolv.conf文件的实际内容,确认它是否指向了您期望的DNS服务器。

修改DNS后,我的网络连接变慢了甚至无法上网,该怎么办?

解答: 这通常意味着您输入的DNS服务器地址不正确、该服务器当前不可用,或者您的网络环境(如公司或学校网络)限制了使用外部DNS,解决方法是首先恢复到能够正常上网的设置,如果您使用的是Netplan,可以将配置文件中的nameservers部分删除或注释掉,然后重新运行sudo netplan apply,系统会回退到通过DHCP自动获取DNS,如果您是直接编辑/etc/resolv.conf,可以将其恢复为原始内容,建议尝试更换其他知名的公共DNS服务器,如Google(8.8.8)或Cloudflare(1.1.1),而不是使用一些不知名或可能存在问题的DNS地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年11月    »
12
3456789
10111213141516
17181920212223
24252627282930
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.