はじめに
WindowsからCentOSのGUI環境に業務でRDP接続するように設定する機会がありました。
今回は、ナレッジとしてこちらを残したいと思います。
環境
端末 : Windows 10 Pro
OS: CentOS7.7
[root@tspshell01 ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@tspshell01 ~]#
「最小限のインストール」にてOSインストール
前提条件
-
下記設定が完了していること
・ホスト名/IPアドレス設定
・DNS設定 -
「/etc/yum.repos.d」直下が初期状態であること
※下記が初期状態
[root@tspshell01 ~]# ll /etc/yum.repos.d/
合計 32
-rw-r--r--. 1 root root 1664 9月 5 2019 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 9月 5 2019 CentOS-CR.repo
-rw-r--r--. 1 root root 649 9月 5 2019 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 630 9月 5 2019 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 9月 5 2019 CentOS-Sources.repo
-rw-r--r--. 1 root root 6639 9月 5 2019 CentOS-Vault.repo
-rw-r--r--. 1 root root 314 9月 5 2019 CentOS-fasttrack.repo
[root@tspshell01 ~]#
- インターネット上に接続できていること
手順
手順についてはこちらになります。
①ファイアウォールを無効化する(もしくはポートを開放する)
②リポジトリファイルの読み込み
③GNOMEデスクトップのインストール
④epelリポジトリのインストール
⑤リモートデスクトップに必要なパッケージのインストール
⑥動作確認
では、解説していきます。
①ファイアウォールを無効化する(もしくはポートを開放する)
- ファイアウォール無効化/自動起動無効
・ファイアウォール停止
systemctl status firewalld
systemctl stop firewalld
systemctl status firewalld
・ファイアウォール無効化
systemctl is-enabled firewalld
systemctl disable firewalld
systemctl is-enabled firewalld
- 3389ポート開放(ファイアウォールを停止しない場合)
firewall-cmd --permanent --zone=public --add-port=3389/tcp
firewall-cmd --reload
firewall-cmd --list-all
②リポジトリファイルの読み込み
※リポジトリ(repository)とはファイルの保管場所になります。
「/etc/yum.repos.d」直下にファイルの保管場所へアクセスするための接続先が記載されたファイルが保存されています。
- yumのキャッシュクリア
yum clean all
- 「/etc/yum.repos.d」直下のファイルの読み込み
yum repolist all
→「base/7/x86_64」が有効であることを確認
③GNOMEデスクトップのインストール
yum groupinstall "GNOME Desktop"
※インストール直前に「yes」か「no」を聞かれるので、「y」を実行
④epelリポジトリのインストール
「epelリポジトリ」は「xrdp」のインストールに使用します。
- 「/etc/yum.repos.d」直下にepelリポジトリをインストール
yum install epel-release
- 「/etc/yum.repos.d」直下に「epel.repo」があることを確認
[root@tspshell01 yum.repos.d]# ll /etc/yum.repos.d/
合計 36
-rw-r--r--. 1 root root 1664 9月 5 2019 CentOS-Base.repo
-rw-r--r--. 1 root root 649 9月 5 2019 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 630 9月 5 2019 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 9月 5 2019 CentOS-Sources.repo
-rw-r--r--. 1 root root 6639 9月 5 2019 CentOS-Vault.repo
-rw-r--r--. 1 root root 314 9月 5 2019 CentOS-fasttrack.repo
-rw-r--r-- 1 root root 1050 10月 3 2017 epel-testing.repo
-rw-r--r-- 1 root root 951 10月 3 2017 epel.repo
[root@tspshell01 yum.repos.d]#
- yumのキャッシュクリアを実施
yum clean all
- 「/etc/yum.repos.d」直下のファイルの読み込み
yum repolist all
⑤リモートデスクトップに必要なパッケージのインストール
- パッケージインストール
yum install tigervnc-server
yum install xrdp
※「yes」か「no」の選択肢については全て「y」にて実施
- xrdpサービス起動/自動起動
・xrdpサービス起動
systemctl status xrdp
systemctl start xrdp
systemctl status xrdp
・xrdp自動起動
systemctl is-enabled xrdp
systemctl enable xrdp
systemctl is-enabled xrdp
⑥動作確認
- リモートデスクトップを起動後、IPアドレスを入力&接続
(「mstsc」にて一発起動可能)
- 接続成功した場合、ログイン画面が表示される。
サーバーのユーザー名/パスワードを入力
リモートデスクトップができない場合(もしくはログインできない場合)
- セッションの変更
- 画面の色深さ設定
セッションの変更
※ログイン後に画面が真っ暗で表示されない場合の対処方法になります。
「Xvnc」→「Xorg」
- 設定ファイルバックアップ
cp -p /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini_`date "+%Y%m%d_%H%M%S"`
- ファイルバックアップの確認
[root@tspshell01 yum.repos.d]# ll /etc/xrdp | grep xrdp
-rw-r--r-- 1 root root 5427 3月 11 19:53 xrdp.ini
-rw-r--r-- 1 root root 5427 3月 11 19:53 xrdp.ini_20200518_223104
-rw-r--r-- 1 root root 3570 3月 11 19:53 xrdp_keyboard.ini
[root@tspshell01 yum.repos.d]#
- ファイル内容変更
vi /etc/xrdp/xrdp.ini
※「vi」の使用方法については割愛します。
修正前
#[Xorg]
#name=Xorg
#lib=libxup.so
#username=ask
#password=ask
#ip=127.0.0.1
#port=-1
#code=20
[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
#xserverbpp=24
#delay_ms=2000
修正後
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20
#[Xvnc]
#name=Xvnc
#lib=libvnc.so
#username=ask
#password=ask
#ip=127.0.0.1
#port=-1
#xserverbpp=24
#delay_ms=2000
→ログイン画面に「Xorg」のみ表示させる設定
- バックアップファイルと比較
diff /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini_20200518_223104
実行結果
[root@tspshell01 yum.repos.d]# diff /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini_20200518_223104
181,192c181,183
< [Xorg]
< name=Xorg
< lib=libxup.so
< username=ask
< password=ask
< ip=127.0.0.1
< port=-1
< code=20
<
< #[Xvnc]
< #name=Xvnc
< #lib=libvnc.so
---
> #[Xorg]
> #name=Xorg
> #lib=libxup.so
196a188,196
> #code=20
>
> [Xvnc]
> name=Xvnc
> lib=libvnc.so
> username=ask
> password=ask
> ip=127.0.0.1
> port=-1
[root@tspshell01 yum.repos.d]#
→編集した箇所のみ差異があること
- 「xrdp」サービス再起動
systemctl status xrdp
systemctl restart xrdp
systemctl status xrdp
- リモートデスクトップ実施
接続できることを確認(sessionが「Xorg」に変更されている)
##画面の色深さ設定
※ログイン後にGUI画面の表示がおかしい場合の対処方法になります。
- 設定ファイルバックアップ
cp -p /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini_`date "+%Y%m%d_%H%M%S"`
- ファイルバックアップ確認
[root@tspshell01 yum.repos.d]# ll /etc/xrdp | grep xrdp
-rw-r--r-- 1 root root 5426 5月 18 22:37 xrdp.ini
-rw-r--r-- 1 root root 5427 3月 11 19:53 xrdp.ini_20200518_223104
-rw-r--r-- 1 root root 5426 5月 18 22:37 xrdp.ini_20200518_224629
-rw-r--r-- 1 root root 5426 5月 18 22:37 xrdp.ini_20200518_224633
-rw-r--r-- 1 root root 3570 3月 11 19:53 xrdp_keyboard.ini
[root@tspshell01 yum.repos.d]#
- 設定ファイル変更
vi /etc/xrdp/xrdp.ini
修正前
max_bpp=32
修正後
max_bpp=24
- バックアップファイルと比較
[root@tspshell01 yum.repos.d]# diff /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini_202005
18_224633
73c73
< max_bpp=24
---
> max_bpp=32
[root@tspshell01 yum.repos.d]#
→編集した箇所のみ差異があること
- 「xrdp」サービス再起動
systemctl status xrdp
systemctl restart xrdp
systemctl status xrdp
- リモートデスクトップ実施
接続できることを確認
参考ページ
CentOS7にxrdpを導入しWindowsからリモートデスクトップで接続
https://qiita.com/shinoere/items/35793d9c6155145cb37c
xrdp
https://qiita.com/n-yamanaka/items/653af5cdac63721ff074
主にインフラエンジニアのキャリアハック等について呟いています。**
https://twitter.com/satton6987