我正在尝试从 Ubuntu 18.04 设置对 Windows 10 共享的访问。
我收到以下错误:
无法挂载位置
无法从服务器检索共享列表:连接超时
当我在 Ubuntu 的文件窗口中单击 Windows 10 计算机名称时,错误立即出现。 (为了进行比较,如果同一网络上的另一台 Windows 7 计算机未开启,则错误会延迟出现。)
我做了什么:
我的 etc/samba/smb.conf 中有以下几行https://ubuntuforums.org/showthread.php?t=2390873&p=13764895#post13764895:
工作组 = 工作组
客户端最大协议 = NT1
在 Windows 10 上,我执行了第 1 步https://websiteforstudents.com/quickly-enable-file-sharing-between-windows-10-and-ubuntu-17-04-17-10/。
我检查了 Windows 10 防火墙是否有一条规则文件和打印机共享 (SMB-In)描述如下:文件和打印机共享的入站规则允许通过命名管道传输和接收服务器消息块 [TCP 445]。启用后允许连接。针对域、公共和专用网络进行设置。协议类型 = TCP,协议编号 = 6,本地端口 = 特定端口,445。远程端口 = 所有端口。
我不想使用明确的 IP 地址,因为我的路由器是动态分配它们的。
我在同一个网络上有另一台 Windows 10 计算机,当我尝试从 Ubuntu 访问它时,它会要求输入用户名和密码。(我不需要共享它,所以我不会继续。)
我在同一个网络上有另一台 Windows 7 计算机,我可以从 Ubuntu 访问其共享。我还可以从它访问 Windows 10 上的共享(我无法从 Ubuntu 访问)。
非常感谢您提出的任何想法。
答案1
您必须允许/强制 Ubuntu 对 SMB 协议使用更高协议版本 - 至少从 Windows 7 开始,微软默认淘汰了旧的 SMB1 协议并引入了 SMB2/SMB3...Windows 10 扩展了这一原则,并按标准强制执行 SMB3,这给您留下了 2 个选择:
- 在 Windows 10 计算机上强制执行 SMB1(微软认为不安全)
- 配置你的 Ubuntu 以使用 SMB3 而不是 SMB1
根据链接的文章,您需要在防火墙中允许更多端口 - 不仅是 445,还有 137、138 和 139 - 并且可能涉及更多端口(新的 SMB3 严重依赖 NetBios,因此是 137...139)
您在 Windows 7 机器上写的“工作”信息让我假设您已将其设置为使用 SMB1,那么强制 Windows 10 机器执行相同操作将是更简单的步骤...不幸的是,Linux 似乎无法根据目标机器的需求自动选择所需的 SMB 协议
答案2
答案鹰275对我有用,但只有在我做了一些我在这里发布的额外研究之后。
我按照第一种方法在 Windows 10 计算机上启用了 SMB1https://winaero.com/blog/enable-smb1-sharig-protocol-windows-10/。
除了按照该帖子中的建议启用 SMB 1.0/CIFS 客户端外,我还必须启用 SMB 1.0/CIFS 服务器和 SMB 1.0/CIFS 自动删除。(我没有检查仅启用其中之一是否就足够了。)
此外,我不仅重新启动了 Windows 10 机器,还重新启动了 Ubuntu。
之后一切都顺利!