WSL2 + Ubuntu 24.04 にxfce4デスクトップを構築し、WindowsからRDP接続する方法 ~ Wayland誤作動・ブラックスクリーン対策まとめ ~

コンピュータ

この記事は、実際にWSL2環境でxfce4デスクトップをRDP経由で動かす際に発生したトラブルを元に執筆しています。誰かの参考になれば幸いです。

概要

この記事では、WSL2上のUbuntu 24.04にxfce4デスクトップ環境を構築し、xrdp を使って Windowsの「リモートデスクトップ接続 (mstsc)」からGUIアクセスできるようにする方法をまとめます。

また、Ubuntu 24.04以降に発生しやすい以下のトラブルへの対応も含めています:

  1. 画面が真っ黒になる(black screen)
  2. セッション直後にリモートデスクトップが切断される
  3. wayland-0 が勝手に使われて失敗する
  4. /tmp/.ICE-unix の権限エラー

環境情報

項目 内容
ホストOS Windows 11
ゲストOS Ubuntu 24.04 LTS(WSL2)
デスクトップ xfce4
接続方法 xrdp(Remote Desktop Protocol)

1. 必要なパッケージのインストール(WSL2側)

sudo apt update
sudo apt install -y xfce4 xfce4-terminal xrdp dbus-x11 x11-xserver-utils

2. /etc/xrdp/startwm.sh を編集(Wayland回避+X11固定)

sudo nano /etc/xrdp/startwm.sh

内容を 完全に以下に置き換えます:

#!/bin/sh
unset WAYLAND_DISPLAY
unset XDG_SESSION_TYPE
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
export DISPLAY=:10.0
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim
export XMODIFIERS=
exec startxfce4

保存後:

sudo chmod +x /etc/xrdp/startwm.sh

3. /tmp/.ICE-unix を修正

sudo rm -rf /tmp/.ICE-unix
sudo mkdir /tmp/.ICE-unix
sudo chown root:root /tmp/.ICE-unix
sudo chmod 1777 /tmp/.ICE-unix

これを行わないと X セッションが起動できないことがあります。

4. WSL再起動とxrdpサービス再起動

wsl --shutdown

その後、WSLを起動しなおしてから:

sudo service xrdp restart

5. WindowsからRDP接続

mstsc.exe(リモートデスクトップ接続)を起動

アドレス: 127.0.0.1(またはWSL側のIP+portproxy経由)

6.日本語ロケールのインストール

sudo apt update
sudo apt install -y language-pack-ja language-pack-gnome-ja

7.ロケールの生成と設定

sudo locale-gen ja_JP.UTF-8
sudo update-locale LANG=ja_JP.UTF-8

8.xfceセッション用の環境ファイルを設定

cat <<EOF > ~/.xsession
unset WAYLAND_DISPLAY
unset XDG_SESSION_TYPE
export DISPLAY=:10.0
export LANG=ja_JP.UTF-8
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim
export XMODIFIERS=
exec startxfce4
EOF

chmod +x ~/.xsession

9.WSLとxrdpを再起動

wsl --shutdown
sudo service xrdp restart

10.日本語フォントのインストール

sudo apt install -y fonts-noto-cjk

11.日本語入力のインストール

sudo apt install -y ibus-mozc

コメント