WSL2 で動作する X11 転送を設定する方法 [closed] 質問する

WSL2 で動作する X11 転送を設定する方法 [closed] 質問する

WSL1 から WSL2 に移行すると、多くのことが変わります。どうやらこれは X11 転送にも当てはまるようです。WSL1
と同じように、Windows 10 上の WSL2 で X11 転送を使用するには、どのような手順を実行する必要がありますか?

ベストアンサー1

要約:

以下の内容を に追加します~/.bashrc:

export DISPLAY=$(ip route list default | awk '{print $3}'):0
export LIBGL_ALWAYS_INDIRECT=1

パブリックアクセスを有効にするWindows 用の X11 サーバー上で。*

別途追加インバウンドルールのためにTCPポート6000WindowsファイアウォールにWSLがXサーバーにアクセスできるようにするために、wsl-windows-ツールバーランチャー人々。


指摘したようにWSL_subreddit_mod による Reddit での投稿そして、あなたが読むことができるようにWSL2に関するMicrosoftのドキュメントWSL2 アーキテクチャでは、仮想化されたネットワーク コンポーネントが使用されます。つまり、WSL2 の IP アドレスはホスト マシンとは異なります。このため、WSL1 の X11 転送設定を WSL2 にそのまま転送することはできません。

WSLに関するUbuntu Wikiページでは、WSL2に適合した設定がすでに見つかります。グラフィカルアプリケーションの実行同様の構成は、前述の Reddit ユーザーによっても提案されており、解決策の別の部分も提供しています: Windows の X11 サーバーでパブリック アクセスを有効にします。

これは、次のものを に追加することを意味します~/.bashrc

export DISPLAY=$(ip route list default | awk '{print $3}'):0
export LIBGL_ALWAYS_INDIRECT=1

そしてパブリックアクセスを有効にするWindows 用の X11 サーバー上で。*

Windows 10でWSL2のX11転送を有効にするために最も重要な部分がまだ欠けています。Windowsファイアウォールは、デフォルトでWSL用に構成されたネットワークインターフェイス経由の接続をブロックします。
別のインバウンドルールのためにTCPポート6000WSLがXサーバーにアクセスできるようにするには、ルールが必要です。ルールが作成されると、wsl-windows-ツールバーランチャー新しく作成したルールの設定で、IPアドレス範囲をWSLサブネットに制限することができます。範囲:172.16.0.0/12

*: 使用する場合翻訳者追加設定でアクセス制御を無効にすることで、X サーバーのパブリック アクセスを有効にすることができます。
アクセス制御を無効にする VcXSrv
vcxsrv.exeまたは、フラグを直接呼び出してacvcxsrv.exe -acアメーノgithub の問題について。

あるいはこのSOの答えアクセス制御をそのまま維持しながら、.Xauthority ファイルを介してキーを共有する方法を示します。

おすすめ記事