xrdp は オープンソースで開発されたサーバー ソフトウェアです。
機能的には、Remote Desktop Protocol (RDP) 経由で接続できる Linux ターミナル サーバーとして動作し、rdesktop や freeRDP、Microsoft のターミナル サーバーおよびリモート デスクトップ クライアントから接続、GUI で操作できることを目的としています。
※ただし、Windows Server のようなリモート デスクトップ の機能を提供しているわけではなく、実際には X window デスクトップを表示させています。
Windows から Linux にリモート GUI 接続する場合、VNC の利用や、 Linux を Hyper-V の仮想マシンとして動作している環境であれば Hyper-V マネージャー スナップインを利用することで可能ですが、Windows の場合には別途 VNC ソフトウェアが必要だったり、Linux サーバーが物理構成などの場合には、Hyper-V マネージャー スナップインは利用できません。
その点、xrdp を Linux サーバーにインストール / 設定することで、Windows からはリモート デスクトップ接続 (mstsc.exe) 経由で接続、GUI 操作することが可能となります。
xrdp のインストール / 設定手順について、備忘録として纏めてみました。
※xrdp のバージョンは 0.5.0、Linux サーバーは CentOS 6.5、Windows クライアントは Windows 8.1 Pro を用いています。
[インストール / 設定手順]
- 管理者 (root) 権限を持ったユーザーでサーバーにログインします。
- ログインした端末上に以下のコマンドを入力 / 実行し、OS のアーキテクチャを確認します。
uname -r
出力結果の後ろの文字が「x86_64」であれば OS のアーキテクチャは x64、「i386」であれば OS のアーキテクチャは x86 となります。
- xrdp はデフォルトのパッケージには含まれていないため、端末上に以下のコマンドを入力 / 実行し、外部レポジトリとして EPEL (エンタープライズ Linux 用の拡張パッケージ) パッケージをダウンロード、インストールします。※OS のアーキテクチャによってダウンロードする RPM パッケージが異なるので注意。
■RHEL/CentOS 6 32ビットの場合
mkdir EPEL cd EPEL wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm
■RHEL/CentOS 6 64ビットの場合
mkdir EPEL cd EPEL wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm
- 端末上に以下のコマンドを入力 / 実行し、xrdp、および関連する tigervnc-server をインストールします。
yum install xrdp tigervnc-server
※インストールの途中で、確認のプロンプトが表示されますが、「y」と入力 / Enter します。
- 端末上に以下のコマンドを入力 / 実行し、VNC サーバーの設定ファイルを開きます。
vi /etc/sysconfig/vncservers
- vi 上で以下のように追記、保存します。
VNCSERVERS="2:<ユーザー名>" VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"
※<ユーザー名>はサーバー上に存在するユーザー アカウント
- 端末上に以下のコマンドを入力 / 実行し、ユーザーを切り替え、VNC のパスワードを設定、そして手順 1 . でログインしたユーザーに切り替えます。
su - <ユーザー名> /usr/bin/vncpasswd exit
※<ユーザー名>は、手順 6. で入力したユーザー アカウントを入力します。
また、パスワードは 2 回入力する必要があります。
- 端末上に以下のコマンドを入力 / 実行し、日本語キーボード対応にします。
cd /etc/xrdp wget http://www.mail-archive.com/xrdp-devel@lists.sourceforge.net/msg00263/km-e0010411.ini cp km-e0010411.ini km-0411.ini cp km-e0010411.ini km-e0200411.ini cp km-e0010411.ini km-e0210411.ini
- 端末上に以下のコマンドを入力 / 実行し、サービスの開始、および自動実行の設定を行います。
service vncserver start service xrdp start chkconfig xrdp on chkconfig vncserver on
- 端末上に以下のコマンドを入力 / 実行し、RDP 経由 (ポート番号: 3389) でネットワーク接続できるようにします。
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3389 -j ACCEPT service iptables save service iptables restart
[接続方法]
- Windows 上から [リモート デスクトップ接続] を起動します。
- [コンピューター:] に接続する ホスト名、もしくは IP アドレスを入力し、[接続] ボタンをクリックします。
- [はい] ボタンをクリックします。
- ユーザー名とパスワードを入力し、[OK]ボタンをクリックします。
※ユーザー名は [インストール / 設定手順] 手順 6. で入力したユーザー アカウント、パスワードは [インストール / 設定手順] 手順 7. で入力したパスワードを使用します。 - 接続処理が行われ、問題がなければ接続先のデスクトップ画面が表示されます。
[参考]
- xrdp
http://www.xrdp.org/ - 日本xrdpユーザ会
http://xrdp.vmeta.jp/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8 - [Xrdp-devel] Keyboard issue and Japanese Keyboard Layout
http://www.mail-archive.com/xrdp-devel@lists.sourceforge.net/msg00263.html
コメント
[…] セミナーのなかでライトニング トークがありますが、「xrdp を用いて Windows から Linux へリモート接続する」というタイトルで参加させていただきました。内容自体は以前ブログで公開した「xrdp を用いて Windows から CentOS にリモート デスクトップ接続する」を元にしています。 […]