xrdpによる接続

Ubuntuへの接続

Ubuntuに接続する場合を考えます。まずは仮想マシン接続で接続した状態で、xrdpがインストールされているか

$ apt list xrdp --installed

のように確認します。されていないならば、

$ sudo apt update
$ sudo apt install xrdp

としてインストールします。そしてxrdpの状態を、

$ systemctl status xrdp

で表示し、"Active: active (running)"であることを確認し、Qで終了します。次に

$ hostname -I

で得られるIPアドレスを書き留めます。

続けて接続を切り替えるためのログアウトします。ログアウトしていないとxrdpで接続を試みたときに失敗し、すぐにウィンドウが閉じられます。

リモート デスクトップ接続 (mstsc.exe) から接続します。接続先の[コンピューター]には、先ほど書き留めたIPアドレスを指定します。このとき[このリモート コンピューターの ID を識別できません。接続しますか?]と問われたら、[はい]を選択します。

[Login to user-Virtual-Machine]のダイアログが表示されたら、[Session]は[Xorg]のまま、[username]と[password]に、Ubuntuのアカウントのユーザー名とパスワードを入力します。

ただしこの状態でログインすると素の状態のGNOMEセッションで表示されるため、

Ubuntu標準の状態に合わせるには.xsessionrcを、

$ cat <<EOF > ~/.xsessionrc
> export GNOME_SHELL_SESSION_MODE=ubuntu
> export XDG_CURRENT_DESKTOP=ubuntu:GNOME
> EOF

のように作成し、ログアウトしてからリモート デスクトップ接続で再接続します。

xrdpの問題は、ゲストの/var/log/xrdp.logにあるログで確認できます。

IPアドレスの固定

このIPアドレスを固定したいならば、それ専用の仮想スイッチを作成します。Hyper-Vの「Default Switch」によるNATとDHCPを活かしつつ固定IPも得る #Hyper-V - Qiita

まずHyper-Vのメニューの【操作 → 仮想スイッチ マネージャー】を開き、種類で[内部]を選択して[仮想スイッチの作成]をクリックします。そして[接続の種類]が[内部ネットワーク]となっていることを確認して[OK]をクリックします。

次に対象の仮想マシンを選択し、メニューの【操作 → 設定】を開き、[ハードウェアの追加]で[ネットワーク アダプター]を追加します。そしてその[仮想スイッチ]に、先ほど作成した仮想スイッチを指定します。

続けてホスト側のipconfigで、作成した仮想スイッチに割り当てられているIPv4 アドレスとサブネット マスクの値を確認します。

C:\>ipconfig
イーサネット アダプター vEthernet (Internal):

   接続固有の DNS サフィックス . . . . .:
   リンクローカル IPv6 アドレス. . . . .: fe80::****:****:****:****%*
   自動構成 IPv4 アドレス. . . . . . . .: 169.254.***.***
   サブネット マスク . . . . . . . . . .: 255.255.0.0
   デフォルト ゲートウェイ . . . . . . .:

仮想マシン接続で接続し、Ubuntuの設定の[ネットワーク]に追加されたネットワークのOptionsを開き、[IPv4]タブの[IPv4メソッド]を手動として、そのアドレスに先ほど確認したIPv4 アドレスの値を、サブネット マスクの範囲内で指定します。

設定が済んだらログアウトし、リモート デスクトップ接続から設定したIPv4 アドレスの値を指定して接続します。

複数のダウンロードサイトから、まとめて検索