如何在 macOS 中停用 SMB 1 或 NetBIOS

了解如何停用 SMB 1 或 NetBIOS 以避免故障轉移。

本文旨在供企業和教育系統管理者參考。

在輸出連線至伺服器時,macOS 會預設啟用 SMB 1 和 NetBIOS,以改善與第三方產品的相容性。macOS 將會嘗試使用更高版本的 SMB 以及 DNS 和連接埠 445,並在有需要時故障轉移至連接埠 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 檔案並不存在。如要建立此檔案並套用上述兩項變更,請使用以下「終端機」指令:

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
發佈日期: