如何禁用 MacOS 的 SMBv3 协议
之前一直通过 macOS 连接到 Windows Server 2012 的 Samba 上正常使用,自从系统自动升级到macOS High Sierra 10.13.2 后,操作连接的共享时 Finder 反复卡死提示未响应,然后连软重启都无效。实在是不能忍受。本以为是和上次文件夹花屏一样的问题,“.DS_Store” 文件坏掉了,结果删除了共享中所有的 .DS_Store 文件仍然不行。于是怀疑是否是10.13.2的新系统版本对 Samba 做了版本更新导致的新 Bug,并尝试在 Windows Server 2012 中尝试关闭SMBv3。
Windows 8 和 Windows Server 2012 引入了新的 Set-SMBServerConfiguration
Windows PowerShell cmdlet。 通过此 cmdlet,你可以在服务器组件上启用或禁用 SMBv1、SMBv2 和
SMBv3 协议。注意 在 Windows 8 或 Windows Server 2012 中启用或禁用 SMBv2 时,也会启用或禁用 SMBv3。
之所以会出现此行为是因为这些协议共享同一个堆叠。运行 Set-SMBServerConfiguration cmdlet 后,无须重启计算机。 SMB v2/v3
检测:Get-SmbServerConfiguration | Select EnableSMB2Protocol
禁用:Set-SmbServerConfiguration -EnableSMB2Protocol $false
启用:Set-SmbServerConfiguration -EnableSMB2Protocol $true
在Windows Server 2012 的 PowerShell 中执行
Set-SmbServerConfiguration -EnableSMB1Protocol $false
命令将会立即生效。回到 macOS 中尝试重新连接Samba共享,在命令行中执行smbutil statshares -a
查看当前共享连接状态,已经变成了SMB v1,然后在Finder中操作,果不其然,不再卡死。
毕竟把 Windows Server 2012 服务器的Samba 设置为 1.0 版本非常不安全。但又不能仅屏蔽SMBv3。所以只好动手将 macOS 的 Samba 协议强制降低到SMBv2上(系统会出于安全角度默认自协商选用最高版本的协议进行连接)。
于是在 macOS 命令行中执行:
sudo sh -c "echo '[default]' >> /etc/nsmb.conf; echo 'protocol_vers_map=2' >> /etc/nsmb.conf"
此处的2代表设置为SMBv2,1就等于SMBv1(低版本的 Mac 系统曾经是使用“smb_neg=smb2_only”,现在失效了)。这会在 /etc 目录中添加一个 nsmb.conf 文件,系统检测到这个文件后就会默认通过 SMBv2 对外连接。修改后需要重启才能生效。(如果需要回到默认连接,只需要rm /etc/nsmb.conf
即可)。
您好,
最近一直在研究macos下多通道的加速问题,很多地方都搜到了您的文章,所以冒昧请教:
nas上通过ssh已经开启多通道加速,win下测试没有问题,现在通过一个imac的自带网口,和一个usb的转换网口,一直无法达到速度叠加的效果,咨询苹果天才,也无法给与回答,所以向您请教。耽误您时间了。谢谢。
双网卡应该在 macOS 上叫链路聚合。您在 iMac 上装个 Bootcamp 的 Windows 测试看看,排除一下是否是网络环境问题,最后再怀疑系统问题。但如果连接外置网卡,不如直接考虑 2.5G 的电口。
是的,准备买一个ac88u路由来测一下macos的链路聚合LACP,但是根据链路聚合的hash模式,估计希望不大,现在有针对群晖的2.5g绿联usb网卡,也买了新的m1芯片带万兆口的mini,两条路都走一下,到时候告诉您结果
苹果已于 10.13.3 修复了这个问题。
About the macOS High Sierra 10.13.3 Update
This update is recommended for all macOS High Sierra users.
The macOS High Sierra 10.13.3 Update improves the stability and security of your Mac and is recommended for all users.
This update:
Addresses an issue that could cause Messages conversations to temporarily be listed out of order
Resolves an issue that could cause your Mac to stop responding when connected to an SMB server
See Apple Security Updates for detailed information about the security content of this update.
您好,执行完之后重启,连接服务器,运行smbutil statshares -a还是显示smb3.0怎么办呢?
protocol_vers_map=2 改为 1 试试?