由于挂载 Samba 共享的问题,配置 Avahi nss-mdns 不使用带有主机名的本地后缀

Esp*_*osa 4 samba hostname mdns linux-networking avahi

如何配置Avahi 和 nss-mdns以与 Windows 使用NetBIOS或最近LLMNR相同的方式解析我的小型家庭网络中的名称。

对于 Linux,有两种选择:

  • Winbind aka NetBIOS for linux,被许多专家标记为 DEPRECATED
  • Avahi & nss-mdns - 又名 Zeroconf,MODERN,听起来不错,我渴望与 LLMNR 相似。

我尝试了 Avahi。
它已经在 /etc/nsswitch.conf 中预先配置好。守护进程运行,发现运行,查找 - 排序。

但有一个问题。

ping foopc1
不工作 -未知主机
ping foopc2.local
工作!

我个人不介意使用“后缀”名称,但有些系统会这样做。特别是桑巴。无法安装 cifs 网络共享。Smb4k 可以很好地识别其他计算机,但是在尝试挂载共享 (smb/cifs) 时失败:
could not resolve address for foopc1

似乎对于 samba 客户端 (mount.cifs),主机名解析器 (?) 接受的网络名称与 nmblookup (??) 获得的名称之间必须匹配,如果我错了,请纠正我!

如何使 ping 将我的计算机识别为 foopc1 和 foopc2 而不是 foopc1.local 和 foopc2.local?

根据 nss-mdns 项目主页 http://0pointer.de/lennart/projects/nss-mdns/我创建/etc/mdns.allow并放在那里只是 asterix:
*
..但无济于事。

我还尝试制作网络名称别名,以映射:
foopc1.local -> foopc1
但 /etc/hosts 不支持此功能,并且没有简单的方法可以绕过。

排除的解决方案:

  • 编辑 /etc/hosts - 在当今的动态网络中保持静态映射列表是不切实际的
  • 本地 DNS - 所有计算机都经常断电,这里没有像硬件这样的服务器
  • 摆弄 wifi 路由器设置,将固定 IP 分配给 MAC 地址等 - 假设我无法访问它
  • 注意:我们的wifi路由器没有DNS服务器(常见做法)
  • PLUS:证明 Linux 可以以相同的用户友好方式做与 Windows 相同的事情的挑战

另请参阅为什么 Windows 机器可以在 Linux 不能解析本地名称时解析本地名称?

小智 5

如果您在文件中插入“搜索本地” /etc/resolv.conf,则查询将与给定域一起发送,例如主机my-pc导致第一个查询 my-pc 和第二个查询my-pc.local

  • 最新版本的 nss-mdns 必须使用非默认的“--enable-search-domains”标志进行编译,才能遵循此配置。 (2认同)