AI智能摘要
青萍AI
这里是青萍AI,这篇文章介绍了如何在Ubuntu系统上搭建本地DNS服务(dnsmasq)。文章首先说明了搭建本地DNS的常见需求,如自定义内网域名解析、加速访问和避免DNS污染等。接着详细列出了搭建步骤:禁用默认的systemd-resolved服务、安装dnsmasq、配置参数、管理本地域名等。最后强调了该方案适合小型网络环境,能有效提升内网访问效率,但提醒不要在公网搭建未经授权的DNS服务。全文提供了清晰的配置指南,适合有一定Linux基础的用户参考。
type
status
date
slug
summary
category
tags
create_time
Jul 12, 2025 03:11 PM
icon
password
my_create_time
📝 前言
最近在将开发、测试环境迁移到家里旧笔记本上(3台),为了更方便的访问,就顺带搭建了一套 DNS 服务,本篇分享介绍一下如何搭建自己的 DNS。
PS:不要尝试在公网搭建DNS服务,这是需要申请资质的~
🧭 背景介绍
在日常开发或家庭网络中,我们常常需要实现以下目标:
- 为局域网设备自定义命名解析(如
home.local
)
- 加速某些国内/内网域名的解析速度,减少公网依赖
- 实现轻量级的广告屏蔽或自定义 DNS 路由
- 本地化 DNS 查询以提升响应效率,节省公网流量(通过本地缓存方式)
- 避免运营商 DNS 污染(如无法正常访问 github)
虽然可以选择如 BIND、CoreDNS 等方案,但它们配置相对复杂、资源消耗高。
相比之下,
dnsmasq
是一款轻量级的 DNS 服务器,非常适合快速部署小型网络服务。🔍 使用场景
- 局域网内设备希望通过域名访问彼此
- 将部分域名(如公司内网、开发环境)解析为本地 IP
- 破除运营商 DNS 污染
📌 最终目标
通过自定义域名的方式访问内网各个服务,无需记忆 IP。
加快访问公网的性能,避免 DNS 污染。
📋 前提条件
- 一台已安装 Ubuntu 系统 的主机(建议使用24.04 或以上的 LTS 版)
- 熟悉 Linux 的基础操作
🚀 详细步骤
1️⃣ 禁用systemd-resolved
服务
Ubuntu 从 18.04 版本开始默认启用了
systemd-resolved
服务,用于管理系统的 DNS 查询解析和缓存。该服务会自动接管
/etc/resolv.conf
,并监听在 127.0.0.53
地址作为本地 DNS 转发器。这与我们的 dnsmasq 是存在冲突的,
dnsmasq
在不少方面都是优于 systemd-resolved
,比如支持自定义域名解析、上游DNS控制、DNS缓存等等,因此在开始之前我们需要先禁用该服务。打开终端,使用
root
用户执行以下命令:2️⃣ 安装 dnsmasq
打开终端,执行以下命令安装:
安装后,dnsmasq 会自动以服务形式运行。
3️⃣ 配置 dnsmasq
编辑主配置文件
/etc/dnsmasq.conf
:在文件末尾添加自定义规则,例如:
4️⃣ 单独管理本地域名配置(可选)
若域名比较多需单独管理,可以在
/etc/dnsmasq.d
目录中新建.conf
文件,然后添加解析。例如
/etc/dnsmasq.d/home.conf
:修改完后还需要再重启 dnsmasq 服务生效。
5️⃣ 重启 dnsmasq 并验证服务
测试本地域名解析:
若打印出:192.168.10.2 则表示已经解析成功了。
6️⃣ 其他设备配置DNS地址
这里我们可以直接在家里路由器上配置首选DNS,也可以在每台电脑上自行配置。
配置完过后就基本都会从这台 DNS 服务进行查询请求了。
PS:有些高级的路由器本身就自带DNS服务或刷成 OpenWrt,并且提供了图形化管理,更方便些,不过我用的是比较老款的 TP-link 并不支持,也懒得折腾 OpenWrt 了,直接自己自建一个更省事~
✅ 总结
通过 dnsmasq 在 Ubuntu 系统上快速部署本地 DNS 服务变得非常简单可靠。
我们可以灵活配置自定义域名、解决 DNS 污染和缓存策略,大幅提升局域网访问体验与效率。
相比笨重的传统 DNS 服务,dnsmasq 是轻量网络环境的理想之选。
有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
若文章对您有帮助,欢迎 请我喝杯咖啡~
- 作者:青萍叙事
- 链接:https://blog.lusyoe.com/article/ubuntu-dnsmasq-local-dns-setup
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。