跨网段 AirPlay 投屏:跨越 VLAN 打通 mDNS 多播
发布网友
发布时间:2024-10-07 23:24
我来回答
共1个回答
热心网友
时间:2024-10-08 13:42
跨网段 AirPlay 投屏需要利用 mDNS 多播协议进行服务发现,它是一种在局域网中用于自动配置的简单协议,通过UDP多播包在224.0.0.251或f02::fb的5353端口进行通信。设备作为客户端和服务端,如iPhone和MacBook,通过发送查询请求,服务端响应查询,实现设备间的交互。
然而,由于网关通常不会在不同网段间转发多播,所以要实现跨网段的 AirPlay 服务发现,有以下两种解决方案:一是通过开源的mDNS和DNS-SD协议实现,如Avahi;二是利用OpenWrt中的Avahi服务进行代理。在OpenWrt上,可以配置Avahi daemon,如选择avahi-dbus-daemon或avahi-nodbus-daemon,前者依赖DBus,后者更节省资源。在MacOS上,只需在系统偏好设置中启用AirPlay接收并允许同一网络内的设备访问,然后在OpenWrt上运行相关命令,如avahi-browse查询和avahi-publish-service注册服务,以及在防火墙中开放特定端口。
需要注意的是,虽然avahi提供了丰富的功能,如服务定义和域名映射,但在实际操作中可能会遇到一些问题,如反向域名映射的冲突。解决这些冲突可能需要调整avahi-daemon.conf的配置。尽管Avahi的代码复杂,但相比mDNSResponder和umdns,它提供了更多功能和灵活性。