xrdp を用いて Windows から CentOS にリモート デスクトップ接続する

スポンサーリンク

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 を用いています。

[インストール / 設定手順]

  1. 管理者 (root) 権限を持ったユーザーでサーバーにログインします。
  2. ログインした端末上に以下のコマンドを入力 / 実行し、OS のアーキテクチャを確認します。
    uname -r

    出力結果の後ろの文字が「x86_64」であれば OS のアーキテクチャは x64、「i386」であれば OS のアーキテクチャは x86 となります。

  3. 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 
    
  4. 端末上に以下のコマンドを入力 / 実行し、xrdp、および関連する tigervnc-server をインストールします。
    yum install xrdp tigervnc-server
    

    ※インストールの途中で、確認のプロンプトが表示されますが、「y」と入力 / Enter します。

  5. 端末上に以下のコマンドを入力 / 実行し、VNC サーバーの設定ファイルを開きます。
    vi /etc/sysconfig/vncservers
    
  6. vi 上で以下のように追記、保存します。
    VNCSERVERS="2:<ユーザー名>"
    VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"
    

    ※<ユーザー名>はサーバー上に存在するユーザー アカウント

  7. 端末上に以下のコマンドを入力 / 実行し、ユーザーを切り替え、VNC のパスワードを設定、そして手順 1 . でログインしたユーザーに切り替えます。
    su - <ユーザー名>
    /usr/bin/vncpasswd
    exit
    

    ※<ユーザー名>は、手順 6. で入力したユーザー アカウントを入力します。

    また、パスワードは 2 回入力する必要があります。

  8. 端末上に以下のコマンドを入力 / 実行し、日本語キーボード対応にします。
    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
    
  9. 端末上に以下のコマンドを入力 / 実行し、サービスの開始、および自動実行の設定を行います。
    service vncserver start 
    service xrdp start 
    chkconfig xrdp on 
    chkconfig vncserver on 
    
  10. 端末上に以下のコマンドを入力 / 実行し、RDP 経由 (ポート番号: 3389) でネットワーク接続できるようにします。
    iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3389 -j ACCEPT 
    service iptables save 
    service iptables restart 
    

[接続方法]

  1. Windows 上から [リモート デスクトップ接続] を起動します。
  2. [コンピューター:] に接続する ホスト名、もしくは IP アドレスを入力し、[接続] ボタンをクリックします。
  3. [はい] ボタンをクリックします。
  4. ユーザー名とパスワードを入力し、[OK]ボタンをクリックします。

    ※ユーザー名は [インストール / 設定手順] 手順 6. で入力したユーザー アカウント、パスワードは [インストール / 設定手順] 手順 7. で入力したパスワードを使用します。
  5. 接続処理が行われ、問題がなければ接続先のデスクトップ画面が表示されます。

[参考]

スポンサーリンク
スポンサーリンク
スポンサーリンク

コメント

  1. […] セミナーのなかでライトニング トークがありますが、「xrdp を用いて Windows から Linux へリモート接続する」というタイトルで参加させていただきました。内容自体は以前ブログで公開した「xrdp を用いて Windows から CentOS にリモート デスクトップ接続する」を元にしています。 […]