我的家庭局域网上有一个自定义/实验设备 (D),其静态 IP 运行 HTTP 服务器。由于与此问题无关的原因,(D) 无法运行 mDNS。我在同一个局域网*上还有另一个功能齐全的 Ubuntu 服务器 (S)。我希望服务器 S 代表 D 广播并响应 mDNS。可以这样做吗?
我可以看到 avahi可以配置来宣传任意服务,但目前尚不清楚当服务完全位于另一台机器上时是否/如何做到这一点。
*(暂时连接到同一个以太网交换机)
答案1
是的,任何主机都可以使用它想要的任何 DNS 记录来响应任何 mDNS 名称。
如果您只想使普通主机名 (
foo.local
) 可通过 mDNS 解析,请在/etc/avahi/hosts
文件中定义它。请参阅avahi.主机(5)。192.168.1.37 toaster.local 2001:db8:108:2::37 toaster.local
系统现在将响应此文件中列出的所有名称的 mDNS 查询,并提供相应的 IP 地址。
如果您还想代表另一个系统发布 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>