Ubuntu20.04/22.04でリモートデスクトップ

     本記事では、Ubuntu20.04、及びUbuntu22.04にリモートデスクトップサーバ(XRDP)をインストールする方法と、別PCからUbuntuのデスクトップにアクセスする方法を説明します。どちらのバージョンも、インストール方法や設定方法は同じです。
 UbuntuにXRDPをインストールすることによって、Ubuntuのデスクトップ環境を遠隔のPCから操作できるようになります。

関連記事
ベアボーンのミニPCを組み上げてみた
Ubuntu20.04 LTSのインストール
Ubuntu20.04 管理者権限(sudo)の設定
Ubuntu20.04に固定IPアドレスを設定する
Ubuntu20.04 SSHサーバのインストール
Ubuntu20.04でリモートデスクトップ(この記事)

リモートデスクトップとXRDPについて

 ここでいうデスクトップとは、WindowsやMACのような、グラフィカルなPC操作環境のことをいいます。UbuntuはLinuxサーバOSの1つですが、デスクトップPCのOSとしても利用できます。

ubntuのrdp接続.drawio

 XRDPは、Linuxサーバに、リモートデスクトップサーバの機能を提供するアプリケーションです。
 XRDPの通信には、RDPプロトコルを使います。RDPはMicrosoftが開発したリモートデスクトップの通信プロトコルであり、通信は暗号化されます。
 WindowsにはWindowsアクセサリに「リモートデスクトップ接続」というRDPクライアントアプリが付属しています。また、MAC/iphone/ipad、Andoroid/ChromeBookのRDPクライアントアプリもあります。したがって、UbuntuにXRDPをインストールすると、Windows、Apple、Google、Linuxなど、別端末から遠隔でUbuntuのデスクトップ環境を使うことができるようになります。Ubuntuのためのモニター/キーボード/マウスが不要になるので、私はとても重宝しています。
 なお、XRDPはマルチモニタにも対応しています。

UbuntuへのXRDPのインストール

 UbuntuのXRDPは、Ubuntuの公式リポジトリ(ソフトウェア配布元)から配布されています。Ubuntuの公式リポジトリで配布するソフトウェアは、Ubuntuのソフトウェアパッケージマネージャのaptコマンドを使って、簡単にダウンロード&インストールすることができます。

XRDPを使うときは、IPアドレスを固定IPアドレスにすることをオススメします(方法はこちら)。Ubuntuが再起動される度にIPアドレスが変更になると、接続の際、毎回UbuntuのIPアドレスの確認が必要になってしまいます。

 SSHでUbuntuに接続するか、Ubuntuデスクトップの「端末」アプリを起動し、以下のコマンドを実行します。

$ sudo apt update
$ sudo apt insatall xrdp

 1行目は、Ubuntuのローカルに保存されているリポジトリの情報を、ネット経由でリポジトリを参照して最新化しています。
 2行目でXRDPをインストールしています。これでインストールは完了です。

 以下は、XRDPの起動と、OS再起動時にXRDPを自動起動する設定です。XRDPインストール時に自動で実行&設定されていると思いますが、念のため追記しておきます。

XRDPの起動

$ systemctl start xrdp

Ubuntuの再起動時にxrdpを自動起動する設定

$ systemctl enable xrdp

WindowsPCからのアクセス

 Windowsアクセサリの中にある、「リモートデスクトップ接続」を開きます。

  コンピュータの欄でUbuntuサーバのIPアドレスを入力し、オプションの表示を開きます。

01.接続を開く

ユーザー名の欄にUbuntuのユーザアカウントを入力し、「資格情報を保存できるようにする」をチェック。

02.設定画面でユーザ名を入れて資格情報を記憶

資格情報入力画面が表示されます。
パスワードを入力してOKをクリック。

03.パスワードを入力

 元の画面に戻ります。
最後に接続ボタンをクリック。

02.設定画面でユーザ名を入れて資格情報を記憶

「このリモートコンピュータのIDを識別できません」の警告がでます。これは、WindowsがUbuntuのRDPサーバの証明書が安全であるかを確認できないからです。ここは「このコンピュータへの接続について今後確認しない」をチェックし、「はい」をクリックします。
 「はい」をチェックすることによって、WindowsにUbuntuのRDPサーバ(XRDP)の証明書が登録されます。以後はこの証明書を使ってUbuntu RDPサーバ(XRDP)のなりすましをチェックします。「はい」をチェックしない場合、毎回この警告が表示されます。

04.サーバ公開鍵も記憶して以後警告を出さない

 Ubuntuのデスクトップ環境のログイン画面が表示されます。
 ログインすると、シンプルなUbuntuのデフォルトテーマのデスクトップ画面が現れます。デスクトップ画面左上の「アクティビティ」ボタンを押して、アプリケーションを起動したり、デスクトップのテーマ設定を変えたりして、Ubuntuのデスクトップ環境を活用ください。サーバアプリはもちろんのこと、デスクトップアプリもいろいろあるようです。
 最初は癖があって使いづらいかもしれませんが、マルチモニタでも使えるし、慣れると結構いい感じです。Window操作のショートカットをたくさん覚えると良いかもしれません。

05.Ubuntuデスクトップ画面

Ubuntuに接続すると画面が真っ黒になるとき

 Ubuntuのデスクトップ環境(Gnome)は、1ユーザにつき1つしか接続できません。このため、ローカルホストでデスクトップ環境にログインした状態にしていると、リモートデスクトップ接続ができません。この状況でリモートデスクトップ接続をすると、リモートデスクトップの画面が真っ黒に表示されます。
 このような場合は、ローカルホストのUbuntuデスクトップからログアウトしてみましょう。

 また、リモートデスクトップを利用する場合は、Ubuntuのデスクトップ自動ログイン機能を「オフ」にしておくことをおすすめします。ローカルホストに意図せずログイン状態になり、リモートデスクトップで画面が真っ黒になることを避けることができます。
 自動ログイン機能の設定は、「設定」→「ユーザ」の画面で、「自動ログイン」のスイッチを「オフ」にします。

画像10

リモートデスクトップの動作が遅いとき

 RDP接続は、Web(http)通信と比べると通信環境の影響を受けやすいようです。特にUbuntuのRDPサーバ(XRDP)は、WindowsのRDPサーバよりも通信環境がデスクトップの反応速度や使い勝手を大きく左右するようです。
 我が家のWifi環境があまりよろしくない、モニタの1つが4Kモニタ、というのも影響していると思いますが、最初にWifi経由でリモートデスクトップ接続をしたところ、自宅LAN内での接続にも関わらず、入力の反応が遅かったり、動作が不安定になったりして非常に使いづらかったです。もちろん、Ubuntuを動かしている自慢のミニPC(NUC11)はXRDPを動かしたところで、負荷はスカスカの状態でした。そこで、ネットワークの状況を調べてみました。RDPが消費するネットワーク帯域は大したことありませんでしたが、通信遅延が大きい状況でした(ping測定で30msec~200msec程度)。

 このような状況となった場合、解決策は2つあります。
 一番手っ取り早いのは、通信するサーバとクライアントを有線LANで接続すること。
 有線接続に変更した後は、ping測定の遅延も1msec以下になり、最高画質の設定でも問題なくリモートデスクトップができるようになりました。
 もう1つの方法は、RDPクライアントアプリ(Windowsの「リモートデスクトップ接続」など)のオプション設定で、画質を落とすこと。この対応をするとやや画面は粗くなりますが、通信遅延の大きいWifi環境でも安定して使えるようになりました。

 通信遅延が大きいネットワークでリモートデスクトップをしたときのWindows側の設定も紹介しておきます。
 リモートデスクトップ接続アプリのオプション設定を開き、画面タブをクリック。画面の色のセクションで一番小さい「High Color(15ビット)」を選択。

06.オプションで色の階調を減らす

つづいて、エクスペリエンスタブをクリックし、パフォーマンス最適化の選択でモデム(56kbps)か、高レイテンシ(2種類あります)の選択肢を設定。

07.通信品質を下げる

 最後に、Ubuntuのデスクトップテーマで背景画面を真っ黒にしました。見た目はあまりよくないですが、遅くて不安定なのと比べると良くなりました。

 最後に少しだけ考察を。Windowsのリモートデスクトップ接続の設定をデフォルトの「自動設定」にすると、クライアントソフトはWindowsのデスクトップサーバを前提に設定を自動チューニングするため、UbuntuのXRDPとは設定のチューニングがあわなくなるのかもしれません。NW品質がよければ何の問題もないのですが、ネットワークに起因してリモートデスクトップの反応が遅いときは試してみてください。



この記事が気に入ったらサポートをしてみませんか?