2023.02.03追記
WSL2のネイティブSystemdでxrdpを動作させる記事を書きました。
WSL2でSystemdが公式にサポートされるようになったため今後は以下の記事を参照してください。
はじめに
前回、WSL2
のUbuntu
にgenie
をインストールしたため、今回はxrdp
をインストールしてリモートデスクトップでアクセスできるように設定していきます。
Ubuntuデスクトップ環境のインストール
Ubuntu 20.04
を起動して、Ubuntu Desktop
をインストールします。
sudo apt update
sudo apt upgrade
sudo apt install ubuntu-desktop
xrdpのインストール
xrdpインストール&セットアップの大枠は以前書いた以下の記事と大体同じですが、WSL
環境の場合、一部手順が異なるため、今回は手作業でやっていきます。
sudo apt install xrdp
xrdpインストール後のセットアップ
Ubuntu Desktop
でxrdp
を使用する場合、いくつか修正する必要があるため、ファイルの修正と必要ファイルの作成を行っていきます。
sudo sed -i -e '/FuseMountName/s/thinclient_drives/shared-drives/g' /etc/xrdp/sesman.ini
sudo sed -i -e '/allowed_users/s/console/anybody/g' /etc/X11/Xwrapper.config
sudo tee /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla << _EOF_ > /dev/null
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes
_EOF_
sudo tee /etc/polkit-1/localauthority/50-local.d/46-allow-update-repo.pkla << _EOF_ > /dev/null
[Allow Package Management all Users]
Identity=unix-user:*
Action=org.freedesktop.packagekit.system-sources-refresh
ResultAny=yes
ResultInactive=yes
ResultActive=yes
_EOF_
sudo tee /etc/xrdp/startubuntu.sh << _EOF_ > /dev/null
#!/bin/sh
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
exec /etc/xrdp/startwm.sh
_EOF_
sudo chmod +x /etc/xrdp/startubuntu.sh
xrdp待ち受けポート番号の変更
WSL2
で起動している仮想マシンでは、個別のアドレスを持っているため、ip a
等のコマンドで確認できるアドレスに対してリモートデスクトップ接続を行えば接続できますが、このアドレスはPCを再起動すると変更されてしまいます。
またWSL2
では、ホスト側となるWindows
で、WSL2
の仮想マシンで待ち受けているポートに対してポートフォワードする機能があり、デフォルトではWSL2
に転送するようになっているため、ホスト側のWindows
でlocalhost
を指定してリモートデスクトップアクセスすると、WSL2
で動作しているxrdp
にアクセスするような動作となります。
今回の環境ではWindows 10 Home
の環境となることから、Windows
ホスト側でリモートデスクトップサービスが動かないのでデフォルトのポートのままでも問題ありませんが、リモートデスクトップサービスが動作するWindows 10 Pro
では、localhost
によるアクセスを行うとポートフォワードできずに失敗するため、xrdp
の待ち受けポートを変更するようにします。
変更するポート番号はRDP
が動作する3389
以外なら何でもいいですが、ウェルノウンポート以外のポートにするのが望ましいので、今回は3389
に10000
を加えた13389
にします。
sudo sed -i -e '/^port/s/3389/13389/g' /etc/xrdp/xrdp.ini
Dock環境のインストール
Ubuntu
をUbuntu Desktop
環境で使うと、画面左にDock
と呼ばれるアプリケーション起動用のバーが表示されますが、今回の環境では表示されないようなので、gnome-tweak-tool
をインストールして、Dock
を使用できるようにします。
sudo apt install gnome-tweak-tool
gsettings set org.gnome.shell enabled-extensions "['ubuntu-dock@ubuntu.com']"
Ubuntuの日本語化
WSL2
のUbuntu
は日本語化されていないため、日本語化しておきます。
sudo apt install language-pack-ja
sudo localectl set-locale LANG=ja_JP.UTF-8
sudo dpkg-reconfigure tzdata
sudo apt install manpages-ja manpages-ja-dev
sudo apt install ibus-mozc
sudo localectl set-keymap jp106
入力ソースの追加は、各ユーザで実行するため、sudo
無しで以下実行します。
gsettings set org.gnome.desktop.input-sources sources "[('ibus', 'mozc-jp'), ('xkb', 'jp')]"
不足している日本語パッケージのインストール
Ubuntu Desktop
の画面から「設定」→「地域と言語」→「インストールされている言語の管理」をクリックした際に、足りないと言われるパッケージを予めインストールしておきます。
sudo apt -y install language-pack-gnome-ja
sudo apt -y install gnome-user-docs-ja
sudo apt -y install libreoffice-l10n-ja
sudo apt -y install firefox-locale-ja
sudo apt -y install mozc-utils-gui
sudo apt -y install thunderbird-locale-ja
sudo apt -y install gnome-getting-started-docs-ja
sudo apt -y install fonts-noto-cjk-extra
sudo apt -y install libreoffice-help-ja
xrdpの再起動
この時点でxrdp
が起動しているので、再起動して設定を反映させます。
前回の記事の通り、genie
が起動しているようであればsystemctl
コマンドが使えるはずなので、systemctl
で再起動します。
sudo systemctl restart xrdp
先ほど記載した通り、WSL2
のUbuntu
に割り当てられているIPアドレスは再起動ごとに変わってしまうため、localhost
を指定してUbuntu
にポートフォワーディングさせます。
WSL2のUbuntuへのリモートデスクトップアクセス
Windows
ホスト側の「リモートデスクトップ接続」を起動し、localhost
でポート転送して接続します。
また、先ほどxrdp
側のポート番号を変更しているため、後ろに13389
を加えてアクセスします。
ユーザ名、パスワードを入力後、以下の様な画面が表示されれば完了です。
おわりに
今回はUbuntu Desktop
をインストールする方法で行いましたが、genie
によりsystemd
が使えるようになっているので、他のデスクトップ環境を使用する場合でも、通常のUbuntu
にインストールするのと同じような感覚で作業できるようになっているかと思います。