Bonjour是苹果开发的零配置网络协议,基于mDNS和DNS-SD,使macOS设备能在局域网内自动发现并连接打印机、文件共享、AirPlay等服务,无需手动配置IP或DNS。
macOS 本地网络服务发现主要依赖 Bonjour 协议,它让设备和服务在局域网内自动“打招呼”、互相识别,完全不用手动输 IP 或配 DNS。
Bonjour 是苹果开发的零配置网络(Zeroconf)技术,核心是两个开放协议:多播 DNS(mDNS)和 DNS 服务发现(DNS-SD)。它不依赖路由器上的 DHCP 或 DNS 服务器,而是靠设备自己在局域网内“喊话”——比如向组播地址 224.0.0.251、端口 5353 发 UDP 包,宣告“我在,我提供打印/文件共享/HTTP 服务”。其他设备听到后就能列出来,点一下就能连。
macOS 自带完整支持,所有系统级功能(如隔空播放、通用剪贴板、访达里的共享 Mac 列表、AirPrint 打印机)都基于 Bonjour。你打开“文件共享”或“屏幕共享”,系统就自动注册对应服务;别人在访达边栏看到你的 Mac,就是 Bonjour 在后台工作。
整个过程分三步,每步都是自动完成:
_airdrop._tcp)、端口、IP 地址等。_smb._tcp 表示文件共享),收到广播响应后列出可用实例。如果某项共享功能突然“看不见”了,大概率是 Bonjour 链路出了问题:
如果你写一个本地 HTTP 服务或调试工具,想让它被 macOS 自动识别,只需两步:
npm install bonjour,然后调用 publish({name: '我的调试页', type: 'http', port: 8080});_http._tcp)、name 和 port,调用 publish() 即可;http://我的调试页.local:8080。