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