毎度、ググっても出てこない小ネタを取り扱っております。
本記事は個人的な見解であり、筆者の所属するいかなる団体にも関係ございません。
0. Ubuntu 22.04 LTS でリモートデスクトップ接続を試してみたがどうも上手くいかない
Ubuntu 22.04でリモートデスクトップが使えるようになったという話だったので、WindowsのRDPクライアントからUbuntuデスクトップへの接続を試してみましたが、接続するのに2時間ぐらい溶かしたので、ハマる人が少なくなるようにメモっておきます。
1. リモートデスクトップ設定をする
1-1. 環境は以下の通りです。
- RDPサーバー:
- OS: Ubuntu 22.04.1 LTS
- Kernel: Linux 5.15.0-46-generic #49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
- gnome-remote-desktop: gnome-remote-desktop/jammy-updates,now 42.3-0ubuntu1 amd64
- RDPクライアント:
- OS: Windows 10
1-2. Ubuntuデスクトップ側にRDPサーバー設定
設定方法は、あわしろいくや さんの記事が良いでしょう。
第713回 Ubuntu 22.04 LTSの新機能、リモートデスクトップのRDPサポートを使用する | gihyo.jp
2. つながりません。。。
どんなエラーが出るか
2-1. クライアント側(Windows 10)
Windows10の接続クライアントでは、以下のようなエラーが出て接続ダイアログに戻ります。
プロトコル エラーのため、セッションは切断されます。
リモートコンピューターに接続し直してください。
以下のようなダイアログが出ます。
2-2. サーバー側(Ubuntu)
サーバー側では以下のようなログが出ます。
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:323] [4779:5407] [WARN][com.winpr.negotiate] - AcceptSecurityContext status SEC_I_CONTINUE_NEEDED [0x00090312]
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:324] [4779:5407] [WARN][com.winpr.negotiate] - AcceptSecurityContext status SEC_I_COMPLETE_NEEDED [0x00090313]
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:325] [4779:5407] [ERROR][com.freerdp.core.transport] - BIO_read returned a system error 104: Connection reset by peer
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:325] [4779:5407] [ERROR][com.freerdp.core] - transport_read_layer:freerdp_set_last_error_ex ERRCONNECT_CONNECT_TRANSPORT_FAILED [0x0002000D]
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:325] [4779:5407] [ERROR][com.freerdp.core.nla] - [nla_recv] error: -1
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:325] [4779:5407] [ERROR][com.freerdp.core.transport] - client authentication failure
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:325] [4779:5407] [ERROR][com.freerdp.core.peer] - peer_recv_callback: CONNECTION_STATE_INITIAL - rdp_server_accept_nego() fail
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:325] [4779:5407] [ERROR][com.freerdp.core.transport] - transport_check_fds: transport->ReceiveCallback() - -1
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:326] [4779:4779] [ERROR][com.freerdp.core.transport] - BIO_should_retry returned a system error 32: Broken pipe
Aug 23 11:57:50 testpc gnome-remote-de[4779]: Unable to check file descriptor, closing connection
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:392] [4779:5417] [WARN][com.winpr.negotiate] - AcceptSecurityContext status SEC_I_CONTINUE_NEEDED [0x00090312]
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:393] [4779:5417] [WARN][com.winpr.negotiate] - AcceptSecurityContext status SEC_I_COMPLETE_NEEDED [0x00090313]
Aug 23 11:57:50 testpc gnome-remote-de[4779]: [RDP.RDPGFX] CapsAdvertise: Accepting capability set with version RDPGFX_CAPVERSION_106, Client cap flags: H264 (AVC444): true, H264 (AVC420): true
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:455] [4779:5421] [ERROR][com.freerdp.channels.rdpgfx.server] - WTSVirtualChannelRead failed!
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:455] [4779:5421] [ERROR][com.freerdp.channels.rdpgfx.server] - rdpgfx_server_handle_messages failed with error 1359
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:455] [4779:5417] [ERROR][com.freerdp.core.transport] - BIO_read returned a system error 104: Connection reset by peer
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:455] [4779:5417] [ERROR][com.freerdp.core] - transport_read_layer:freerdp_set_last_error_ex ERRCONNECT_CONNECT_TRANSPORT_FAILED [0x0002000D]
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:456] [4779:4779] [ERROR][com.freerdp.core] - rdp_set_error_info:freerdp_set_last_error_ex ERRINFO_RPC_INITIATED_DISCONNECT [0x00010001]
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:456] [4779:4779] [ERROR][com.freerdp.core] - rdp_set_error_info: TODO: Trying to set error code ERRINFO_RPC_INITIATED_DISCONNECT, but ERRCONNECT_CONNECT_TRANSPORT_FAILED already set!
Aug 23 11:57:50 testpc gnome-remote-de[4779]: Unable to check file descriptor, closing connection
Aug 23 11:57:50 testpc gnome-remote-de[4779]: [RDP.CLIPRDR] Client capabilities: long format names, stream file clip, file clip no file paths, can lock clip data, huge file support
Aug 23 11:57:50 testpc gnome-remote-desktop-daemon[4779]: [11:57:50:468] [4779:4779] [ERROR][com.freerdp.core.transport] - BIO_should_retry returned a system error 32: Broken pipe
Aug 23 11:57:50 testpc systemd[1]: run-user-1000-gnome\x2dremote\x2ddesktop-cliprdr\x2d9PHKSw.mount: Deactivated successfully.
3. 解決
問題は選択していた「画面の色」でした。
「最高品質(32ビット)」を選択して接続してください。
High Colorの15ビットも16ビットもTrue Colorの24ビットもダメで、「最高品質(32ビット)」でしかつながりませんでした。
ちなみに2-2.のログはこの接続エラーには全く関係なくて、正常に接続したときにも同じように表示されます....。。
4. まとめ
帯域を節約しようとしたらエライ目に遭いました。
ちなみに「画面の設定」でリモートデスクトップの解像度を指定しても関係ありません。Ubuntuデスクトップ側の画面の解像度になります。