1. 背景
macOS から Debian に GUI でリモート接続する必要があった。クライアントは macOS Sequoia 上の Windows App、サーバは Debian 13(display manager: lightdm)である。ローカルではかつて GNOME Flashback を常用していたが、リモートは軽量な Xfce4 を使いたい方針。
2. 目的
- ローカル環境を壊さずに、リモート接続時に軽量な Xfce4 セッションを起動する。
- ログインループ等の落とし穴を避け、運用を単純化する。
結果として macOS から Debian 13 環境へのリモートデスクトップ接続をすることができた。
3. 構成と前提
- xrdp(Xorg バックエンド)+ lightdm。
- ローカル:lightdm のセッション選択で GNOME Flashback 等を利用。
- リモート(RDP):~/.xsession の指定に従って Xfce4 を起動。
- Windows App のドライブ共有を有効にすると Linux 側に /thinclient_drives が現れる。
4. 調査過程
~/.xsession に startxfce4 と記入して挙動を確認した。結果は以下である。
- ローカルログイン:lightdm のセッション選択により GNOME Flashback を普通に起動でき ~/.xsession の固定化効果は見られなかった。
- xrdp 経由:Xfce4 が自動的に起動し、軽快に動作した。
懸念していたログインループは本手順では再現しなかった。
5. 解決方法(最小手順)
- xrdp と Xfce4 を導入する。
- リモートで利用する各ユーザーのホームに ~/.xsession を作成し、内容を以下の一行のみとする。
1 | startxfce4 |
これにより RDP 時だけ Xfce4 が起動し、ローカルは従来どおり自由にセッションを選べる。
6. xrdp 導入手順
xrdp は Debian 公式リポジトリに含まれているため、導入は容易である。以下の手順で必要なパッケージを導入し、サービスを起動させる。
1) パッケージ導入
まずパッケージリストを更新し、xrdp を導入する。
1 2 | sudo apt update sudo apt install xrdp |
2) サービス確認
導入直後に自動で起動する。状態を確認するには以下を実行する。
1 | systemctl status xrdp |
必要に応じて再起動する場合は次のとおりである。
1 | sudo systemctl restart xrdp |
3) ファイアウォール設定
TCP ポート 3389 を開放する必要がある。例えば ufw を利用している場合は次のように設定する。
1 | sudo ufw allow 3389/tcp |
4) セッション指定
リモート接続時に起動するデスクトップ環境を指定するには、各ユーザーのホームに
1 | ~/.xsession |
を作成し、内容を以下の一行のみとする。
1 | startxfce4 |
5) 注意事項
- RDP セッションはローカルの X セッションとは共有されない。
- 認証は通常のログインと同じく PAM により行われる。
- インターネットへ直接公開せず、VPN や SSH トンネルを経由するのが望ましい。
7. 既知の仕様・注意事項
- セッション非共有:xrdp の X セッションはローカルの X セッションとは別物である。RDP で起動したアプリをローカルで続き表示することはできない。逆も同様である。切断はプロセス終了を意味しないが、表示面は別セッションである。
- thinclient_drives の扱い:Windows App のドライブ共有でセッション専用のマウント /thinclient_drives が現れる。バックアップやミラー、ウイルススキャンの除外対象に入れると循環コピーやスキャン時間増大を避けられる。
- ~/.xsession の影響範囲:lightdm のローカルログインではセッション選択が優先されるため ~/.xsession による固定化効果は出にくい。
- 全ユーザー配布の是非: ~/.xsession を全員に配布すると RDP では必ず Xfce4 になる。
8. 運用決定
- RDP 専用セッションは Xfce4 とする。ローカルは GNOME Flashback も含め自由に選択する。
- ~/.xsession は RDP を使うユーザーにのみ配布する。
- /thinclient_drives はバックアップ・スキャンの除外に登録する。
- RDP 切断後のジョブ(例:VM)はバックグラウンドで動き続けるが、表示の引き継ぎは不可という前提で運用する。
9. トラブルシュート(メモ)
- ログインループ疑い:本構成では未再現。まず ~/.xsession の内容を極力単純に保つ。
- ウィンドウの既定最大化(Windows App 側の挙動):既定で全画面化を避けたい場合は Windows App 側の表示設定を見直す(起動時フルスクリーンやウィンドウフィット設定など)。
10. まとめ
RDP は別セッションであるという前提を受け入れ、リモートには軽量な Xfce4 を利用すると運用は安定する。ローカルとリモートの共存を崩さず、省リソースで必要十分な環境を得た。
