自从 Linux 内核升级到 4.13 版后,我的运行 Arch Linux 的笔记本电脑一开始就无法再连接到家庭网络中的 Windows 7 机器了。我发现这是由于 SMB 协议从版本 1 更新到版本 3 造成的,而且由于 Windows 7 运行的是 2.1 版,所以 Arch 笔记本电脑不再兼容它。
我现在的问题是:起初我不得不将其重新设置为版本 1,以便能够将我的 Arch 笔记本连接到 Windows 7 机器,尽管 Windows 7 应该使用协议版本 2.1(客户端最大协议 = NT1,而不是 SMB2 或 SMB2_10)。现在(无论出于什么原因)它可以与 SMB2_10 一起使用,甚至根本不使用“客户端最大协议”选项,但是当我使用 smbclient -L 连接时,我收到消息,提示客户端“正在重新连接 SMB1 以列出工作组”,当我强制 smbclient 使用 2.1(客户端最小协议 = SMB2_10)时,我收到响应:“SMB1 已禁用 - 没有可用的工作组。”
是否可以设置我的 Samba 配置,以便客户端在连接到 Windows 7 时实际使用 SMB 2.1?
答案1
这看起来好像您实际上已经在 Windows 7 端禁用了 SMB2(可能是作为您之前故障排除的一部分)。
Linux 上的 Samba 4.x 应自动与另一方协商正确的 SMB 版本。首选 SMB3 并回退到 SMB2(因为 Win7 不支持 SMB3,因此您需要 Windows 8 或 10)。
应在所有地方禁用 SMB1。它已经过时,并且存在重大安全风险。(通过 SMB1,可以相对轻松地获得 Windows 网络共享上的管理员访问权限。)