Ubuntu 18.04(GDM)にx11vncを入れてリモートデスクトップ

公開 | 更新 
図3.別ポートのデスクトップ画面へアクセス

以前、 Ubuntu 仮想マシンへの リモートアクセス に VNC を使いましたが、それはローカルとは異なるセッションを利用するものでした。対して、TeamViewerAnyDeskのように現セッションへ リモートアクセス する仕組みを、今回は x11vnc を使って構築してみます。

現在の構成を確認

今回リモートアクセスしたいと思っているのが、こちらのUbuntu 18.04デスクトップ機。

現在使用中のディスプレイマネージャは、gdm3です。

 

x11vncのインストール

現在、ローカルディスプレイへ表示しているセッションをリモートアクセスするために、x11vncをインストールします。

 

VNCパスワードの生成

x11vncのインストールを終えたら、リモートアクセス許可に必要なパスワードを生成します。

デフォルトでは、ホームディレクトリ下の隠しフォルダ内にパスワードファイルが生成されますが、複数ユーザ時など普遍的な場所へ配置したい場合は、 /etc/ 下に配している例もネットで見ることができました。

 

ディスプレイ番号を確認してx11vncを試行

x11vncを早速試す前に、現在の画面のディスプレイ番号を収めた環境変数 DISPLAY をチェック。

確認のため、簡単なオプションのみで動かしてみます。

ネットワーク上の別PCから、5900番へVNC接続できました。

クライアント側で切断すると、x11vncプロセスも終了します。引き続き待ち受けたいのであれば、 -forever オプションを使います。

 

サービスへ登録

常時待ち受け状態にするために、次の内容のサービスファイルを作成しました。

サービスを登録、開始すると…

以下、起動にコケるループが延々と続き、その原因は xauth: unable to generate an authority file name とある通り、 -auth guess がguessできていないことにあるのだそう。

Xauthorityファイルの場所を明示的に付与する必要があるので、その場所を確認します。

サービスファイルを修正します。

今度はうまく立ち上がりました。

 

ログイン画面へのリモートアクセスは

gdmの場合、このサービス設定でリモートアクセス可能なのは、ログイン後のデスクトップ画面に限られます。

つまりPCの再起動後は、ローカルでユーザがログインしない限り、リモートアクセスできないことに。

これはログイン前後でディスプレイ番号やXauthorityファイルの場所が異なるためで、いくつかの対処法のうち今回は少し泥臭いものの比較的理解しやすい、

ログイン画面へリモートアクセスするためだけのx11vncサービスをもう1つ立ち上げる

を試してみます。

先ほどXauthorityファイルを探していたときに、ログイン画面用のファイルは見つけていました。

ログイン画面用に作成したサービスファイルは、次の通りです。

2つのx11vncサービスの違いと用途をまとめてみました。

 

実際に再起動して、ログイン前の状態にあるPCの5901番ポートへアクセスしてみます。

図1.ログイン画面へアクセス

図1.ログイン画面へアクセス

ログインパスワードを入力後、ログイン画面は真っ黒に。

図2.ログイン画面のログイン後

図2.ログイン画面のログイン後

慌てず5900番ポートへアクセスすると、デスクトップ画面が開いていました。

図3.別ポートのデスクトップ画面へアクセス

図3.別ポートのデスクトップ画面へアクセス

 

この仕様を嫌ってか、ディスプレイマネージャを軽量なlightdmに乗り換えてしまう人も多いのですが、あまり現行のシステムを大きく変えることなく、リモートアクセスできるようにしたかったので、一段落です。

 

created by Rinker
¥1,861 (2024/03/03 14:27:59時点 Amazon調べ-詳細)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA