Chrome リモートデスクトップとは
Windows/Mac/Linux対応のクロスプラットフォーム型リモートデスクトップ接続サービス。
従来はChromeアプリとして公開されていたが、2019年6月にはWeb版が公開され、FirefoxのようなChrome以外のブラウザでも対応可能になった。
利用するためには、Googleアカウントが必要になる。
ホスト端末設定(リモート接続される側)
-
下記URLにアクセスし、上部ヘッダーの「リモートアクセス」を選択。
https://remotedesktop.google.com/ -
「リモートアクセスの設定」と出るため、「オンにする」をクリック。
※ Ubuntuの場合、初回は指示に従いchrome-remote-desktop_current_amd64.deb
をインストールする。 -
「名前の選択」は、接続するホスト名がデフォルトで付けられるが、任意で変更できる。
-
「PINの入力」は、リモート接続するための認証番号。6桁以上の数字を設定する。
-
「起動」を押してしばらく待つと、ステータスが「オンライン」となり、外部から接続可能状態になる。
ゲスト端末設定(リモート接続する側)
- ホスト設定に利用したGoogleアカウントでリモートデスクトップのURLにアクセスすると、先ほど設定したデバイスが表示される。
- 設定したPINを入力すると、リモートデスクトップ接続が開始される。
Ubuntu端末にリモート接続すると壁紙しか表示されない場合
まずはリモートアクセス設定画面から、ゴミ箱アイコンの「リモート接続を無効にする」を選択。
もしくはコマンドから停止させることも可能。
/opt/google/chrome-remote-desktop/chrome-remote-desktop --stop
設定ファイルは/opt/google/chrome-remote-desktop/chrome-remote-desktop
であり、必要に応じてバックアップを取っておく。
1. FIRST_X_DISPLAY_NUMBERの変更
Linuxには「X Window System」というGUIの基盤を提供する技術があり、アプリケーションをどのディスプレイに表示させるかを設定するDISPLAY環境変数がある(ここで言うディスプレイは物理的なモニタのことではない)。
Ubuntuホスト端末で以下のコマンドを打てば確認できる。
echo $DISPLAY
:0 // 出力結果 DISPLAY=(ホスト):(ディスプレイ).(スクリーン)
この場合、ホスト名が省略されているため、localhostの0番ディスプレイと解釈される。
設定ファイルのデフォルトでは使用するX_DISPLAY初期値が20になっているが、上記の結果から0番に変更する必要がある。
FIRST_X_DISPLAY_NUMBER = 20
↓
FIRST_X_DISPLAY_NUMBER = 0
2. get_unused_display_number()の修正
while文の箇所は操作を受け付けないディスプレイをパスする(使えるディスプレイを特定する)部分であり、ディスプレイ番号は先ほど指定したため、コメントアウトする。
@staticmethod
def get_unused_display_number():
"""Return a candidate display number for which there is currently no
X Server lock file"""
display = FIRST_X_DISPLAY_NUMBER
while os.path.exists(X_LOCK_FILE_TEMPLATE % display):
display += 1
return display
↓
@staticmethod
def get_unused_display_number():
"""Return a candidate display number for which there is currently no
X Server lock file"""
display = FIRST_X_DISPLAY_NUMBER
# while os.path.exists(X_LOCK_FILE_TEMPLATE % display):
# display += 1
return display
3. launch_sessionの修正
使用するホスト画面を明示するように修正
def launch_session(self, x_args):
self._init_child_env()
self._setup_pulseaudio()
self._setup_gnubby()
self._launch_x_server(x_args)
self._launch_x_session()
↓
def launch_session(self, x_args):
self._init_child_env()
self._setup_pulseaudio()
self._setup_gnubby()
# self._launch_x_server(x_args)
# self._launch_x_session()
display = self.get_unused_display_number()
self.child_env["DISPLAY"] = ":%d" % display
設定を保存したら、ホスト端末からリモートアクセスを再度立ち上げる。
参考