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.exe
または、フラグを直接呼び出してac
、vcxsrv.exe -ac
アメーノgithub の問題について。
あるいはこのSOの答えアクセス制御をそのまま維持しながら、.Xauthority ファイルを介してキーを共有する方法を示します。