重要:在進行此變更前,請先完成 SSH 設定
此設定會強制 所有螢幕共享連線都使用 SSH,包括來自同一個本機網路上的裝置的連線。一旦啟用,macOS 將只會接受來自 Mac 本機(localhost)的直接螢幕共享(VNC)連線。來自其他裝置的直接 VNC 連線將因此停止運作,不論它們來自網際網路、VPN,或你的本機網路。
在繼續之前,請確定你的 Mac 已啟用 遠端登入,而且 Screens 已設定為使用 安全連線,包括下方所述的 在本機連線上啟用。否則,Screens 將無法連線。
從 macOS 10.12 Sierra 開始,macOS 可以設定為只接受來自 Mac 本機(localhost)的內建螢幕共享服務連線。這可防止其他裝置直接連線到螢幕共享(VNC)服務,包括同一個本機網路上的裝置。
Screens 仍然可以先與 Mac 建立 SSH 連線,然後透過 SSH 將螢幕共享連線進行通道轉送。因此,所有連線到該 Mac 的 Screens 連線都會需要 SSH,包括本機連線。
開始之前
由於在進行此變更後將不再接受直接的螢幕共享連線,你的 Mac 必須啟用遠端登入(SSH)。
- 開啟 系統設定。
- 前往 一般 > 共享。
- 啟用 遠端登入。
- 確認你的 Mac 使用者帳號已獲准存取。
如果已安裝,你也需要依照下方說明,設定 Screens 和 Screens Connect 使用安全連線。
設定 Screens
在將螢幕共享限制為本機連線之前,請在 Screens 中編輯你已儲存的連線,並開啟 安全性 區段。
啟用 安全連線,並確認 在本機連線上啟用 也已開啟。
這一點很重要:一旦螢幕共享被限制為本機連線,Screens 即使在你的裝置與 Mac 位於同一個本機網路時,也必須使用 SSH。
設定 Screens Connect
如果你使用 Screens Connect,請開啟其設定,選取 一般,並啟用 使用遠端登入。
這可確保 Screens Connect 設定遠端連線時使用 SSH,而不是直接連線到螢幕共享服務。
將螢幕共享限制為本機連線
一旦已設定好遠端登入與上述 SSH 選項,請在 Mac 上開啟 終端機 並輸入:
sudo defaults write /Library/Preferences/com.apple.RemoteManagement.plist VNCOnlyLocalConnections -bool yes
在提示時輸入你的 Mac 使用者帳號密碼。
VNCOnlyLocalConnections 設定會指示 macOS 螢幕共享只接受來自 localhost 的直接 VNC 連線。
這表示:
- 來自網際網路的直接 VNC 連線將不再可用。
- 透過 Tailscale 或 ZeroTier 等 VPN 的直接 VNC 連線將不再可用。
- 來自本機網路上其他裝置的直接 VNC 連線將不再可用。
- Screens 必須先透過 SSH 連線,並將 VNC 連線透過 SSH 隧道轉送,無論該連線是遠端還是本機連線。
變更回復
如果你希望 macOS 螢幕共享再次直接接受網路連線,請開啟終端機並輸入:
sudo defaults write /Library/Preferences/com.apple.RemoteManagement.plist VNCOnlyLocalConnections -bool no
在再次嘗試連線之前,請等待幾秒鐘讓 macOS 套用變更。
變更生效後,Screens 就可以再次直接連線到螢幕共享(VNC)服務,包括透過你的本機網路或 VPN,而不需要 SSH 隧道。
如果你不再想使用安全連線,之後就可以停用 Screens 和 Screens Connect 中與 SSH 相關的設定。
重要: 一旦螢幕共享被限制為 localhost,Screens 必須對這台 Mac 的每一個連線都使用 SSH,即使你的裝置與 Mac 位於同一個本機網路,或該 Mac 出現在 附近 中也是如此。
若沒有 在本機連線上啟用,本機連線將會嘗試直接連線到 VNC 服務,並會失敗。