Ubuntu 16.04のGNOMEクラシックデスクトップにVNC/XRDPでリモート接続する

tigervncserverをインストールしてGNOMEクラシックデスクトップにVNC/XRDPでリモート接続します。Unityへの接続方法はこちらを参照してください。

なお、tightvncserverからGNOME3へアクセスするとabortしてしまいます。

1 前準備

vnc4serverとtightvncserverを削除します(削除せずにupdate-alternativesコマンドでtigervncserverに切り替えても良いです)。

$ sudo apt remove -y vnc4server tightvncserver

gitとdevscriptsをインストールします。

$ sudo apt install -y git devscripts

GNOMEクラシックデスクトップ用のパッケージをインストールします。

$ sudo apt install -y gnome-panel metacity

2 tigervncserverのインストール

すでにtigervncのリポジトリにubuntu-xenial向けのdevscriptsファイルが格納されています。

xenial-updateに入れてほしいですね。

 

tigervncのリポジトリからソースコードをダウンロードします。

一応動作確認したコミットのハッシュ値でcheckoutしています。

$ mkdir tigervnc
$ cd tigervnc
$ git clone https://github.com/TigerVNC/tigervnc
$ cd tigervnc/
$ git checkout 044e2b87da7121ef6cbd59e88b101d7d8e282896 \
-b 044e2b87da7121ef6cbd59e88b101d7d8e282896

devscriptsファイルをシンボリックリンクでソースツリー直下に移動します。

$ ln -s contrib/packages/deb/ubuntu-xenial/debian

ビルドに必要なパッケージをインストールします。

$ sudo apt install -y $(grep Build-Depends: debian/control | \
sed -e 's/Build-Depends://g' -e 's/([^\)]*)//g' -e 's/,//g')

ビルドします。

$ chmod a+x debian/rules
$ fakeroot debian/rules binary

apt -f installで依存パッケージを解消しつつインストールします。

$ cd ..
$ sudo dpkg -i *.deb || (sudo apt -f install -y; sudo dpkg -i *.deb)
$ cd ..

3 ${HOME}/.xsessionrc

.vnc/.xstartupや.xsessionは利用せず、.xsessionrcでGNOMEクラシックデスクトップ用のプログラムを起動します。

$ cat <<EOF > ~/.xsessionrc
gnome-panel &
metacity &
EOF
$ rm ~/.xsession

4 VNCサーバを動かす

vncpasswdでVNC接続用のパスワードを作成します。

$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n

vncserverを起動します。VNCで接続するポートは5900 + ディスプレイ番号です。以下の例では5901となります。

$ vncserver

New 'ubuntu-16:1 (hiroom2)' desktop is ubuntu-16:1

Starting applications specified in /home/hiroom2/.vnc/xstartup
Log file is /home/hiroom2/.vnc/ubuntu-16:1.log

VNCクライアントでvnc://<server>:5901へアクセスします。

先ほど作成したVNC用のパスワードを入力すると以下の画面が得られます。

0001_VNC.png

5 XRDPサーバを動かす

XRDPをインストールして起動します。

$ sudo apt install -y xrdp
$ sudo systemctl enable xrdp
$ sudo systemctl restart xrdp

rdesktopやWindowsリモートデスクトップで接続して、ユーザ名とパスワードを入力すると以下の画面が得られます。

0002_XRDP.png