LoginSignup
25

More than 3 years have passed since last update.

Chrome リモートデスクトップ on Ubuntu

Posted at

Chrome リモートデスクトップとは

Windows/Mac/Linux対応のクロスプラットフォーム型リモートデスクトップ接続サービス。
従来はChromeアプリとして公開されていたが、2019年6月にはWeb版が公開され、FirefoxのようなChrome以外のブラウザでも対応可能になった。
利用するためには、Googleアカウントが必要になる。

ホスト端末設定(リモート接続される側)

  1. 下記URLにアクセスし、上部ヘッダーの「リモートアクセス」を選択。
    https://remotedesktop.google.com/

  2. 「リモートアクセスの設定」と出るため、「オンにする」をクリック。
    ※ Ubuntuの場合、初回は指示に従いchrome-remote-desktop_current_amd64.debをインストールする。

  3. 「名前の選択」は、接続するホスト名がデフォルトで付けられるが、任意で変更できる。

  4. 「PINの入力」は、リモート接続するための認証番号。6桁以上の数字を設定する。

  5. 「起動」を押してしばらく待つと、ステータスが「オンライン」となり、外部から接続可能状態になる。

ゲスト端末設定(リモート接続する側)

  1. ホスト設定に利用したGoogleアカウントでリモートデスクトップのURLにアクセスすると、先ほど設定したデバイスが表示される。
  2. 設定した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

設定を保存したら、ホスト端末からリモートアクセスを再度立ち上げる。

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25