LoginSignup
29
31

More than 3 years have passed since last update.

Windowsクライアントを使って、クラウド上のLinuxサーバでGUIアプリを実行したい(1)

Last updated at Posted at 2019-05-28

1. はじめに

WindowsクライアントからsshでLinuxに接続すると、GUIアプリケーションは使用できない。GUIアプリケーションを使うにはXmingやVNCなどのソフトウェアが必要だ。

また途中に踏み台サーバーがあると、ツールのインストールやポートフォワーディングなど考慮事項が増える。

個別にはいろいろなところで書かれているネタだが、今回は全体を整理すると共に、2020年現在の視点で書いてみる。

1-2. TL;DR

  • WindowsクライアントでGUIアプリを実行する手段としてVNCやXサーバは有名だ
  • しかし総合的にメリット/デメリットが語られていることは少ない
  • クラウドではSSHの公開鍵認証を利用した踏み台経由の多段sshは重要なテクニックだ。パスワード認証やログインだけというネタはあっても「Xサーバ+公開鍵認証」となるとネタは少ない
  • Linuxサーバ側の設定も含めて現時点で理想的な方法を導き出したい

1-3. 前提条件

  • WindowsクライアントとLinuxサーバを使用していること
  • LinuxはRHEL系ディストリビューションを想定しているが、Ubuntuなどでも考え方は同じ
  • タイトルには「クラウド」と入っているが、パブリック・クラウドに限らず、プライベート・クラウドや、昔ながらのオン・プレミスでもかまわない

2. はじめに考えること

実際に設定する前に、どのような方法があるのか、またどれが自分に最適なのか。全体像を説明する。

2-1. GUIアプリケーションを使う2つの選択肢

GUIを使う方法はいろいろあるのだが、大きく分けると以下の2つに分類できる。

  1. 個別のGUIアプリケーション画面だけを利用する
    XmingやVcXsrvなどWindows用のXサーバを使用。個別のアプリケーション画面をX11フォワーディング機能でWindowsクライアントに転送。GUIインストーラを使うなど、一時的にGUIを使用するときに便利。

  2. フルデスクトップ環境を利用する
    VNC Serverやxrdp(RDP)などを使用。Linux OSのデスクトップに接続して、デスクトップの全画面を表示。ローカルにあるサーバと同じ感覚でリモートのLinuxを利用できる。

それぞれを比較したのが以下の表である。VNCとxrdpは機能的には似ているが、異なる部分もあるので分けて書いている。

使用ツール 表示範囲 設定にかかる時間 サーバ上で動作するコンポーネント クライアントへの追加インストール 踏み台対応 通信経路の暗号化 使用ポート
XmingやVcXsrvなどのXサーバ 特定のウィンドウ 少ない 必要最小限のライブラリのみ 必要 多段sshなどが必要 暗号化済み デフォルト22
VNC デスクトップ全部 多い デスクトップに必要なライブラリに加え、VNCサーバなども必要 必要 簡単 暗号化未対応 5901, 5902など同時に使用するユーザー数分
xrdp 同上 同上 同上 不要 同上 暗号化済み デフォルト3389

ヒント
フルデスクトップ環境を利用するには、サーバー側に標準のデスクトップ環境(graphical-server-environment)をインストールするのが一般的だ。

ただしサーバースペックが不足しているときは、軽量のデスクトップ環境「Xfce(エックス・エフ・シー・イー)」を使う方法もある。XfceはEPELで提供されており、EPELを有効にしたうえで、yum groupinstall Xfceでインストールできる。

2-2. 方式を選択するうえで考慮すること

今回紹介した方式は「どちらが優れている」というものではなく、「どちらが適しているか」という視点で判断すべきだ。それぞれ特徴があるので、状況によって最適な方法を選択したい。また注意点もあるので補足する。

2-2-1. 踏み台サーバ対応

クラウドに限らず、エンタープライズ系でよくあるのが踏み台サーバの利用である。sshだけならばログインを2回繰り返すだけだが、GUIを飛ばすとなると、いくつかの選択肢がある。代表的な方法を紹介する。

ssh-xserver01.png

  1. 踏み台がLinuxでデスクトップ環境なし(Xサーバ利用)
    2段階でsshログインすることで、アクセス元のWindowsまでGUI画面を転送できる。ただしクラウドの場合、ログイン用の秘密鍵を踏み台におくことは好ましくないので、多段sshなどを検討する。

  2. 踏み台がLinuxでデスクトップ環境あり(VNC/xrdp利用)
    VNCを使うと踏み台のデスクトップ全画面が表示される。あとは目的のサーバにsshで接続し、X-Window標準のDISPLAY転送機能を利用する。同様にxrdpを使うと、WindowsのRDPクライアントから、Linuxのデスクトップ全画面を表示できる。

  3. 踏み台がWindows
    Windowsまではリモートデスクトップで接続し、その後はXmingやVcXsrvなどのXサーバ利用する。

2-2-2. クライアントツールをインストールできるか

企業のネットワークでは、クラウドに限らず別のネットワークに接続するときは、セキュリティ確保のため特定の踏み台サーバーを経由しなければならないことがある。そのような踏み台サーバーは厳重に管理されていることが多く、インストール権限の有無、ファイル配置権限の有無によって選択肢が異なる。

たとえばXmingやVcXsrvは、Windowsにデフォルトではインストールされていない。そのため踏み台サーバーに事前にインストールしてあるか、もしくはインストール権限が必要だ。VNCクライアントはインストールしなくても使えるが、実行ファイルを配置する権限が必要になる。

インストール権限も書き込み権限もないときには、Windows RDPクライアントを使用できるxrdpが唯一の選択肢になる。

2-2-3. ポート制限との戦い

方式によって必要なポートは異なる。細かい通信制限が行われていないネットワークでは気にする必要はないが、企業ネットワークでは制限されていることが多い。

そもそもインターネットへのアクセスが禁止されているネットワークもあるだろうし、許可されていてもhttp/https(80/443)程度という会社も多いはずだ。

そのため制限状況によって使用できるツールが限られる。最終的にどの方法が許可されているか、自社のネットワーク管理部門に確認すること。またクラウドの場合はインターネットVPN(IPSec VPNなど)や専用線などのセキュアな閉域網も検討できる。

それぞれの方式で使用するポートは以下の通り。

  • XmingやVcXsrvなどのXサーバを使用
    sshと併用するため、sshで接続できれば利用できる。デフォルトは22。

  • VNCやxrdpなどを使用
    VNCの1つめのディスプレイは5901。同時に複数ユーザで使用するときは、5902、5903など人数分のポートが必要。xrdpは3389。

2-2-4. 暗号化対応

VNCの通信は暗号化されていない。そのため閉域網以外で使用するときには、SSHポートフォワードなどと併用する。

3. 今回使用するツール

3-1. Xサーバを使用する

一通り説明してきたなかで、今回はもっとも手軽な以下の方法を説明する。サーバーにインストールするプログラムが最小限で、デーモンを起動する必要もないので、ライトウェイトな方法と言える。

踏み台がLinuxでデスクトップ環境なし(Xサーバ利用)

VNCクライアントRDPを使用する方法は以下のエントリーで紹介している。操作例ではOCIを使用しているが、AWSやAzure、オンプレミスでもほとんどの内容は有効だ。

3-2. 使用するXサーバ

Windowsで稼働するXサーバとしてはXmingが有名だ。そして近年はVcXsrvの人気も高い。

VcXsrvがGPLなのに対し、Xming 7.xは商用ライセンスで、Xming 6.9はBSDスタイルのライセンスだ。英語版WIKIPEDIAでXmingを見ると、6.9でもブレまくっているようだ。

7.7.0.38, proprietary
6.9.0.31, MIT License / August 31, 2015; 3 years ago, proprietary
May 4, 2007; 12 years ago, MIT License

Xmingのライセンスが微妙なこともあり、今回はVcXsrvを使用する。実際に触ると分かるが、Xmingとほぼ同じ感覚で利用できる。

4. 次回は?

次回は設定編だ。今回選んだVcXsrvを使って、WindowsクライアントからGUIアプリを実行するまでの手順を説明する。

29
31
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
31