LinuxにRDPプロトコルを喋らせる。
これでwindowsPCに標準装備の「リモートデスクトップ接続」を使ってLinuxにアクセスできる。まるでxdmcp
またmacOSではクライアントソフト「Microsoft Remote Desktop」でアクセス可能です
このアプリは、Linuxに「リモートディスクトップ」のサーバ機能をもたらす
ちなみに「リモートディスクトップ」のクライアントアプリもLinuxにはあり、それは FreeRDP
「リモートデスクトップ接続」を受けるLinuxマシンにて下記セットアップを行います
OSインストール時に「Workstation」を選んでいるか、そうでないなら「dnf groupinstall Workstation」でデスクトップ環境を構築してください
あとグラフィカルモードにしておきます
[root@rockylinux9 ~]# dnf groupinstall Workstation
[root@rockylinux9 ~]# systemctl set-default graphical.target
[root@rockylinux9 ~]# reboot
xrdpはepelリポジトリにあるみたいなので、epelを入れてからになります.
[root@rockylinux9 ~]# dnf install epel-release
[root@rockylinux9 ~]# dnf install xrdp
xrdpと同時に「Xvnc」を提供する「tigervnc-server-minimal」パッケージもインストールされます
っで早速動かします
[root@rockylinux9 ~]# systemctl enable xrdp --now
Created symlink /etc/systemd/system/multi-user.target.wants/xrdp.service → /usr/lib/systemd/system/xrdp.service.
[root@rockylinux9 ~]# systemctl status xrdp
● xrdp.service - xrdp daemon
Loaded: loaded (/usr/lib/systemd/system/xrdp.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2023-04-13 12:38:20 JST; 6s ago
Docs: man:xrdp(8)
man:xrdp.ini(5)
Main PID: 2154 (xrdp)
Tasks: 1 (limit: 101932)
Memory: 1.0M
CPU: 3ms
CGroup: /system.slice/xrdp.service
mq2154 /usr/sbin/xrdp --nodaemon
Apr 13 12:38:20 rockylinux9 systemd[1]: Started xrdp daemon.
Apr 13 12:38:20 rockylinux9 xrdp[2154]: [INFO ] starting xrdp with pid 2154
Apr 13 12:38:20 rockylinux9 xrdp[2154]: [INFO ] address [0.0.0.0] port [3389] mode 1
Apr 13 12:38:20 rockylinux9 xrdp[2154]: [INFO ] listening to port 3389 on 0.0.0.0
Apr 13 12:38:20 rockylinux9 xrdp[2154]: [INFO ] xrdp_listen_pp done
[root@rockylinux9 ~]#
「リモートデスクトップ」がデフォで使用するportは 3389/tcp で、一応「/usr/lib/firewalld/services/rdp.xml」にテンプレートがあった. これを使います
[root@rockylinux9 ~]# firewall-cmd --add-service=rdp --zone=public --permanent
[root@rockylinux9 ~]# firewall-cmd --reload
windwosPCの検索欄で[リモートディスクトップ接続]を探させて、アプリを起動する
xrdpをインストールしたLinuxマシンを指定します
*[オプション]ボタンをクリックして画面サイズを変更しても構わない。
[接続]ボタンをクリックすると下記のような画面が現れる。
ここで、rockylinux9マシンに登録されているアカウント名とパスワードを入力して[OK]ボタンを押下する.
認証に成功すると下記画面のようにログインできます
右クリックしたらメニューが出てきてとかなCentOS7のような操作にしたければ、GNOME classicにする.
コンソールのGUIからログインする際にはログインユーザを選択すると画面右下に歯車マークが表示される.
これをクリックして臨む環境を選んでパスワード認証を行うとその環境になる
っがリモートディスクトップ越しとなるとその選択肢がない.
なのではなっから設定を施す
参照先https://access.redhat.com/discussions/6970608
[root@rockylinux9 ~]# cp /usr/share/accountsservice/user-templates/standard /etc/accountsservice/user-templates
[root@rockylinux9 ~]# sed -i 's/Session=gnome/Session=gnome-classic/g' /etc/accountsservice/user-templates/standard
[root@rockylinux9 ~]# sed -i 's/#WaylandEnable=false/WaylandEnable=false/g' /etc/gdm/custom.conf
参照先では「/etc/bashrc」に「export GNOME_SHELL_SESSION_MODE=classic」を入れているが、こうすると全てのユーザに強制されてしまい、
ローカルのログイン(計算機にモニターが繋がれて、そこでログイン)が出来なくなるみたい...
なので、「$HOME/.bash_profile」に「export GNOME_SHELL_SESSION_MODE=classic」を入れた方がいいのかも。
これならローカルでのログインもできます。 っが、classicに固定されます...選択が有効にならないです
っでリモートディスクで接続するとこんな感じ