ログイン後にVNC接続する方法
Ubuntu 18.04にVNC接続する簡単な方法は、設定>共有>画面共有=オン、にすることです。
ただし、この方法は、本体側がログイン画面のままでは、VNC接続できないんですね。本体側のデスクトップのログイン画面でログインすると、外部PCからVNC接続できるようになります。
外部からGUI操作したいのに、本体側でログイン操作しなくてはいけないので、少し面倒でした。
ログイン画面にVNC接続したいよね
ログイン前にVNC接続する方法
最近、解決方法が見つかりました。ほとんど、参考URLのまんまです。
まず、さきほど設定した、設定>共有>画面共有をオフに戻します。
Ubuntu 18.04からデスクトップマネージャーがgdmになりましたが、lightdmに変更する必要があります。
$ sudo apt install lightdm
Code language: Bash (bash)
次に、x11vncをインストールします。
$ sudo apt install x11vnc
Code 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.passwd
Code language: Bash (bash)
x11vncを起動します。外部PCでVNCクライアントを起動して、VNC接続できるか動作テストします。
$ sudo x11vnc -auth guess -display :0 -rfbauth /etc/x11vnc.passwd -rfbport 5900 -forever -loop -noxdamage -repeat -shared
Code 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.target
Code language: Bash (bash)
systemdに登録して、x11vncを起動します。
$ sudo systemctl daemon-reload
$ sudo systemctl enable x11vnc
$ sudo systemctl start x11vnc
Code language: Bash (bash)
外部PCでVNCクライアントを起動して、VNC接続します。
Enterキーを打たないでね、「>」をクリックするのよ
ついEnterキーを打っちゃうんだよね〜
ログイン画面でパスワードを入力した後、パスワード欄の右端の「>」をクリックして、ログインしてください。
「>」ではなく、うっかり[Enter]キーを打つと、いったんVNC接続が切れてしまいます。再度VNC接続すると、ログイン後の画面になっているんですが、右上のログアウトメニューを表示しても、すぐに閉じてしまったり、VNC接続をやり直すと黒い画面になったり、どうもおかしい動きでした。
こうなったときは、別のPCからSSH接続して、lightdmを再起動してください。本体側がログイン画面に戻っているので、あらためて、VNC接続すると、ログイン画面が表示されるはずです。
$ sudo service lightdm restart
Code language: Bash (bash)
参考URL