如何在 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