dnsmasq的使用
dnsmasq 是一个轻量级的 DNS 转发器和 DHCP 服务器,广泛用于小型网络、开发环境或嵌入式设备中。它配置简单、占用资源少,非常适合以下用途:
📌 常见用途
DNS 缓存与转发
提高域名解析速度,将请求转发给上游 DNS(如 8.8.8.8)。本地域名解析
比如将myapp.local指向某个本地 IP(适合本地开发环境)。DHCP 服务器
给局域网内设备自动分配 IP 地址。PXE 网络启动、TFTP 支持
常用于自动化部署或嵌入式系统。
✅ 示例:配置本地域名解析和 DNS 缓存
假设你希望将 myapp.local 解析到本地服务器 IP 192.168.1.100,并启用 DNS 缓存:
/etc/dnsmasq.conf 示例:
# 指定上游 DNS 服务器
server=8.8.8.8
# 启用缓存
cache-size=1000
# 自定义域名解析
address=/myapp.local/192.168.1.100
✅ 示例:同时启用 DHCP
# 设置 DHCP 范围
dhcp-range=192.168.1.50,192.168.1.150,12h
同时启用 DHCP 的作用,可以为局域网内的设备分配IP,要让这个配置生效,可以通过如下步骤实现:
1.用网线(或热点)把其他设备连接到你电脑(桥接或共享网络)
2.禁用局域网中其他 DHCP(如路由器 DHCP)
3.动你电脑的 dnsmasq,分配 IP(如 192.168.1.50~150)
4.其他设备会自动获得 IP 并使用你的电脑作为 DNS / 网关
如果只是想测试一下 dnsmasq 的 DHCP 功能,可以这样:
使用笔记本 → 开热点 → 运行 dnsmasq → 其他设备连接这个热点
1.用 Linux 笔记本开 Wi-Fi 热点(或者 USB 网络共享)
2.设置热点子网为如 192.168.8.1
3.在热点网卡上启用 dnsmasq,配置为:
interface=wlp3s0 # ← 你开启热点的那个网卡
dhcp-range=192.168.8.50,192.168.8.150,12h
dhcp-option=3,192.168.8.1 # 默认网关
dhcp-option=6,192.168.8.1 # DNS
4.手机、电脑连上你的热点后,会自动分配 IP,并能通过你电脑访问自建服务。
启动服务(在 Linux 上)
sudo systemctl start dnsmasq
sudo systemctl enable dnsmasq
或者使用 Docker 启动(如果不想改本机配置):
docker run --rm -p 53:53/udp --cap-add=NET_ADMIN \
-v $(pwd)/dnsmasq.conf:/etc/dnsmasq.conf \ # 可以现在本地定义好`dnsmasq`的配置文件, 然后挂载
andyshinn/dnsmasq
