我有一台 Synology NAS,我想通过 Bonjour 广播它托管的 SMB 服务器。
它通过以太网连接到我的电缆调制解调器,以太网还提供路由器功能。
连接到我的电缆调制解调器的所有设备都在 192.168.0 之内。*
其中一个设备是 WiFi 路由器,连接到我的 WiFi 路由器的所有设备都会收到 192.168.1.* 地址(其中 Wi-Fi 路由器本身获得 192.168.0.4 地址)。
我发现如果我直接连接到我的 192.168.0.* 子网,我可以轻松找到我的 NAS 提供的 SMB 服务的 Bonjour 广播。
但一旦进入 192.168.1.* 子网,就没那么幸运了。尽管我从 192.168.1.* 机器手动连接到 192.168.0.* 子网的地址时没有遇到这样的麻烦。
那么,如何将 Bonjour 广播到我的 WIFI 路由器使用的子网上,以便 WIFI 设备可以自动发现 SMB 服务器?
答案1
Bonjour 通常基于 mDNS,它使用 TTL=1 的链路范围多播。它们无法通过普通 IP 路由转发(即使启用了多播路由)——网关需要运行中继应用程序,例如avahi 守护进程(Linux Bonjour 实现)配置为中继广告。它不必在路由器上运行,但必须在直接连接到两个子网的机器上运行。
或者,也可以将静态条目添加到“正常”DNS,Bonjour 也支持服务发现,尽管这是一个很少使用的功能。
(请注意,只有 Linux 和 macOS 实际使用 Bonjour 来发现 SMB 文件服务器 - Windows 本身则不然。)