向另一台设备广播 mDNS

向另一台设备广播 mDNS

我的家庭局域网上有一个自定义/实验设备 (D),其静态 IP 运行 HTTP 服务器。由于与此问题无关的原因,(D) 无法运行 mDNS。我在同一个局域网*上还有另一个功能齐全的 Ubuntu 服务器 (S)。我希望服务器 S 代表 D 广播并响应 mDNS。可以这样做吗?

我可以看到 avahi可以配置来宣传任意服务,但目前尚不清楚当服务完全位于另一台机器上时是否/如何做到这一点。

*(暂时连接到同一个以太网交换机)

答案1

是的,任何主机都可以使用它想要的任何 DNS 记录来响应任何 mDNS 名称。

  1. 如果您只想使普通主机名 ( foo.local) 可通过 mDNS 解析,请在/etc/avahi/hosts文件中定义它。请参阅avahi.主机(5)

    192.168.1.37       toaster.local
    2001:db8:108:2::37 toaster.local
    

    系统现在将响应此文件中列出的所有名称的 mDNS 查询,并提供相应的 IP 地址。

  2. 如果您还想代表另一个系统发布 DNS-SD 服务,则可以使用 Avahi*.service文件来实现。请参阅avahi.服务(5)更多细节。

    您可以<host-name>在定义服务时在标签中指定任何您想要的主机名,只要它本身已经可以解析(也就是说,您必须先执行步骤#1才能使其正常工作)。

    <?xml version="1.0"?>
    <service-group>
        <name>Toaster</name>
        <service>
            <type>_sftp-ssh._tcp</type>
            <host-name>toaster.local</host-name>
            <port>22</port>
        </service>
    </service-group>
    

相关内容