winbind 在查詢中使用錯誤的 netbios 服務代碼

winbind 在查詢中使用錯誤的 netbios 服務代碼

在過去的一天裡,我一直在嘗試讓我的 Ubuntu VM 能夠解析本機網路上的 NetBIOS 名稱,找到一些沒有 NetBIOS 名稱的非電腦設備(印表機、特殊條碼機等),但沒有成功。

起初,我認為我無法設定 winbind/wins 的使用來進行解析,儘管我已經閱讀了所有提到過 nsswitch.conf 的網頁,並且我確信我的配置應該是正確的。

運行nmblookup printername返回一個成功的結果,如下所示:
x.x.x.x printername<00>
這是我的第一個線索,<00> 服務類型。我啟動了wireshark,並嘗試執行ping printername,但我看到了一個NetBIOS 廣播請求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

相關內容