Ubuntu 18.04 LTSは、ディスプレイマネージャがGDMとなり、従来の方法ではx11vncでのリモート接続ができなくなりました。色々試した結果、ディスプレイマネージャをLightDMへ変更する事で、リモート接続ができるようになりましたので、手順を解説します。

本ページ記述の内容は、2018年10月時点のUbuntu 18.04 LTS上で確認したものです。関連ソフトのアップデートにより、状況が変わるかもしれませんのでご了承ください。アップデート情報やより良い方法がありましたらコメントをいただけると幸いです。

ディスプレイマネージャの変更

LightDMを導入する。

$ sudo apt install lightdm

インストールの途中で、デフォルトのディスプレイマネージャを選択する画面が表示されるので、LightDMを選択しておく。

サーバPCを再起動すると、ログイン画面がLightDMで表示される。

インストール

以下の手順で、x11vncを導入する。

$ sudo apt install x11vnc

パスワードファイルの作成

$ x11vnc -storepasswd
Enter VNC password:  ← パスワード入力
Verify password:     ← パスワード確認入力
Write password to /home/ユーザー名/.vnc/passwd?  [y]/n 
Password written to: /home/ユーザー名/.vnc/passwd

動作テスト

一度、ユーザ権限でx11nvcを実行する。

$ x11vnc -auth guess -display :0 -rfbauth /home/USER1/.vnc/passwd -rfbport 5900
 -forever -loop -noxdamage -repeat -shared  ← 1行で入力する

別PCのVNCクライアントから接続して動作確認する。接続先は「サーバPCアドレス」または「サーバPCアドレス:0」とすればOK。

問題なければ、[Ctrl+C]で終了する。

自動起動の設定

サーバPC起動時にsystemdで自動起動するようユニットファイルを作成する。

$ sudo nano /etc/systemd/system/x11vnc.service
[Unit]
Description=x11vnc (Remote access)
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -display :0 -rfbauth /home/USER1/.vnc/passwd -rfbport 5900
 -forever -loop -noxdamage -repeat -shared  ← 1行で記述する
ExecStop=/bin/kill -TERM $MAINPID
ExecReload=/bin/kill -HUP $MAINPID
KillMode=control-group
Restart=on-failure

[Install]
WantedBy=graphical.target

systemdへ登録して起動する。

sudo systemctl daemon-reload
sudo systemctl enable x11vnc
sudo systemctl start x11vnc

VNCクライアントから「IPアドレス」または「IPアドレス:0」で接続するとパスワード入力画面が表示されるので、設定したパスワードを入力すると、Ubuntuのログイン画面が表示される。

課題

これで、Ubuntu 16.04 LTSと同じ接続環境が構築できたが、ログイン画面でユーザーのパスワードを入力して[Enter]を押してログインするとVNCセッションが切れる場合がある。この場合、再度VNCクライアントから接続すれば、ログイン後のデスクトップが表示される。

ログイン時にVNCセッションが切れない場合もあるが、その条件が不明だ。もし対処方法が分かる方がいれば、教えてほしい。

2018/10/28にコメントを頂きました。「VNCで接続後、ログイン画面でパスワード入力後[Enter]を押さず、矢印マーク(>)をクリックする」と、VNCセッションが切れずにログインできるとの事です。何度か試しましたが、この方法だとVNCセッションが切れないようです。現時点では、これがベターな解でしょうね(^^;)

情報提供、ありがとうございました!