当前位置:首页 > Ubuntu > 正文

Ubuntu DNS缓存服务器设置(手把手教你搭建本地DNS缓存,提升上网速度)

在日常使用 Ubuntu 系统上网时,你是否遇到过网页加载缓慢、DNS解析超时等问题?其实,通过在本地搭建一个 Ubuntu DNS缓存服务器,可以显著提升网络访问速度,并减少对外部DNS服务器的依赖。本教程将手把手教你如何在 Ubuntu 系统上安装和配置 DNS 缓存服务,即使是 Linux 小白也能轻松上手!

Ubuntu DNS缓存服务器设置(手把手教你搭建本地DNS缓存,提升上网速度) DNS缓存服务器 本地DNS缓存 提高网络速度 DNS解析优化 第1张

什么是DNS缓存?

DNS(Domain Name System)是将域名(如 www.example.com)转换为 IP 地址(如 93.184.216.34)的系统。每次访问网站,系统都要向 DNS 服务器发起查询请求。如果每次都去公网查询,会增加延迟。

本地DNS缓存 的作用就是:当你第一次访问某个网站后,系统会把该域名对应的 IP 地址临时保存在本地。下次再访问时,就直接从本地读取,无需再次联网查询,从而提高网络速度并减轻外部DNS负担。

为什么选择 dnsmasq?

在 Ubuntu 中,最轻量、易用的 DNS 缓存工具是 dnsmasq。它不仅支持 DNS 缓存,还能提供 DHCP 服务(本教程只用其 DNS 功能)。相比 BIND 等大型 DNS 服务器,dnsmasq 配置简单、资源占用低,非常适合个人电脑或小型局域网使用。

步骤一:更新系统并安装 dnsmasq

首先,打开终端(Ctrl + Alt + T),执行以下命令更新软件包列表并安装 dnsmasq:

sudo apt updatesudo apt install dnsmasq -y  

步骤二:备份并编辑 dnsmasq 配置文件

安装完成后,先备份原始配置文件,然后进行编辑:

sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.baksudo nano /etc/dnsmasq.conf  

在打开的配置文件中,找到并修改以下几行(删除前面的 # 号以启用):

# 启用 DNS 缓存port=53# 监听本地回环地址(仅本机使用)listen-address=127.0.0.1# 设置缓存大小(单位:条目数)cache-size=1000# 使用上游 DNS 服务器(这里以 Cloudflare 和 Google 为例)server=1.1.1.1server=8.8.8.8# 不读取 /etc/resolv.conf 中的 DNS(避免冲突)no-resolv  

> 💡 提示:你可以根据需要更换 server 行为你信任的 DNS 服务商,如阿里 DNS(223.5.5.5)、腾讯 DNS(119.29.29.29)等。

步骤三:配置系统使用本地 DNS

为了让系统优先使用本地的 DNS 缓存,我们需要修改网络配置。如果你使用的是 NetworkManager(桌面版 Ubuntu 默认),请编辑以下文件:

sudo nano /etc/NetworkManager/NetworkManager.conf  

[main] 段落下添加一行:

[main]dns=none  

然后重启 NetworkManager 并清除旧的 DNS 配置:

sudo systemctl restart NetworkManagersudo rm /etc/resolv.confsudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf  

接着,强制系统使用 127.0.0.1 作为首选 DNS。编辑 /etc/resolv.conf(如果是符号链接,需先解除)或通过 systemd-resolved 配置。更简单的方法是直接在 NetworkManager 的图形界面中,将 IPv4 的 DNS 手动设为 127.0.0.1

步骤四:启动并启用 dnsmasq 服务

sudo systemctl start dnsmasqsudo systemctl enable dnsmasq  

步骤五:测试 DNS 缓存是否生效

使用 dig 命令测试两次查询时间:

# 第一次查询(未缓存)dig www.baidu.com @127.0.0.1# 第二次查询(应来自缓存,查询时间明显缩短)dig www.baidu.com @127.0.0.1  

如果第二次查询的 Query time 显示为 0 或 1 毫秒,说明 DNS解析优化 已成功生效!

常见问题与注意事项

  • 如果无法上网,请检查防火墙是否阻止了 53 端口。
  • 确保没有其他 DNS 服务(如 systemd-resolved)与 dnsmasq 冲突。可运行 sudo systemctl stop systemd-resolved 并禁用它。
  • 缓存有效期由上游 DNS 的 TTL 决定,通常几分钟到几小时不等。

结语

通过以上步骤,你已经成功在 Ubuntu 上搭建了一个高效的本地 DNS 缓存服务器。这不仅能提高网络速度,还能增强隐私保护(减少对公共 DNS 的依赖)。希望这篇教程能帮助你轻松掌握 Ubuntu DNS缓存服务器 的配置方法!

关键词:Ubuntu DNS缓存服务器、本地DNS缓存、提高网络速度、DNS解析优化