如何配置 avahi 来解析 adhoc 网络上的主机名?

如何配置 avahi 来解析 adhoc 网络上的主机名?

我有一台运行 Debian 的 Linux 机器(树莓派),我已将其配置为创建一个临时网络。该机器托管一个网络应用程序,允许人们扫描基础设施网络并选择一个并输入安全凭证。然后树莓派将连接到所选的网络。

我想让访问树莓派托管的网页变得简单,无论是在 ad-hoc 模式还是基础设施模式下。据我所知,执行此操作的最佳方法是安装avahi-daemon并配置它以将主机名解析为其自己的地址。我尝试过这样做,但遇到了一些问题。当 pi 连接到基础设施时,我可以ping raspberrypi.local在我的 Mac 上运行并从 pi 获取 ping 响应。但是,当 pi 处于 ad-hoc 模式时,并且我将 Mac 连接到 adhoc 网络时,ping 不成功。 avahi 似乎仅适用于基础设施网络模式。

这是我的尝试:

我在中添加了以下服务定义/etc/avahi/services

<?xml version="1.0" standalone='no'?>
<!DOCTYPE  service-group SYSTEM "avahi-service.dtd">
<service-group>
    <name replace-wildcards="yes">%h</name>
    <service>
        <type>_device-info._tcp</type>
        <port>0</port>
        <txt-record>model=RackMac</txt-record>
    </service>
    <service>
        <type>_ssh._tcp</type>
        <port>22</port>
    </service>
    <service>
        <type>_http._tcp</type>
        <port>80</port>
    </service>
</service-group>

avahi 配置文件/etc/avahi/avahi-daemon.conf与默认配置文件相同,但我尝试添加以下内容:

allow-point-to-point=yes

这没有帮助。我想也许点对点与点对点网络相同,但也许不是?

有没有人有什么建议?

编辑:我不确定它是否重要,但当 Pi 处于 ad-hoc 模式时,我也运行 dhcpd。这会是一个问题吗? avahi 是否尝试分配 IP 地址?

答案1

我认为 Avahi 需要nss-mdns一个 glibc 插件,通过 mDNS 提供主机名解析,并且 avahi 守护进程在启动时启动。

假设您有名为“maple”、“fig”和“oak”的机器,它们都运行 Avahi。可以设置 Avahi,这样您就不必为每台计算机管理 /etc/hosts 文件。相反,您可以简单地使用 maple.local 来访问 maple 拥有的任何服务。

您可以获取有关 ArchLinux 的更多信息维基页面(参考拱门的或者根图经常浏览维基页面。这两个只是最好的可用文档:))

相关内容