dnsmasq 是一个功能强大的 DNS 和 DHCP 服务器,广泛应用于内部网络的 DNS 和 DHCP 管理,下面将分步骤解释如何安装、配置和使用 dnsmasq。
安装 dnsmasq
Ubuntu/Debian 系统
- 运行以下命令以安装 dnsmasq:
sudo apt-get install dnsmasq
- 启动 dnsmasq 服务:
sudo systemctl start dnsmasq
- 设置开机启动:
sudo systemctl enable dnsmasq
Windows 系统
- 下载并安装最新版本的 dnsmasq:
- 访问 dnsmasq 官方网站
- 选择合适的版本并安装。
配置 dnsmasq
配置文件路径
默认配置文件位于 /etc/dnsmasq.conf。
DNS 配置
在配置文件中添加 DNS 记录:
address:指定域名及其对应的 IP 地址。/example.com:定义指定域名的域名。
DHCP 配置
配置 DHCP 选项:
interface eth
dhcp-boot=192.168.1.1/24
--dhcp-lease-time=86400
--dhcp-max-lease-time=604800
interface eth:指定接口名。dhcp-boot=192.168.1.1/24:设置 DHCP 服务器的 IP 地址和子网掩码。
保存并重启服务
保存配置文件后,重启 dnsmasq 服务:
sudo systemctl restart dnsmasq
测试配置
测试 DNS
在终端中运行以下命令,检查 DNS 配置:
nslookup localhost
或
dig localhost
- 期望输出显示
localhost对应本地 IP。
测试 DHCP
在另一台设备上设置固定的 IP 地址,并 ping 服务器:
ping 192.168.1.1
- 如果成功,DHCP 配置正确。
设置用户访问权限
访问控制
默认情况下,dnsmasq 监听在 ..1:53 和 ...:53,为了允许其他设备访问,修改配置文件:
listener=eth:53
重启服务后,其他设备可以访问 DNS 服务。
用户权限
默认设置下,dnsmasq 运行在 localhost,仅允许本地访问,修改配置:
--listen=eth
重启服务后,dnsmasq 会监听所有网络接口。
高级配置
缓存设置
增加缓存大小:
--cache-size=100
重启服务后,缓存容量增加至 100 个条目。
DNS 重定向
重定向特定域名到外部服务器:
server=/other-server.example.com
故障排除
服务不运行
- 检查服务状态:
systemctl status dnsmasq
- 如果服务不运行,启动并设置开机启动:
sudo systemctl start dnsmasq sudo systemctl enable dnsmasq
网络问题
- 检查防火墙设置,确保 DNS 服务在网络中可达。
- 检查网络接口是否正确配置。
DNS 解析问题
使用 nslookup 或 dig 检查解析问题。
进一步优化
分区设置
配置多个 IP 地址:
interface eth
dhcp-boot=192.168.1.1/24
interface eth1
dhcp-boot=10...1/24
高级 DHCP 选项
设置激活时间和重启策略:
--dhcp-lease-time=86400 --dhcp-renewal-time=43200
文档和资源
- 官方文档:dnsmasq 文档
- 支持论坛:dnsmasq 论坛
通过以上步骤,您可以成功安装和配置 dnsmasq,管理内部网络的 DNS 和 DHCP 服务。




