Linux服务器的多播(mDNS)

背景:

我正在同时充当Web服务器和中央通信服务器的本地网络上运行Linux服务器。该服务器与系统中的多个节点通信。节点初始化后,节点将其IP地址发送到中央通信服务器。但是,为了知道该IP地址的发送目的地,节点需要知道服务器的IP地址。为了解析服务器,我被引导使用mDNS。

看来在服务器上安装avahi可以为Linux服务器启用多播。

sudo apt-get install avahi-daemon

然后,可以将服务器的主机名更改为多播将服务器的IP地址解析为的位置。

hostname.local

问题1:

节点是否还必须安装avahi-daemon才能使此方案起作用?如果是这样,则有一种方法可以绕过此方法,或以另一种方式为节点启用多播。我很犹豫,因为我不确定ESP8226是否用作WiFi模块,因此微控制器是否具有安装此守护程序的能力。 (我确实知道ESP8226确实支持mDNS,但我不知道它到底有多精确)。

问题2:

如果用户尝试访问Web服务器上的页面,他们是否可以在浏览器中键入mDNS名称以发出请求?还是他们还必须安装avahi-daemon?如果是试图访问该应用程序的Windows计算机,我不能保证它们将内置此功能。同样,如果需要,是否可以解决没有守护程序的问题?

Update: The ESP8226 does support mDNS, however client mDNS is not built in. There is, however, a client mDNS library for the ESP8226 here: https://github.com/mrdunk/esp8266_mdns

最佳答案

问题1:不幸的是,您必须安装avahi或bonjour(win / mac)才能使用mDNS。微控制器祝您好运!我也从未将mDNS与wifi一起使用,但这确实是非常正常的多播流量。

问题2:您可以将mDNS名称用于http东西,avahi完全将其与DNS集成在一起。我实际上是用它来加载NFS共享的。请记住,如果您使用虚拟主机,则将hostname.local添加为虚拟主机或其他东西的别名。