概要
X11 Forwarding を使用することで、リモートマシン上で動作する GUI アプリケーションをローカルマシンで表示することが可能です。この記事では、X サーバーとして Xming を使用して、VSCode でリモート接続し、X11 Forwarding を設定する方法について解説します。
注意
以下で説明する方法は Windows マシンからリモートの Linux マシンと X11 Forwarding で通信する方法です。 Windows マシンと WSL 上の Linux マシンと通信する方法ではないので、注意してください。
X Window System (X11)
X Window System (X11) とは、Unix 系オペレーティングシステムで利用される、クライアント・サーバー型のグラフィカルユーザーインターフェイス (GUI) システムです。X サーバーが画面表示や入力イベントを管理し、各アプリケーション (X クライアント) はネットワーク経由やローカル環境で X サーバーと通信する仕組みになっています。
X11 Forwarding
X11 Forwarding は、リモートマシン上で動作する GUI アプリケーションを、ローカルの X サーバーで表示できる仕組みです。 SSH の機能の 1 つとして提供され、リモートサーバー上の X クライアントアプリケーションとローカルの X サーバーで通信し、GUI 画面を表示できます。
Windows で動作する X11 サーバー
X11 Forwarding でリモートマシンの X クライアントアプリケーションと通信するために、Windows 上に X サーバーを起動する必要があります。 Windows で使用できる X サーバーとして以下のものがあります。
X サーバー | 費用 | 特徴 |
---|---|---|
VcXsrv | 無料 | 軽量で設定が簡単 |
Xming | 無料/最新版は有料 | 最新版は有料 |
X410 | 有料 | Microsoft Store で導入できる |
Cygwin/X | 無料 | Cygwin 環境の一部 |
MobaXterm | 無料/Pro 版は有料 | SSH クライアント + X サーバー |
今回は、このうち無料で安定して使える VcXsrv を使用します。
手順
1. VcXsrv のインストールと設定
まず、VcXsrv をインストールし、設定を行います。
- VcXsrv の公式サイトからインストーラーをダウンロードし、インストールします。
- インストールが完了したら、XLaunch を起動します。
「Multiple windows」を選択し、「Next」をクリックします。
「Start no client」を選択し、「Next」をクリックします。
「Extra settings」で「Next」をクリックします。
「Finish」をクリックして VcXsrv を起動します。
起動すると、タスクバーにアイコンが現れます。
2. 環境変数 DISPLAY の設定
コマンドプロンプトで以下を実行し、環境変数 DISPLAY を定義します。
実行後、VSCode は一度再起動してください。
3. VSCode のリモート接続設定
初めての接続先の場合
- VSCode を起動し、拡張機能「Remote – SSH」をインストールします。
- VSCode のコマンドパレット (
Ctrl + Shift + P
) を開き、「Remote-SSH: Add New SSH Host…」を選択します。 SSH 接続設定を入力します。以下のように設定します。
すでにある接続先の場合
- VSCode のコマンドパレット (
Ctrl + Shift + P
) を開き、「Remote-SSH: Open Configuration File…」を選択します。 接続設定が保存されているファイルを選択し、設定を編集します。以下のように設定を追加または編集します。
4. VSCode の SSH の設定
設定より remote.SSH.enableX11Forwarding
が有効になっていることを確認してください。(デフォルトでは有効)
5. リモートマシンでの設定
リモートマシン上で、X11 Forwarding を有効にするための設定を行います。
リモートマシンに SSH 接続し、
/etc/ssh/sshd_config
ファイルを編集します。以下の設定項目を確認し、必要に応じて変更します。
X11Forwarding
: X11 Forwarding を有効にするX11DisplayOffset
: X11Forwarding で使用する際の最小のディスプレイ番号。リモートマシンの既存の X サーバーで使用しているディスプレイ番号と競合しないための設定。
設定を保存し、SSH サービスを再起動します。
6. VSCode でリモート接続
VSCode でリモート接続を行い、X11 Forwarding を確認します。
VSCode のコマンドパレット (
Ctrl + Shift + P
) を開き、「Remote-SSH: Connect to Host…」を選択し、リモートホストに接続します。接続が完了したら、DISPLAY 環境変数を出力して、設定値が表示されれば成功です。
GUI アプリケーションを起動すると、ローカルマシン上にアプリの画面が表示されます。
Firefox
VcXsrv を自動起動する
1. 設定ファイルを保存する
XLaunch を起動して、最後の画面で「Save configuration」をクリックし、ドキュメントフォルダに「config.xlaunch」を保存します。

2. ショートカットを作成する
- デスクトップ上で右クリックし、「新規作成」 > 「ショートカット」を選択します。
「項目の場所を入力してください」フィールドに以下を入力します。
「次へ」をクリックします。
- ショートカットの名前を入力します。例えば、「VcXsrv」とします。
- 「完了」をクリックします。
3. スタートアップに登録する
- Windows キー + R を押して「ファイル名を指定して実行」ダイアログを開きます。
- 「shell:startup」と入力して Enter キーを押します。これにより、スタートアップフォルダが開きます。
- デスクトップに作成したショートカットを、このスタートアップフォルダにドラッグ&ドロップします。
これで、次回 Windows を起動する際に、指定されたショートカットが自動的に実行されるようになります。
コメント