背景:
我正在本地网络上运行一个Linux服务器,它既是一个web服务器,也是一个中央通信服务器。此服务器与系统中的多个节点进行通信。在节点初始化时,节点将其IP地址发送到中央通信服务器。然而,为了知道发送这个IP地址的目的地,节点需要知道服务器的IP地址。为了解决服务器问题,我被引导使用mDNS。
在服务器上安装avahi似乎支持Linux服务器的多播。
sudo apt-get install avahi-daemon然后,服务器的主机名可以更改为多播将服务器的IP地址解析为
hostname.local问题1:
节点是否也必须安装avahi-守护进程才能使此方案工作?如果是的话,是否有一种方法可以绕过这种情况,或者以另一种方式为节点启用多播。我犹豫不决,因为我不确定微控制器是否有能力安装这个守护进程,因为ESP8226被用作WiFi模块。(我知道ESP8226确实支持mDNS,只是不知道具体的支持方式)。
问题2:
如果用户试图访问web服务器上的页面,他们是否可以在浏览器中键入mDNS名称以发出请求?或者他们也必须安装avahi守护进程吗?如果是windows计算机试图访问应用程序,我不能保证它们会内置此功能。同样,如果需要,是否有一种方法可以避免使用守护进程?
更新: ESP8226确实支持mDNS,但是客户端mDNS不是内置的。但是,这里有一个客户端mDNS库,用于ESP8226:https://github.com/mrdunk/esp8266_孟斯
发布于 2016-03-25 19:47:59
问题1:不幸的是,要使用mDNS,必须安装avahi或bonjour (win/mac)。为微控制器编写avahi祝你好运!我也从未在wifi中使用过mDNS,但它确实是非常正常的多播通信。
问题2:您可以使用mDNS名称来表示http内容,avahi将它与DNS完全集成在一起。我实际上是用它来加载NFS股票。请记住,如果您使用vhost,添加hostname.local作为vhost或其他什么的别名。
发布于 2020-05-26 11:56:49
如果这些控制器进入业务网络,“中央通信服务器”应该能够由现场IT (至少是静态IP)控制。所以告诉他们你需要一个“集中式服务器”或任何你想要的记录,然后让你的控制器查找centralcommsserver.DNSSuffix
https://serverfault.com/questions/765961
复制相似问题