ubuntu24使いはじめのとき、リモートデスクトップ接続で内部エラーってなってた。
dockerコンテナでxrdpコンテナはホイホイ動いたけど、母艦にrdpできてへんかったなって思い出した。
今回はwindows/macから接続できるようにしてみる。
接続結果
windowsからやとこうなる。
ただし、警告が出る。
これを解決せんとmacosからはつなげられへん。
解決させて、macosから接続するとこうなる。
ほな、解決の経緯こっから下な。
アプローチ
ubuntu24へのリモートデスクトップを真面目にやると、いくつもヒットする。
作者さんありがとう。
自分はdockerコンテナで使ってるxfce使いたいなって思ったから、1つ目のリンクでやりかけた。
# sudo apt install xfce4 xfce4-goodies
# sudo apt install xrdp
せやけど、途中でsystemctlでステータス確認したらエラーが出てきた。
7月 21 03:05:31 nafslinux-ubu24 xrdp[27860]: [ERROR] g_tcp_bind(7, 3389) failed bind IPv6 (errno=98) and IPv4 (errno=22).
7月 21 03:05:31 nafslinux-ubu24 xrdp[27860]: [ERROR] trans_listen_address failed
7月 21 03:05:31 nafslinux-ubu24 xrdp[27860]: [CORE ] Failed to start xrdp daemon, possibly address already in use.
7月 21 03:05:31 nafslinux-ubu24 systemd[1]: xrdp.service: Control process exited, code=exited, status=1/FAILURE
なんやねん、already in useってあるやんけ。
先にどっかのプロセスが使ってるってどういうことやねん。
そんな設定したっけかなぁ?
しばらくアイスコーヒー飲みながら考える。
んんん。
あ、思い出した。
gnomeのgui設定画面になんかあったような気がする・・・。
たぶんシステム設定の中にremote desktop
ってあるココな。
desktop sharingとリモートログインがgnome設定にあるんや。
ということは、これがさっきのalready in useってあった原因やねんな。
抵抗せずにxrdp&xfceやめて、コレ使わせてもらおか。
無理にコマンドライン使わんでも設定できそうやん。
リモートデスクトップのサーバ側設定
さっきの画面で、デフォルトで入ってる内容を更新して、ユーザ名とパスワードをちゃんと設定した。
rdp接続設定する
次いこか。最初にロックの解除せなアカン。
母艦のホストやから動かしてるxrdpコンテナのポート番号と被らんようにしといたらええし、いったんデフォルトの3389のままにしとこ。
ユーザ名とパスワードも入れとこか。
rdpにはバージョンがある
普段はあんまり意識せんけど、リモートデスクトップにはバージョンがある。
今でこそ接続元でctrl+cしてから、接続先でctrl+vとかすると2GBファイルがコピーできるけど、windows2000/2003ではそんなんできんかった。
windows2008のあたりでコピー機能が使えるようになったんとちゃうかな。
最初見た時はsmb/ftpとか使わんでも行けるんやって嬉しかったの覚えてる。
windows2022/11あたりで、新しいプロトコルバージョンになるとコピーできるファイルサイズ上限増えてるかもしれんけど、コピーしてる途中でほかのコピー操作したら処理がエラー出たはず。
xrdp使い始めた頃から、linuxで使えるリモートデスクトップは最新バージョンではなかったけど、macからxrdp動いてるコンテナにもファイルコピーはできる。
リモートデスクトップのプロトコルバージョンはサーバ側の実装によるし、クライアント側はそれにあわせてつないでくはず。
せやから、windows11からwindows2003にリモートデスクトップしても、コピペでファイルコピーはできん。
リモートデスクトップのクライアント側設定
windowsでmstsc.exeを使うとリモートデスクトップできる。
GNOMEっていう証明書入っとるんやな。
つないだら、画面の上の方にメッセージが出とる。
書いてる内容はこんなの。
ローカルLANの中やから別に放置してもええ。
To make it secure set <b> use redirection server name:i:1 <b> in the RDP config file
リモートデスクトップの接続設定は.rdpって種類のファイルに保管できる。
普段はdefault.rdpってファイルがどっかにあってそれを使ってるはず。
このファイルにはクリップボード使うかとか、接続の帯域幅とか指定が入ってるんやけど、実際はもっと細かい設定が書かれてる。
中身がテキストファイルになってて、細かいオプションがあって、その中にさっきのメッセージの設定がある。
macでもこの定義使ってる。
たぶん設定できる内容は違いがあるんやろけど、androidとかiosにもあるはず。
警告出えへんようにする
さっきwindowsで出てた接続のメッセージは、オプション指定を書いとけやっていう意味で、windowsでは無視してもrdp接続はできる。
macosからつなぐときは、この警告が出んようにせんと接続できんかった。
macでなんとかする方法
App store経由でrdpのクライアント入れて使ってるんやけど、このときの定義をGUIで作っておいてエクスポートする。
windowsのrdpと同じで、このエクスポート結果をエディタで開いたら定義があって修正できる。
さっきのメッセージで出てた定義が書いてあるから、ゼロを1に変更してインポートする。
これやっとかへんとエラーコード207帰ってきてつながらんねんな。
この定義はwindowsの接続設定にもあるから、同じように書き換えたらええ。
リモートデスクトップのセッション
セッションってのがリモートデスクトップにある。
windowsホストの場合
例えば、windows11とか10で別のwindows11とか10に接続してるときに、別の端末から接続すると、後勝ちでリモートデスクトップできる。
このとき先に接続してた人のリモートデスクトップのセッションは切れる。
windowsサーバやったら2つまで同時につながるけど、3つ目の接続は後勝ちでリモートデスクトップ接続できる。
リモートデスクトップのライセンスってのがあって、それを買ってたら3つ目以降もつながる。
このライセンスってgoogle cloudとかawsのwindowsホストでも入れて使えるんかなぁ。office365入れたらアカンってどっかで見たからrdpライセンスとかアウトやったりするんかなぁ。
linuxホストの場合
ubuntu24の場合はwindows10/11に近くて、1つしかつながらん。
何個もつなぎたいなら、xrdpコンテナをポート番号別のものにして提供するようにしたらメモリの許す限りリモートデスクトップサーバが作れるなぁ。
処理速度遅いやろけど、nfsに永続化領域作っといてコンテナ動かしたら、個人用のデスクトップ環境作れるなぁ。
nfsをefsにして永続化領域用意したら大量のデータが置いとけるデスクトップ環境できるかもな。
自分用のが1つあったらええし、費用請求が怖すぎるから、そんなん絶対やらんけど。