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

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

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

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

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

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

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

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

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

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

$ sudo apt install lightdmCode language: Bash (bash)

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

$ sudo apt install x11vncCode language: Bash (bash)

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.passwdCode language: Bash (bash)

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

$ sudo x11vnc -auth guess -display :0 -rfbauth /etc/x11vnc.passwd -rfbport 5900  -forever -loop -noxdamage -repeat -sharedCode language: Bash (bash)

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

$ 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.targetCode language: Bash (bash)

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

$ sudo systemctl daemon-reload
$ sudo systemctl enable x11vnc
$ sudo systemctl start x11vncCode language: Bash (bash)

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

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

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

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

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

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

$ sudo service lightdm restartCode language: Bash (bash)

参考URL

x11vnc導入手順
タイトルとURLをコピーしました