在 macOS 中安裝 noVNC ,透過瀏覽器來遠端桌面連線


一般在 AWS 上使用 macOS EC2 實例時,通常會需要透過 VNC Client 來進行連線操作。在有些環境下,可能不是這麼適合來安裝 VNC Client,這時就可以透過 noVNC 來安裝基於 html5 的網頁 Console 囉。

啟用 macOS 的 Screen Sharing 功能

AWS EC2 目前提供了幾個啟用 Screen Sharing 的官方文件,但其內容大同小異:

參考其中一篇來透過 SSH 啟用 Screen Sharing:

  1. 設定 ec2-user 密碼以提供 VNC 登入。
sudo passwd ec2-user
Changing password for ec2-user.
New password:
Retype new password:

################################### WARNING ###################################
# This tool does not update the login keychain password.                      #
# To update it, run `security set-keychain-password` as the user in question, #
# or as root providing a path to such user's login keychain.                  #
###############################################################################
  1. 啟用 Screen Share 服務:
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \
-activate -configure -access -on \
-restart -agent -privs -all
Starting...
Screen recording might be disabled. Screen Sharing or Remote Management must be enabled from System Settings or via MDM.
Screen control might be disabled. Screen Sharing or Remote Management must be enabled from System Settings or via MDM.
Activated Remote Management.
Stopped ARD Agent.
ec2-user: Set user remote control privileges.
ec2-user: Set user remote access.
Done.
  1. 安裝並啟用 noVNC 在 macOS 中,只需要幾行簡單的指令就可以安裝 noVNC 了:
git clone https://github.com/novnc/noVNC.git
cd noVNC/
./utils/novnc_proxy &
  1. 建立 Client 與 macOS 之間的 SSH Tunnel 由於 noVNC 預設是沒有 SSL 的,如果直接透過 Security Group 允許 Client 直接存取 6080,noVNC 會因為安全性為由而連線失敗。所以這邊必須使用 SSH Tunnel 來轉發 noVNC 的 Port 到 localhost
ssh -L 6080:localhost:6080 ec2-user@<EC2 Instance IP> -i .ssh/key.pem
  1. 打開 http://localhost:6080/vnc.html 就可以直接使用 ec2-user 的身分來登入了,如果遇到游標消失,可從左側的設定中打開:Settings => Advanced => Show Dot when No Cursor,如果需要調整解析度的話,可以看這一篇官方文件:修改 Mac 執行個體上的 macOS 螢幕解析度

noVNC  AWS 

See also

comments powered by Disqus