Linux

CentOS7へRDP接続する方法(xrdpを利用)

Linux

私は通常、CentOSサーバに対してはssh接続して設定などを行っています。

今回はCentOSをサーバ用途としてではなく、開発用PCとしてVSCodeをインストールして使いたいと思います。

ただし、CentOS上でVSCodeを使うためにはGUIで利用する必要があります。

そこで今回は、CentOS7にRDP経由で接続するため「xrdp」のインストール方法および利用方法について紹介したいと思います。

xrdpとは

xrdp はオープンソースで開発されている Remote Desktop Protocol のサーバソフトウェアです。

xrdpは、RDP(Microsoftリモートデスクトッププロトコル)を使用してリモートマシンにグラフィカルログインを提供します。 xrdpは、FreeRDP、rdesktop、NeutrinoRDP、Microsoftリモートデスクトップクライアント(Windows、macOS、iOS、Android用)など、さまざまなRDPクライアントからの接続を受け入れます。

WindowsPCにはすでにRDPがインストールされているので、Linux(今回はCentOS7)側にxrdpをインストールするだけでRDP接続することができます。

http://xrdp.org/

xrdpのインストール方法

CentOSマシンの準備

CentOSのインストールなどの手順については割愛させていただきますが、CentOSの環境を準備してください。

今回、私はHyper-V上のCentOSを利用しました。

GUI(Genome Desktop)のインストール

当然ですが、CentOS側にGUI環境を用意しておく必要があります。

CentOS7ではデフォルトが「最小限のインストール」の為、そのままインストールするとGUI環境がインストールされてません。

実はここでまったのは内緒です・・・

// GNOME Desktopをインストール
# yum groupinstall "GNOME Desktop"

// 起動時のランレベルも変更します
// まずは確認
# systemctl get-default
multi-user.target

// 変更します
# systemctl set-default graphical.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.

// 再起動
# shutdown -r now

xrdpのインストール

xrdpをインストールするためにはEPELのリポジトリを利用する必要があるためインストールします。

今回はxrdpのインストールだけのワンタイムでの利用なので、epel.repoファイルを変更して無効化しておきます。

# yum -y install epel-release


# vi /etc/yum.repos.d/epel.repo
enable = 1
を
enable = 0
に変更

そうしたら、ワンタイムでepelリポジトリを利用してxrdpとtigervnc-serverをインストールします。

tigervnc-serverのインストールも必要になります。

# yum -y --enablerepo=epel install xrdp
# yum -y --enablerepo=epel install tigervnc-server

// インストールされているか確認
# rpm -qa | grep -e xrdp -e tigervnc-server
tigervnc-server-1.8.0-19.el7.x86_64
tigervnc-server-minimal-1.8.0-19.el7.x86_64
xrdp-0.9.14-3.el7.x86_64

xrdpエラーの対応

インストール後にそのまま利用しようとすると、ログインしてもエラーが表示されて、ログオン画面に戻ってしまう現象が発生します。

その対応として以下のxrdpの設定ファイルを修正します。

# vi /etc/xrdp/xrdp.ini
max_bpp=32
になっている部分を
max_bpp=24
に変更します。

修正が終わったらサービス起動+自動起動設定です。

# systemctl start xrdp
# systemctl enable xrdp

CentOSへのRDP接続

最後に動作確認します。Windowsのリモードデスクトップを起動して接続です。

ここで注意点です。画面の色をTrue Color(24ビット)に設定してください。

32ビットはもちろんですが、15ビットや16ビットを指定しても接続に失敗します。

これで接続できました。

もし、これでも接続できない場合には・・・

これでもエラーが発生している場合には、以下の方法を試してみてください。

今回の自宅環境では発生しませんでしたが、環境によっては発生する場合もあるそうです。

VPC接続を明示的に設定しているようです。

# cd /lib/systemd/system
# cp vncserver@.service vncserver@:10.service
# vi vncserver@:10.service
// USERの部分を書き換え、この場合はrootでログオンする
ExecStart=/usr/bin/vncserver_wrapper <USER> %i
↓
ExecStart=/usr/bin/vncserver_wrapper root  %i

// rootで実行
# vncpasswd

// 起動
# systemctl daemon-reload
# systemctl enable vncserver@:10.service

CentOS7の学習にオススメの書籍

こちらの書籍が私のオススメです。

すでにLinuxのコマンドは知っているぜ、という中級者向けの内容でわかりやすいです。

以上となります。

コメント