macos 配置本地域名解析的核心是组合使用 /etc/hosts(静态映射)和 /etc/resolver/(域名级dns分流),前者优先级最高、支持ipv4/ipv6但不支持通配符,后者通过最长后缀匹配指定专用dns服务器;需注意权限设置与缓存刷新。

macOS 配置本地域名解析,核心是让系统把特定域名(比如 dev.local、api.test)指向你指定的 IP(如 127.0.0.1 或内网地址),而不是走公网 DNS。最常用、最轻量、也最原生的方式是组合使用 /etc/hosts 和 /etc/resolver/ 两类机制,按需选择——前者静态映射,后者动态指定 DNS 服务器。
用 /etc/hosts 做静态域名映射
适合固定 IP 的本地服务,比如开发时把 myapp.test 指向本机或 Docker 容器。
- 用终端编辑:
sudo nano /etc/hosts - 在文件末尾添加行,格式为:
127.0.0.1 myapp.test(IPv6 可加一行::1 myapp.test) - 保存后刷新缓存:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - 验证:
ping myapp.test应返回127.0.0.1;dig myapp.test +short也应直接返回该 IP,不发往外网
注意:/etc/hosts 不走 DNS 查询链路,优先级最高,但无法支持通配符(如 *.test)或基于 DNS 协议的高级功能(如 SRV 记录)。
用 /etc/resolver/ 实现域名级 DNS 分流
适合需要让某个域名(及其所有子域)走专用 DNS 服务器的场景,比如把 internal.company.com 解析交给内网 DNS,而其他域名仍用运营商 DNS。
- 创建目录:
sudo mkdir -p /etc/resolver - 为域名新建配置文件:
sudo tee /etc/resolver/company.com,内容只写一行:nameserver 192.168.1.50 - 确认权限正确:
sudo ls -l /etc/resolver/company.com应显示-rw-r--r--,属主为root:wheel - 刷新缓存同上,无需重启服务
关键限制:文件名必须是完整域名(如 company.com),不支持 .com 或 *;匹配规则是“最长后缀匹配”,所以 /etc/resolver/api.company.com 会比 /etc/resolver/company.com 优先生效。
macOS 微信消息自动化工具。通过 GUI 自动化实现:发送消息给指定联系人、读取聊天内容、监控新消息。适用于需要自动化微信操作的场景,如定时发送、批量回复、消息备份等。依赖 peekaboo 进行屏幕截图和 UI 交互。仅支持 macOS。开源地址:https://github.com/chairmanmia...
用 dnsmasq 实现灵活转发与本地解析
当需要通配符(*.dev)、自定义响应、日志监控或同时处理 hosts 映射和条件转发时,dnsmasq 是更强大的选择。
- 安装:
brew install dnsmasq - 配置转发规则,例如让所有
.dev域走本地:echo "address=/.dev/127.0.0.1" | sudo tee -a /opt/homebrew/etc/dnsmasq.conf - 启用系统 hosts:
echo "addn-hosts=/etc/hosts" | sudo tee -a /opt/homebrew/etc/dnsmasq.conf - 将 macOS 网络设置中的 DNS 改为
127.0.0.1,并置顶 - 启动:
sudo brew services start dnsmasq
优势在于可混合使用 IP 映射、上游 DNS 转发、缓存和日志;缺点是需额外进程常驻,且要确保防火墙允许 53 端口通信。
验证是否生效的实用方法
别依赖 scutil --dns——它不显示 /etc/resolver/ 规则,属正常现象。
- 测试
/etc/hosts:ping yourdomain.test或nslookup yourdomain.test - 测试
/etc/resolver/:dig yourdomain.com +short(不带@),对比dig yourdomain.com @8.8.8.8 +short看结果是否不同 - 测试 dnsmasq:
dig @127.0.0.1 yourdomain.dev +short,再试不指定@的版本
只要行为符合预期,就说明配置已起作用。不复杂但容易忽略权限和缓存刷新这两个环节。










