macOS 可通过 dnsmasq 搭建内网 DNS 服务器,支持自定义域名解析(如 dev.local)并转发公网请求至上游 DNS(1.1.1.1/8.8.8.8);需配置监听地址、自定义解析规则、上游服务器及日志,启动后供局域网设备统一使用。

macOS 可以通过 dnsmasq 轻量级服务,把自己变成一台内网 DNS 解析服务器,让局域网内的其他设备(如 iPhone、Windows 电脑、测试终端)都能用它解析自定义域名(比如 dev.local、test.abchina.com.cn),同时还能转发公共域名请求到上游 DNS(如 1.1.1.1 或 8.8.8.8)。这不是改本机 DNS,而是让 Mac 充当一个真正的 DNS 服务节点。
安装并配置 dnsmasq
确保已安装 Homebrew,然后执行:
brew install dnsmasq- 复制默认配置:
sudo cp /opt/homebrew/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf - 编辑配置文件:
sudo nano /usr/local/etc/dnsmasq.conf,加入以下关键项:
listen-address=127.0.0.1,192.168.1.100 # 替换为你的 Mac 局域网 IP
bind-interfaces
no-hosts
domain-needed
bogus-priv
address=/dev.local/192.168.1.100
address=/test.abchina.com.cn/10.100.81.111
server=1.1.1.1
server=8.8.8.8
log-queries
log-facility=/var/log/dnsmasq.log
启用日志与权限
dnsmasq 需要写日志,且必须由 root 运行才能监听 53 端口:
- 创建日志文件:
sudo touch /var/log/dnsmasq.log - 设置归属:
sudo chown $(whoami):admin /var/log/dnsmasq.log - 允许防火墙通行:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/local/sbin/dnsmasq --unblockapp
启动服务并验证本地解析
启动后立即测试是否响应:
- 启动服务:
sudo brew services start dnsmasq - 确认监听:
sudo lsof -i :53 | grep LISTEN(应看到 dnsmasq) - 本地测试:
dig dev.local @127.0.0.1 +short→ 应返回192.168.1.100 - 再试公网域名:
dig google.com @127.0.0.1 +short→ 应有正常 IP 返回
让其他设备使用这台 macOS DNS
只要设备和 Mac 在同一局域网,就能把 Mac 当 DNS 用:
-
Mac 本机(可选):在「系统设置 > 网络 > Wi-Fi > 详细信息 > DNS」中添加
127.0.0.1并置顶 -
iPhone/iPad:Wi-Fi 设置 → 当前网络 ⓘ → 配置 DNS → 手动 → 添加 Mac 的局域网 IP(如
192.168.1.100) - Windows 或 Linux:将网络适配器 DNS 改为该 IP
- 路由器(推荐):在 DHCP 设置里将「DNS 服务器」设为 Mac 的局域网 IP,这样所有接入设备自动生效


















