
在内网环境中搭建 DNS 服务器,核心目标是让局域网内的设备能通过域名(如 server1.local)访问内部服务,无需依赖外部 DNS,同时提升解析效率与可控性。推荐使用轻量、稳定、配置清晰的 dnsmasq,它集 DHCP + DNS 于一体,特别适合中小内网场景。
一、安装并启用 dnsmasq
以 Ubuntu/Debian 为例:
- 执行 sudo apt update && sudo apt install dnsmasq 安装
- 安装后默认已禁用,先停用 systemd-resolved 冲突服务:
sudo systemctl stop systemd-resolved && sudo systemctl disable systemd-resolved - 备份原始配置:sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
- 清空配置文件,从头写入关键项(避免注释干扰)
二、基础 DNS 配置(/etc/dnsmasq.conf)
编辑 /etc/dnsmasq.conf,至少包含以下内容:
一个经过完善设计的经典网上购物系统,适用于各种服务器环境的高效网上购物系统解决方案,shopxp购物系统Html版是我们首次推出的免费购物系统源码,完整可用。我们的系统是免费的不需要购买,该系统经过全面测试完整可用,如果碰到问题,先检查一下本地的配置或到官方网站提交问题求助。 网站管理地址:http://你的网址/admin/login.asp 用户名:admin 密 码:admin 提示:如果您
- interface=eth0 —— 指定监听网卡(替换为你的内网接口名,如 enp0s3)
- bind-interfaces —— 仅绑定到指定接口,不监听公网
- domain=local —— 设置默认域名(可选,用于短域名补全)
- address=/server1.local/192.168.1.10 —— 静态解析:访问 server1.local → 解析为 192.168.1.10
- address=/git.local/192.168.1.11 —— 可添加多条 address 行
- server=114.114.114.114 —— 上游 DNS(用于解析非内网域名)
- cache-size=1000 —— 启用本地缓存,提升重复查询速度
三、让客户端生效(两种常用方式)
客户端需将 DNS 服务器地址设为 dnsmasq 所在主机的内网 IP(如 192.168.1.1):
- 手动设置:在客户端网络配置中,DNS 服务器填 192.168.1.1(即 dnsmasq 主机 IP)
-
配合 DHCP 自动分发:在 dnsmasq 中启用 DHCP(加几行):
dhcp-range=192.168.1.100,192.168.1.200,12h
dhcp-option=option:dns-server,192.168.1.1
这样客户端通过 DHCP 获取 IP 时,会自动获得该 DNS 地址
四、验证与排错
配置完成后重启服务:sudo systemctl restart dnsmasq
- 在服务器本机测试:dig server1.local @127.0.0.1 或 nslookup git.local 127.0.0.1
- 从客户端 ping 或 curl 测试:ping server1.local(应返回 192.168.1.10)
- 检查日志:sudo journalctl -u dnsmasq -f,看是否有拒绝或配置错误提示
- 常见问题:防火墙拦截 53 端口 → 开放:sudo ufw allow 53









