@itagagaki (板垣 史彦)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Windows 11 WSL2 (Ubuntu) のIPアドレスとxrdp

解決したいこと

Windows 11 Pro 25H2 の WSL2 + Ubuntu環境を構築できています。
UbuntuにxrdpをインストールしてWin32側からRDP接続してみようとしたのですが、うまくいきません。

Windows 10 Pro を使っていたときはWSL2側のIPアドレスはWin32側と異なっていたので、WSL2側のIPアドレスに向けてRDPクライアントを接続させればよいだろうと考え、IPアドレスを調べてみたのですが、WSL2側もWin32と同じ 192.168.1.2 となっており、困ってしまいました。

添付画像の右上のコンソールがWin32 (Cygwin)、右下のコンソールがWSL2 Ubuntuです。どちらのIPv4アドレスも 192.168.1.2 になっています。

WSL設定を見てもネットワークモードはMirroredではなくデフォルトのNatになっているし、.wslconfigの内容も空なのに、どうしてIPアドレスが同じになっているのでしょう?

Windows 11 の WSL2 + Ubuntu + xrdp にホストシステム側からRDP接続できている方がいらっしゃいましたら、やり方を教えてください。

2025-12-20 22.33.50.png

0 likes

2Answer

初めまして。
手持ちのPC(Windows 11 Pro 25H2)にWSL2をインストールしてみました。
(PowerShellから wsl --install しただけで、何のオプションも触っていません)

ホストとは異なるIPアドレスが割り当たっていました。

なお、当方の
hostname -I の結果は
172.30.35.38
とIPv4だけ。(ホストPCは、IPv6のアドレス持っていますし、IPv4も別サブネットです)

ip a の結果も
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet 10.255.255.254/32 brd 10.255.255.254 scope global lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:8c:2a:4f brd ff:ff:ff:ff:ff:ff
inet 172.30.35.38/20 brd 172.30.47.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fe8c:2a4f/64 scope link
valid_lft forever preferred_lft forever
と、ホストPCとは異なるネットワーク情報が出ています。

添付されている画像の右下のプロンプトですが、
・IPv4のアドレスに加えて、IPv6のアドレス(しかもホストと同じ)がある。
という状態ですので、少なくとも仮想化された環境ではないといえます。
Ubuntu(WSL2)のプロンプトでは無いのではないでしょうか。

uname -a コマンドでOSを確認してみるのはいかがでしょう。
↓こんな感じになるはずです。
Linux hostname 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

1Like

Comments

  1. @itagagaki

    Questioner

    ありがとうございます。

    いやいや、LinuxとWindowsのcmdを間違えているなんてことは、さすがに…

    uname -a の出力は

    Linux blue 4.4.0-26100-Microsoft #7309-Microsoft Fri Jan 01 08:00:00 PST 2016 x86_64 x86_64 x86_64 GNU/Linux

    あれ?しかしWSL2の表示がありませんね…。
    で、仮想化?うん?と思って、Windowsのcmdでwsl --statusを実行してみると、

    既定のディストリビューション: Ubuntu
    既定のバージョン: 2
    WSL2 は、現在のマシン構成ではサポートされていません。
    "仮想マシン プラットフォーム" オプション コンポーネントを有効にし、さらに、BIOS で仮想化を有効にしてください。
    "仮想マシン プラットフォーム" を有効にするには、次のコマンドを実行します: wsl.exe --install --no-distribution
    詳細については、https://aka.ms/enablevirtualization をご覧ください

    と出力されました。Ubuntuは動いていたけどWSL2ではなかったというわけでしたか…。

    仮想マシン有効化をトライしてみます。

  2. @itagagaki

    Questioner

    wsl --status の表示は正常になりました。
    しかし結果はやっぱり同じ。
    --uninstall して --install したり --update してもダメ。
    WindowsコンポーネントのHyper-VとWSLを無効にして再起動、再び有効にして再起動してもダメ。
    UEFIの設定も大丈夫そう。

    しかし、systeminfo を実行してみたところ、

    Hyper-V の要件: ハイパーバイザーが検出されました。Hyper-V に必要な機能は表示されません。

    んー?これはどういうことか?と調べてみたら…

    BlueStacksをインストールしてるのが原因かも。
    bluestacks wsl2 windows11 で調べてみます。

  3. いやいや、LinuxとWindowsのcmdを間違えているなんてことは、さすがに…

    ですよね。アイコンも正しそうだし、cmdならhostname -I はエラーだろうし・・・
    とは思ったんですが。

    Linux blue 4.4.0-26100-Microsoft #7309-Microsoft Fri Jan 01 08:00:00 PST 2016 x86_64 x86_64 x86_64 GNU/Linux

    このカーネルのバージョンは WSL1っぽいですね。
    wsl -l -v で、バージョン確認できます。

    Ubuntu がVERSION 1でセットアップされているなら、
    wsl --set-version Ubuntu 2
    で、WSL2に変換できるそうです。
    (当方の環境ではWSL1が入らなかったので試せていません)

    また、
    wsl --set-default-version 2
    で、今後インストールするWSLのバージョンを 2に指定できるようです。

    --uninstall して --set-default-version 2 して --install で行ける感じはします。

  4. @itagagaki

    Questioner

    2時間かけていろいろやって、やっと[Ubuntu/WSL2]を動かすことができました。
    Natモードでは異なるIPv4アドレスが割り当てられていました。

    これで [WSL2ホストWin32] からU [buntu/WSL2] のxrdpに接続するという目的が達成できるかどうかはこれから挑戦しますが、まずは [Ubuntu/WSL2] のIPv4アドレスが [WSL2ホストWin32] と同じになってしまっているという問題は、おかげさまで解決できました。

    最終的に行った手順

    1. BlueStacksをアンインストール (必須だったかどうかはわからない)
    2. wsl --set-version Ubuntu 2
    3. wsl --uninstall
    4. wsl --terminate Ubuntu (必須だったかどうかはわからない)
    5. wsl --unregister Ubuntu (これはどうやら必須だった)
    6. コンパネで Windowsの機能 Hyper-V と WSL を無効化 (必須だったかどうかはわからない)
    7. Windows再起動
    8. wsl --install

    これで正常にUbuntu/WSL2が動くようになりました。

    結果的にWindowsの機能 Hyper-V と WSL は無効化されたままですが、これで良いようです。なんだか釈然としないですが。

    BlueStacksをアンインストールする必要はあったか、再びインストールしてWSL2と競合せず使えるかどうかは、これから試してみます。

    ありがとうございました。

  5. @itagagaki

    Questioner

    BlueStacksの最新版をダウンロードしてインストールしてみたら、BlueStacksもWSL2も問題なく同時に動きました。

    なお、コントロールパネル→プログラムと機能→Windows の機能の有効化または無効化 の [Hyper-V] と [Linux 用 Windows サブシステム] は無効化した(チェックが入っていない)ままです。

  6. @itagagaki

    Questioner

    目的の「Win32のRDPクライアントから、そのWin32で動くUbuntu/WSL2にRDP接続する」の経過を記しておきます。

    Ubuntu/WSL2で以下を実行

    sudo apt update
    sudo apt upgrade
    sudo apt install ubuntu-desktop
    sudo apt install xrdp
    sudo systemctl start xrdp
    sudo systemctl enable xrdp
    

    Win32でRDPクライアント(mstsc.exeなど)を実行
    接続先はUbuntu/WSL2のIPv4アドレス
    ポート番号は3389
    すると、まずは無事にGUIのログイン画面が表示されました。
    image.png

    ここでusernameとpasswordを入力すると、すぐにウィンドウがスンと閉じてしまいました。たぶん何か問題があります。まずは自分で調査してみます。

Comments

  1. @itagagaki

    Questioner

    ありがとうございます。別PCから接続する手順ですね。
    それはそれでやってみようとは思いますが、いま私が求めているのは、WSL2を動かしているWin32からの接続なのです。

  2. 別なPCからRDPできるならば、同じPCからRDPできない理由は無いと思います。

  3. @itagagaki

    Questioner

    まず私がお尋ねしているのは、なぜネットワークモードがMirroedではなくNatなのにWin32側とその中で動いているWSL2とで同じIPアドレスになってしまっているのか、です。そのアドレスに対してWin32のRDPクライアントを動作させたとき、その通信相手がWin32のRDPサーバーであるのか、WSL2のxrdpサーバーであるのか、(ポート番号は変えたとしても)、どうなるかわかりますか?Windows10 Proで私が経験したようにIPアドレスが異なっていれば問題はないのですが。
    質問をよく読み、問題を理解し、適当に答えないようにしていただきたいですね。回答数を稼ぎたいですか?回答しようと努力されたことには感謝しますが、このようなやり取りはお互い無駄な時間になります。

  4. それは大変失礼いたしました。
    お手間を取らせてしまい大変申し訳ございません。

  5. 自分の環境では、次の通り Ubuntu側のネットワークが 切り替わることを確認しました。

    • ネットワークモードNATで、ホストWindows11とは別なネットワーク

      eth0: inet 172.26.14.119 netmask 255.255.240.0 broadcast 172.26.15.255
       
    • ネットワークモードMirroredで、ホストWindows11と同じネットワーク(IPアドレス)

      eth1: inet 192.168.0.11 netmask 255.255.255.0 broadcast 192.168.0.255

    WSL Settingsでネットワークモードを変更した後、WSLを再起動しています。
    wsl --shutdown

    wsl --version
    WSL バージョン: 2.6.3.0
    カーネル バージョン: 6.6.87.2-1
    WSLg バージョン: 1.0.71
    MSRDC バージョン: 1.2.6353
    Direct3D バージョン: 1.611.1-81528511
    DXCore バージョン: 10.0.26100.1-240331-1435.ge-release
    Windows バージョン: 10.0.26200.7171
    

    不要な情報でしたら、読み捨ててください。

  6. @itagagaki

    Questioner

    ありがとうございます。
    Natモードだときっとそうなると思っていたし、そうなってほしいんですが、自分の環境でそうならないのはなぜなのか…。謎です。切り替えの手順も同じようにやっているのですが…。
    教えていただいたバージョンのチェック等も含めて、いろいろ見直してみます。

Your answer might help someone💌