如何在 macOS 中停用 SMB 1 或 NetBIOS

本文說明如何停用 SMB 1 或 NetBIOS 以防止故障轉移。

本文旨在提供企業與教育機構系統管理者參考。

建立傳出的連線至伺服器時,SMB 1 和 NetBIOS 在 macOS 中預設為啟用,以提升與第三方產品的相容性。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
發佈日期: