如何在 macOS 中停用 SMB 1 或 NetBIOS

了解如何停用 SMB 1 或 NetBIOS 以防止故障转移。

本文适用于企业和教育机构的系统管理员。

在与服务器进行出站连接时,macOS 中会默认启用 SMB 1 和 NetBIOS,以提高与第三方产品的兼容性。macOS 会尝试使用 DNS、端口 445 以及更高版本的 SMB,并且会在需要时故障转移至端口 139 和 SMB 1。您可以停用 SMB 1 或 NetBIOS 来防止这种故障转移。

要停用 SMB 1,请将下面这行内容添加到 /etc/nsmb.conf 文件中:

protocol_vers_map=6

要停用 NetBIOS,请将下面这行内容添加到 /etc/nsmb.conf 文件中:

port445=no_netbios

默认情况下,/etc/nsmb.conf 文件不存在。要创建一个 /etc/nsmb.conf 文件并应用上述两项更改,请使用以下“终端”命令:

echo "[default]" | sudo tee -a /etc/nsmb.conf
echo "protocol_vers_map=6" | sudo tee -a /etc/nsmb.conf
echo "port445=no_netbios" | sudo tee -a /etc/nsmb.conf

要撤销上述更改,您可以放心地删除 /etc/nsmb.conf 文件。

默认情况下,macOS 不接受 SMB 连接。如果您在文件共享偏好设置中将 Mac 电脑设置为文件服务器,则可以停用 SMB 1,同时继续允许 SMB 2 和 3 连接。请使用以下命令:

sudo scutil --prefs com.apple.smb.server.plist
get /
d.add ProtocolVersionMap # 6
set /
commit
apply
quit

要撤销上述更改,请运行以下命令:

sudo scutil --prefs com.apple.smb.server.plist
get /
d.add ProtocolVersionMap # 7
set /
commit
apply
quit

要停用 netbiosd 名称注册,请运行以下命令:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.netbiosd.plist

要确认 netbiosd 是不是没在运行,请运行以下命令。如果没有返回结果,则表示 netbiosd 没有运行:

sudo ps aux | grep -i netbiosd | grep -v grep

要撤销这个更改,请运行以下命令:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.netbiosd.plist
发布日期: