最終更新: 2021-03-28
WSL1 と WSL2 での Windows 10上での X Window サーバ (X Server) の設定の違いについてまとめました。WSL1 から WSL2 へ移行すると設定変更が必要となります。
記事後半に Window 用の無償な X WIndow サーバソフト VcXsrv のダウンロード先と、同ソフトでの設定の仕方を記載しています。尚、【こちらの別記事】に Windows 用の無償な X サーバソフト3種の比較を記載しています。
まずは一般論として表にまとめると次の通りです。
項目 | WSL1 | WSL2 |
---|---|---|
WSL の IP アドレス | ホストと共通。 毎回同一。 |
仮想化されて独立。 起動毎に変わる。 |
WSL でのDISPLAY 環境変数の指定方法 (「export DISPLAY=XXX」の XXX ) |
:0 | ホストのIPアドレス:0 (例 192.168.1.2:0) |
X サーバでのクライアントの認識 | 自分のマシンから | 他のマシンから |
X サーバのアクセスコントロール (Unix の「xhost +」コマンド相当) |
操作不要 | 要解放 |
目次:
IP アドレス管理の違い:
WSL1ではホストと同一のイーサネット用 IP アドレスを共有していましたが、WSL2では Hyper-V の上で仮想化された完全な Linux が独立して動きますので、IP アドレスも仮想化されて独立した物となります。
従って、WSL1では localhost (127.0.0.1) はホストと同じコンピュータを指して居ましたが、WSL2ではホストとは別の仮想化されたコンピュータとなります。
つまり、Linux の DISPLAY 環境変数の値は、WSL1では localhost で問題無かったのが、WSL2ではホストの IP アドレスを指定する必用が有ります。これは、WSL1で「export DISPLAY=:0」の指定をしていた人は、WSL2では「export DISPLAY="ホストのIPアドレス”:0」への変更が必用になるという事です。
尚、WSL2での IP アドレスの仮想化については、次の ASCII の記事に詳しく書かれています。
[広告]
無償な X サーバソフト VcXsrv のダウンロード先:
まずは、Windows 用の無償な X サーバソフト、VcXsrv のダウンロード先は次の通りです。
VcXsrv のユーザー側での設定の変更:
Windows 用の無償な X サーバソフト、VcXsrv を使っている場合は、WSL1 から WSL2 への移行で、下記の通り設定の変更が必要となります。
- Windows ホスト側での起動時に、アクセス コントロールを無効化する
XLaunch 起動時に、3画面目で「Disable access control」にチェックを入れます。
この指定は、localhost (127.0.0.1) 以外からの全てのアクセスを許可する事になります (一般的な Unix 環境での「xhost +」と同一) 。
(画像はクリックすると拡大します)
- タスクバーから起動する場合
XLaunch 起動時の4画面目で「Save configuration」を押した場合、VcXsrv をタスクバーにピン留めしておけば、マウスの右クリックから次の様に「config.xlaunch」を選択すれば、上記1のチェックを入れた状態で起動出来ます。
- WSL2上での DISPLAY 環境変数の指定の変更
WSL1では 「:0」で使えて居ましたが、WSL2ではホストの仮想化されていない実 IP アドレスを入力する必用が有ります。ホストの IP アドレスは、次の様に調べます。 - ルーターでのパソコンの IPv4 アドレスを固定にする
ホストの IPv4 アドレスは、パソコンを接続しているルーターの DHCP の設定で変わります。常に同じアドレスを取得したい場合には、ルーターの設定を「手動割当」に変更しておくと良いでしょう。その上で、WSL2の .bashrc に「export DISPLAY="確認したアドレス”:0」を記載しておくと、毎回人手で指定する必用が無くなります。下記の例では「export DISPLAY=192.168.11.2:0」となります。
【X-Window の目次へ戻る】 【WSL の目次へ戻る】