为另一台设备广播 mDNS

kab*_*bZX 4 networking bonjour mdns avahi

我的家庭 LAN 上有一个自定义/实验设备 (D),具有运行 HTTP 服务器的静态 IP。由于对本问题不重要的原因,(D) 无法运行 mDNS。我在同一 LAN* 上有另一个成熟的 Ubuntu 服务器 (S)。我希望服务器S代表D广播并响应mDNS,可以吗?

我可以看到 avahi可以配置为通告任意服务,但不清楚当服务完全位于另一台计算机上时是否/如何可以完成此操作。

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

use*_*686 7

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

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

    192.168.1.37       toaster.local
    2001:db8:108:2::37 toaster.local
    
    Run Code Online (Sandbox Code Playgroud)

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

  2. 如果您还想代表另一个系统发布 DNS-SD 服务,您可以使用 Avahi*.service文件来实现。有关更多详细信息,请参阅avahi.service(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>
    
    Run Code Online (Sandbox Code Playgroud)