简介
dnsmasq 是一个轻量级的 DNS 转发器与 DHCP 服务器,常用于路由器、虚拟机与嵌入式设备中,为局域网提供 DNS 解析缓存和 IP 地址分配。Android 设备上也预置了 dnsmasq,常用于热点(Tethering)场景。
常用命令
# 前台启动(打印日志)
dnsmasq -d
# 指定配置读取的额外主机文件
dnsmasq --no-hosts --addn-hosts=/path/to/hosts
# 指定上游 DNS
dnsmasq --server=8.8.8.8 --server=114.114.114.114
# 测试配置文件语法
dnsmasq --test
# 指定日志文件
dnsmasq --log-facility=/var/log/dnsmasq.log
# 指定监听地址与 DHCP 范围
dnsmasq --listen-address=192.168.1.1 --dhcp-range=192.168.1.50,192.168.1.150,12h
常用参数说明
| 参数 | 说明 |
|---|---|
-d |
前台运行并打印日志 |
--server=<ip> |
指定上游 DNS 服务器 |
--no-hosts |
不读取系统 /etc/hosts |
--addn-hosts=<file> |
读取额外主机文件 |
--dhcp-range=<start>,<end>,<lease> |
指定 DHCP 地址范围 |
--test |
校验配置文件 |
--log-facility=<file> |
指定日志文件 |
注意事项
- 默认读取
/etc/dnsmasq.conf,也可用-C <file>指定配置。 - 修改配置后需重启 dnsmasq 生效,可用
--test先校验语法。 - 与系统自带的 systemd-resolved 等 DNS 服务可能存在端口冲突(53 端口)。