我的笔记本电脑主机是 Windows 11 Home。VirtualBox 客户虚拟机是 Ubuntu 22.04。
- Ubuntu IP:
192.168.56.102
- Windows IP:
192.168.56.11
主机和客户机都位于同一个WORKGROUP中。
我可以直接从主机操作系统和客户操作系统的文件管理器访问共享:
- 从 Windows 11 开始:
\\192.168.56.102\share
- 从 Ubuntu:
smb://192.168.56.11/share
一切似乎都按设计运行。这是困扰 Windows 和 Samba 网络的一个迫切问题。
为什么我在文件管理器的网络文件夹中看不到计算机名称?由于 SMB1 已弃用,我应该看到它们吗?
当我运行时,smbclient
我得到以下内容。
查询Ubuntu访客地址:
# smbclient -L \\192.168.56.102 -U root
Password for [WORKGROUP\root]:
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
share Disk Samba on Ubuntu 22.04
IPC$ IPC IPC Service
HP Printer HP Deskjet 4100
SMB1 disabled -- no workgroup available
查询Windows主机地址:
# smbclient -L \\192.168.56.11 -U root
Password for [WORKGROUP\root]:
session setup failed: NT_STATUS_LOGON_FAILURE
我想你已经回答了你自己的问题。
此处的“计算机名称”是指计算机的 NetBIOS 名称。NetBIOS 是 SMBv1 的东西,没有它就没有 NetBIOS。Windows 和 Samba 都默认不启用 SMBv1。
Windows 使用另一种方法来“发现”网络上的主机,即 WS-Discovery。
在 Ubuntu 22.04 中,您可以使用 wsdd 包启用 WS-Discovery 服务器端:
这将使 Win10/11 在资源管理器中发现您的 Linux samba 服务器。
在 Ubuntu 22.04 中,它只能以一种方式工作。Windows 可以发现 Linux,但 Linux 却不能。
在 Ubuntu 24.04 中,实现略有不同,并通过 wsdd-server 包启用。具有讽刺意味的是,这还在 Linux 的客户端上启用了 ws-discovery,因此它可以发现 Win10/11 主机