WndowsPCの標準機能であるリモートデスクトップからUbuntu17.04のServerデスクトップ画面に接続できるようにする設定を紹介します。Ubuntu16.04LTSではリモートデスクトップの導入は一苦労でした。それに比べて17.04ではaptコマンド一つで簡単に導入できます。17.04はサポート期間が10ケ月と短いですが最新環境に追随してUPDATEしていくなら十分な期間でしょう。尚、Ubuntu17.04Serverのインストール手順はこちらの記事を参考にしてください。
目次
1.Desctopのインストール
(1)Mateデスクトップインストール
Server環境に比較的軽くてサポートも期待できるMateデスクトップをインストールします。以下のaptコマンド一つです。
1 |
$ sudo apt install -y ubuntu-mate-desktop mate-desktop-environment mate-desktop-environment-extra |
インストール終了まで結構な時間がかかります。気長に待ちましょう。
(2)リブート
Mateデスクトップのインストールが済んだらリブートをしてデスクトップ表示を確認します。
1 |
$ sudo reboot |
リブート後以下のMateデスクトップ画面が表示されました。
2.xrdpのインストール
(1)インストール予定バージョン確認
以下のコマンドでインストール予定のxrdpバージョンを確認します。
1 2 3 4 5 6 7 |
$ apt-cache policy xrdp xrdp: インストールされているバージョン: (なし) 候補: 0.9.1-7build1 バージョンテーブル: 0.9.1-7build1 500 500 http://jp.archive.ubuntu.com/ubuntu zesty/universe amd64 Packages |
0.9.1-7build1が導入できるようです。
(2)xrdpのインストール
以下の1行だけで簡単です。
1 |
$ sudo apt install -y xrdp |
3.デスクトップセッションの設定
以下の通りホームディレクトリで.xsession情報を登録します。
1 2 3 4 5 6 7 |
$ cat <<EOF > ~/.xsession export GTK_IM_MODULE=ibus export QT_IM_MODULE=ibus export XMODIFIERS="@im=ibus" ibus-daemon -rdx mate-session EOF |
4.リモートデスクトップ接続
以下の通り、Windowsからリモートデスクトップで接続します。
Ubuntu17.04 ServerのIPは192.168.1.12とします。
xrdpの認証画面が表示されます。ユーザーとパスワードを入力します。
接続できました。
5.xrdp起動エラー対応
実は最初の導入手順ではxrdpの起動に失敗しリモートデスクトップ接続はできませんでした。エラーの詳細は以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ journalctl -xe 6月 22 22:56:49 ubuntu17Docker systemd[1]: xrdp.service: PID file /run/xrdp/xrdp.pid not readable (yet?) after start: No such file or directory 6月 22 22:56:49 ubuntu17Docker xrdp-sesman[1824]: (1824)(140658444092800)[ERROR] bind error on port '3350': 22 (Invalid argument) 6月 22 22:56:49 ubuntu17Docker xrdp-sesman[1824]: (1824)(140658444092800)[DEBUG] Closed socket 7 (AF_INET6 :: port 0) 6月 22 22:56:49 ubuntu17Docker systemd[1]: xrdp-sesman.service: Control process exited, code=exited status=1 6月 22 22:56:49 ubuntu17Docker systemd[1]: xrdp-sesman.service: Unit entered failed state. 6月 22 22:56:49 ubuntu17Docker systemd[1]: xrdp-sesman.service: Failed with result 'exit-code'. 6月 22 22:56:51 ubuntu17Docker xrdp[1849]: (1849)(139843662080832)[INFO ] starting xrdp with pid 1849 6月 22 22:56:51 ubuntu17Docker xrdp[1849]: (1849)(139843662080832)[ERROR] xrdp_listen_main_loop: listen error, possible port already in use 6月 22 22:56:51 ubuntu17Docker xrdp[1849]: (1849)(139843662080832)[DEBUG] Closed socket 11 (AF_INET6 :: port 0) 6月 22 22:56:51 ubuntu17Docker systemd[1]: xrdp.service: Daemon never wrote its PID file. Failing. 6月 22 22:56:51 ubuntu17Docker systemd[1]: Failed to start xrdp daemon. -- Subject: Unit xrdp.service has failed |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$ systemctl status xrdp ● xrdp.service - xrdp daemon Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled) Active: failed (Result: resources) since Thu 2017-06-22 23:03:33 JST; 12min left Docs: man:xrdp(8) man:xrdp.ini(5) Process: 1287 ExecStart=/usr/sbin/xrdp $XRDP_OPTIONS (code=exited, status=0/SUCCESS) Process: 1257 ExecStartPre=/bin/sh /usr/share/xrdp/socksetup (code=exited, status=0/SUCCESS) CPU: 10ms 6月 22 23:03:31 ubuntu17Docker systemd[1]: Starting xrdp daemon... 6月 22 23:03:31 ubuntu17Docker systemd[1]: xrdp.service: PID file /run/xrdp/xrdp.pid not readable (yet?) after start: No such file or directory 6月 22 23:03:33 ubuntu17Docker xrdp[1289]: (1289)(140189905668928)[INFO ] starting xrdp with pid 1289 6月 22 23:03:33 ubuntu17Docker xrdp[1289]: (1289)(140189905668928)[ERROR] xrdp_listen_main_loop: listen error, possible port already in use 6月 22 23:03:33 ubuntu17Docker xrdp[1289]: (1289)(140189905668928)[DEBUG] Closed socket 11 (AF_INET6 :: port 0) 6月 22 23:03:33 ubuntu17Docker systemd[1]: xrdp.service: Daemon never wrote its PID file. Failing. 6月 22 23:03:33 ubuntu17Docker systemd[1]: Failed to start xrdp daemon. 6月 22 23:03:33 ubuntu17Docker systemd[1]: xrdp.service: Unit entered failed state. 6月 22 23:03:33 ubuntu17Docker systemd[1]: xrdp.service: Failed with result 'resources'. |
調査したところgithubに投稿されたこの情報に関係がありました。
IPV6を無効にしてxrdpを起動すると失敗するらしい。
そういえば、Ubuntu16.04LTSにxrdpを導入する際にも見かけた情報だったような気が。。。。
Ubuntu 16.04 で最新の xrdp をビルドした
IPV6を使用しないからといって無効にしたらダメ、絶対ダメなのでした。
$ sudo vi /etc/sysctl.conf
+ net.ipv6.conf.all.disable_ipv6 = 1
6.日本語入力が出来ない場合
リモートデスクトップ接続したMATE画面で日本語入力ができない場合は以下の設定を実行してみてください。
②言語パックのインストール
1 |
$ sudo apt-get -y install language-pack-ja-base language-pack-ja ibus-mozc |
この順番でだめなら、②→ ①で試してみてください。
私は②→①でOKでしたがもしかして①だけでもOKかも知れません。
どなたか結果を報告してくださるとうれしいのですが。。。
7.参考にさせて頂いたサイト
ありがとうございます。