Setup Chrome Remote Desktop on Ubuntu desktop.
請參考: Linux開源免費的遠端桌面列表
介紹如何在Linux安裝Chrome遠端桌面 (Chrome Remote Desktop) ,以Ubuntu系統為例。
想要在離開Linux電腦之後,用另一台電腦遠端連線,繼續離開前的工作?Chrome遠端桌面可說是最簡單的方案之一了。
此乃Google研發的專有軟體,使用Google自研的遠端桌面協定。可以從外網連線到區網內的電腦,設定上十分簡單,不需要公共IP也不用VPN就能連線。
Chrome遠端桌面是跟著Google帳號走的,連線的時候會經過Google伺服器。只要在Linux電腦端設定好服務,再設定一個PIN碼,便能夠遠端連線,與遠端電腦傳檔案。
此外,Chrome遠端桌面尚有產生一次性存取碼,讓另一個Google帳號的用戶暫時連線進來,協助操作電腦的功能。
1. 前置條件#
Chrome遠端桌面的最低系統要求為Ubuntu 18.04,建議安裝含有圖形界面的Ubuntu Desktop桌面版。撰文當下我使用的系統為Ubuntu 24.04。
Chrome遠端桌面僅支援x86架構電腦,沒有ARM架構的套件。
需要登入桌面後才能使用Chrome遠端桌面,不可以停留在顯示管理器的登入畫面。
不能使用Wayland工作階段。撰文當下Chrome遠端桌面(版本v.131)尚未支援Wayland協定。如何確認自己是X11還是Wayland工作階段:執行指令
echo $XDG_SESSION_TYPE
。在登入Linux桌面的時候,右下角應該有選項能切換為X11工作階段。
附註:Chrome遠端桌面應該是登入「你已經開啟的桌面畫面」,但其實也可以在headless的Linux伺服器使用。如果遠端Linux電腦沒有登入桌面,或者沒有接上螢幕,則Chrome遠端桌面會在連線之後,透過Xvfb自動啟動一個headless的X視窗工作階段,類似xRDP那樣。但這不在本文討論範圍之內。
2. Linux端安裝Chrome遠端桌面#
以下全程在Linux桌面設定,需要使用圖形界面。要是你想用SSH遠端設定也行,就不需要在Linux端安裝Google Chrome了。
登入Linux桌面。
在Linux安裝Google Chrome瀏覽器,登入Google帳號。
造訪Chrome遠端桌面官網,選取「透過SSH設定」,點選「設定其他電腦」,依照指示,點選Debian Linux的連結,下載.deb檔
開啟Linux的終端機,用APT安裝
sudo apt install ./chrome-remote-desktop_current_amd64.deb
# 建立設定檔目錄
mkdir ~/.config/chrome-remote-desktop
# 將自身加入chrome-remote-desktop群組
sudo groupadd chrome-remote-desktop
sudo usermod -a -G chrome-remote-desktop $USER
繼續下一步,Google Chrome畫面會顯示一組Debian Linux指令,應該是
DISPLAY=
開頭。複製Debian Linux的指令,貼到終端機執行。上面那條指令會將Google帳號的認證資訊存到Linux電腦,並要你設定PIN碼。
設定Chrome遠端桌面服務開機自動啟動:
sudo systemctl enable --now chrome-remote-desktop@$USER
雖然叫做Chrome遠端桌面,但Chrome遠端桌面的服務會在Linux開機後自動啟動,所以不需要開著Google Chrome瀏覽器,只要登入桌面就夠了。
如果你希望Linux電腦每次開機都自動登入桌面環境,那麼可以設定自動登入目前使用者。
GNOME桌面:系統設定→ 系統 → 使用者,開啟自動登入。
KDE Plasma桌面:系統設定 → 啟動與關閉 → 登入畫面 → 行為,自動登入使用者
3. 使用Chrome遠端桌面連線到Linux桌面#
Chrome遠端桌面用網頁版就能連線了,不需要安裝APP。
在另一部裝置,開啟Chrome遠端桌面網頁,登入Google帳號,再點選「存取我的電腦」。
在遠端存取的頁面,應該會顯示登入Google帳號的電腦。
點選電腦,輸入PIN碼即可連線到Linux桌面。
用Chrome遠端桌面所上傳的檔案,會儲存到Linux桌面,路徑位於
~/桌面
或~/Desktop
。若你想要暫時讓不同Google帳號的用戶控制你的電腦,請到Chrome遠端桌面網頁,選「遠端支援」,按「分享這個螢幕畫面」,產生存取碼。
這樣另一個用戶便能用存取碼,暫時連線到你的Linux電腦了。Linux端要手動同意連線。
4. Chrome遠端桌面無法連線到現有桌面?#
這個bug似乎已經存在很久了。
如果你連線的時候並非連到現有Linux桌面的工作階段(session),而是要求新開一個工作階段,如下圖,那麼就是Chrome遠端桌面設定錯了,需要手動修正。
- 先停止Chrome遠端桌面服務。
sudo systemctl stop chrome-remote-desktop@$USER
- 下載Linux社群成員nightuser製作的patch,套用,將Chrome遠端桌面的啟動指令稿修改一番。
echo $DISPLAY | tr -d ':' >> ~/.config/chrome-remote-desktop/Xsession
cd /opt/google/chrome-remote-desktop
sudo cp chrome-remote-desktop chrome-remote-desktop_bak
sudo wget -qO- "https://gist.githubusercontent.com/nightuser/2ec1b91a66ec33ef0a0a67b6c570eb40/raw/b09250dcc9a28f09de93192a948dffb4963c2aca/use_existing_session.patch" | tail -n +5 > ~/use_existing_session.patch
sudo patch -Np1 -i ~/use_existing_session.patch
rm ~/use_existing_session.patch
- 重新啟動服務
sudo systemctl restart chrome-remote-desktop@$USER
之後重新連線,應該就會正常連線到現有工作階段了。
不過還是無法傳送遠端桌面的音訊,可能是因為Chrome遠端桌面對PipeWire支援度不佳之故。現在已經很少有Linux系統用PulseAudio了,硬是改裝以前的軟體似乎不是個好主意。所以這問題目前是無解。
5. Chrome遠端桌面搞壞了圖形環境?#
如果安裝Chrome遠端桌面後導致Linux開機黑畫面,請重裝試試。
- 停止服務
sudo systemctl stop chrome-remote-desktop@$USER
- 刪除設定檔
rm -r ~/.config/chrome-remote-desktop
- 解除安裝Chrome遠端桌面
sudo apt purge chrome-remote-desktop
- 然後重開機。
6. Chrome遠端桌面連線很卡?#
試著降低Linux桌面的解析度。
不然就換更快的網路(X)
因為Chrome遠端桌面是專有軟體~我們也不能拿它怎樣,出問題只有Google自己知道怎麼解決。
不過,你倒是可以用nethogs確認Linux哪些程式在搶網路,並透過工具限速,防止遠端桌面連線的頻寬被搶光。
需要低延遲遠端桌面的,參閱其他Linux開源遠端桌面連線方案。