私は通常、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接続することができます。
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のリモードデスクトップを起動して接続です。
これで接続できました。
もし、これでも接続できない場合には・・・
これでもエラーが発生している場合には、以下の方法を試してみてください。
今回の自宅環境では発生しませんでしたが、環境によっては発生する場合もあるそうです。
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のコマンドは知っているぜ、という中級者向けの内容でわかりやすいです。
以上となります。
コメント