winbind 在查询中使用错误的 netbios 服务代码

winbind 在查询中使用错误的 netbios 服务代码

在过去的一天里,我一直在尝试让我的 Ubuntu VM 能够解析本地网络上的 NetBIOS 名称,找到一些没有 NetBIOS 名称的非计算机设备(打印机、特殊条形码机等),但没有成功。固定IP。

起初,我认为我无法配置 winbind/wins 的使用来进行解析,尽管我已经阅读了所有提到过 nsswitch.conf 的网页,并且我确信我的配置应该是正确的。

运行nmblookup printername返回一个成功的结果,如下所示:
x.x.x.x printername<00>
这是我的第一个线索,<00> 服务类型。我启动了wireshark,并尝试执行ping printername,但我看到了一个N​​etBIOS 广播请求printername<20>,但没有人回复。

我停止了 winbindd 服务,并使用以下命令在前台手动运行它:
sudo winbindd -F -S -d 10
然后尝试相同的 ping,我看到 winbindd 尝试使用 <20> 而不是 <00> 进行相同的错误查询。

为什么会发生这种情况?这个可以在哪里配置呢?

编辑:关闭这个问题,因为这是在源代码中硬编码的。深入研究代码,我在 winbindd_wins_byname.c 中找到了该函数,其编码如下:

subreq = resolve_wins_send(state, ev, state->request->data.winsreq, 0x20);

答案1

您应该获得以下回报:

x.x.x.x printername<20>

windbindd是正确的,因为服务类型 <20> 用于文件/打印共享服务。您是否尝试过从 samba 进行 WINS 服务配置?如果客户端请求的共享未在 中列出,则将提供默认服务类型smb.conf

相关内容