![Samba 錯誤:在子網路 x 上查詢名稱 x 時收到多個回應](https://rvso.com/image/1592552/Samba%20%E9%8C%AF%E8%AA%A4%EF%BC%9A%E5%9C%A8%E5%AD%90%E7%B6%B2%E8%B7%AF%20x%20%E4%B8%8A%E6%9F%A5%E8%A9%A2%E5%90%8D%E7%A8%B1%20x%20%E6%99%82%E6%94%B6%E5%88%B0%E5%A4%9A%E5%80%8B%E5%9B%9E%E6%87%89.png)
我的一台 Linux 伺服器上每 5 分鐘就會收到此錯誤。本例中的名稱不是主機名,而是我在兩台伺服器的 smb.conf 檔案中設定的工作群組名稱。我不知道為什麼它一直這樣做,我唯一的想法(作為 Windows 管理員)是第二個伺服器正在嘗試成為主瀏覽器或其他東西,並且在解析工作組名稱時會在第一個伺服器前面得到回复已開啟。這可以解釋為什麼其他伺服器在其日誌中沒有顯示錯誤。
兩個系統都有靜態配置的 IP 和包含網域和名稱伺服器條目的 resolv.conf。
但這讓我想知道:既然是 nmbd 來做這件事,我在 SMB3.1 Win10 網路中還真的需要它嗎?或者我們永遠無法擺脫 NETBIOS 嗎?
答案1
但這讓我想知道:既然是 nmbd 來做這件事,我在 SMB3.1 Win10 網路中還真的需要它嗎?或者我們永遠無法擺脫 NETBIOS 嗎?
nmbd 的功能(瀏覽和 NBNS)有總是對於現代客戶端(Win2000+)來說是可選的。最後一個在實際 SMB 連線之前故意發送 NetBIOS 資料報查詢的系統是 Windows 98(或可能是 Windows ME)。
因此,您可以透過IP 位址(或DNS 名稱)連線至smbd 服務,並使用您喜歡的任何SMB/CIFS 版本,無論是透過連接埠139 透過NetBIOS 會話的SMBv1,或是透過連接埠445 透過原始TCP 的SMBv3.1 ,而無需正在運行 nmbd。
答案2
由於同一實體網路中的主機具有兩個接口,因此可能會收到多個回應。然後廣播查詢將由您的 回覆給他們兩個nmbd
。請參閱這篇 17 年前的文章:
query_name_response:收到多個回應。
如果沒有列出多個接口,請檢查smb.conf
有關參數的檔案。interfaces
答案3
對我來說,答案可以在這裡找到:https://forums.freebsd.org/threads/samba-multiple-2-responses-two-freebsd-systems-on-my-network.65759/
特別是最後一句話
如果你是獨立做的,那你應該要有本地主控=否,域主機 = 否和首選大師 = 否。也禁用所有獲勝的東西。我認為你所需要的只是工作小組 = WORKGROUP
但是,我不使用 NT 網域登入。實際上我只使用工作組。 「首選主人=否」是我必須改變的。我在一台主機上將其設為“是”。變更為“否”並重新啟動 samba。此後一切正常,訊息停止了。
答案4
在 smb.conf 部分中新增/更新以下行[global]
:
[global]
bind interfaces only = yes
interfaces = 127.0.0.0/8 eth0 # -> subnet where samba serwer is
smb ports = 139
prefered master = yes
接下來,重新啟動 Samba 的 NetBIOS 伺服器部分:
sudo systemctl restart nmbd
sudo systemctl status nmbd
重新啟動後您應該在日誌檔案中看到:
Samba name server "xxx" is now a local master browser for workgroup WORKGROUP on subnet "IP server Samba"
之後,上述訊息應該停止。