Ubuntu 18.04に、ログイン前にVNC接続するには

ログイン後にVNC接続する方法

Ubuntu 18.04にVNC接続する簡単な方法は、設定>共有>画面共有=オン、にすることです。

ただし、この方法は、本体側がログイン画面のままでは、VNC接続できないんですね。本体側のデスクトップのログイン画面でログインすると、外部PCからVNC接続できるようになります。

外部からGUI操作したいのに、本体側でログイン操作しなくてはいけないので、少し面倒でした。

ログイン画面にVNC接続したいよね

ログイン前にVNC接続する方法

最近、解決方法が見つかりました。ほとんど、参考URLのまんまです。

まず、さきほど設定した、設定>共有>画面共有をオフに戻します。

Ubuntu 18.04からデスクトップマネージャーがgdmになりましたが、lightdmに変更する必要があります。

$ sudo apt install lightdm

次に、x11vncをインストールします。

$ sudo apt install x11vnc

vncパスワードを /etc/x11vnc.passwdに保存します。

$ sudo x11vnc -storepasswd /etc/x11vnc.passwd Enter VNC password: Verify password: Write password to /etc/x11vnc.passwd? [y]/n y Password written to: /etc/x11vnc.passwd # chmodは必要ないかもしれません $ sudo chmod 644 /etc/x11vnc.passwd

x11vncを起動します。外部PCでVNCクライアントを起動して、VNC接続できるか動作テストします。

$ sudo x11vnc -auth guess -display :0 -rfbauth /etc/x11vnc.passwd -rfbport 5900 -forever -loop -noxdamage -repeat -shared

サービスに登録するためのファイルを用意します。

$ sudo vim /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 /etc/x11vnc.passwd -rfbport 5900 -forever -loop -noxdamage -repeat -shared ExecStop=/bin/kill -TERM $MAINPID ExecReload=/bin/kill -HUP $MAINPID KillMode=control-group Restart=on-failure [Install] WantedBy=graphical.target

systemdに登録して、x11vncを起動します。

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

外部PCでVNCクライアントを起動して、VNC接続します。

Enterキーを打たないでね、「>」をクリックするのよ

ついEnterキーを打っちゃうんだよね〜

ログイン画面でパスワードを入力した後、パスワード欄の右端の「>」をクリックして、ログインしてください。

「>」ではなく、うっかり[Enter]キーを打つと、いったんVNC接続が切れてしまいます。再度VNC接続すると、ログイン後の画面になっているんですが、右上のログアウトメニューを表示しても、すぐに閉じてしまったり、VNC接続をやり直すと黒い画面になったり、どうもおかしい動きでした。

こうなったときは、別のPCからSSH接続して、lightdmを再起動してください。本体側がログイン画面に戻っているので、あらためて、VNC接続すると、ログイン画面が表示されるはずです。

$ sudo service lightdm restart

参考URL

Ubuntu 20.04 LTSでのx11vnc設定手順
タイトルとURLをコピーしました