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アドレスを固定したいならば、それ専用の仮想スイッチを作成します。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 アドレスの値を指定して接続します。