Xrdp
xrdp は Microsoft の Remote Desktop Protocol (RDP) をサポートするデーモンです。Xvnc または xorgxrdp をバックエンドとして使用します。
目次
- 1 インストール
- 2 使用方法
- 3 ヒントとテクニック
- 4 トラブルシューティング
- 5 参照
インストール
xrdpAUR パッケージ (または開発版を使いたい場合は xrdp-gitAUR) をインストールしてください。これはバックエンドとして、Xvnc のみサポートします。
Xorg バックエンド
バックエンドの代わりに xorgxrdp を使用するには、xorgxrdpAUR パッケージを インストール して下さい。
使用方法
xrdp を起動したら RDP クライアントからローカルホストに接続できます (標準の RDP ポートは 3389)。xrdp は小さなメッセージウィンドウを表示します。
sessman-Xvnc を選択した場合、ホストのアカウントのユーザー名とパスワードを指定することができ、xrdp は新しい Xvnc インスタンスを起動します。/etc/xrdp/startwm.sh
にある SESSION リストからウィンドウマネージャが開きます。
セッションウィンドウを閉じて RDP 接続を終了すると、次回 RDP で接続したときは同じセッションにアクセスすることができます。セッションウィンドウからウィンドウマネージャやデスクトップ環境を終了した場合、セッションが終了され、次回は新しいセッションが開きます。
xrdp は既に同じジオメトリのセッションが開かれていないか確認して、ジオメトリ/解像度が一致しない場合は新しいセッションを起動します。
ヒントとテクニック
ブート時に自動起動
xrdpAUR パッケージには systemd のサービスファイルが含まれています。xrdp.service
を有効化してください。
グラフィックアクセラレーション
Xorg セッションの場合、Intel および AMD GPU の場合は xorgxrdp-glamorAUR、Nvidia GPU の場合は xorgxrdp-nvidiaAUR をインストールすることで、OpenGL および Vulkan グラフィック アクセラレーションを有効にできます。
サウンド
必要な PulseAudio モジュールを pulseaudio-module-xrdpAUR でインストールします。
PipeWire ユーザーの場合は、pipewire-module-xrdp-gitAUR をインストールしてください
非 root ユーザー
Xwrapper.config
に次の行を含めます:
/etc/X11/Xwrapper.config
allowed_users=anybody needs_root_rights=no
上記の行が存在しない場合、Remmina などのアプリケーションからのリモートデスクトップ接続は空の画面で開始されます。
トラブルシューティング
カーソルの周りの黒いボックス
マウスポインタの周りに黒いボックスがある場合は、Xcursor.core:1
行を含む ~/.Xresources-xrdp
を作成し、次のように ~/.xinitrc
にロードします。
xrdb ~/.Xresources-xrdp exec startlxde
xorg-xrdb のインストールが必要になる場合があります。
黒いスクリーン
~/.xinitrc
の --exit-with-session
が dbus_args
に設定されている場合、セッションマネージャーにログインした後に黒い画面が表示されることがあります。
~/.xinitrc
を ~/.xrdpinitrc
にコピーし、--exit-with-session
を削除して、~/.xinitrc
の代わりに ~/.xrdpinitrc
を呼び出すように /etc/xrdp/startwm.sh
を更新してみてください。~/.xinitrc
で説明されているように、~/.xrdpinitrc
への呼び出しにデスクトップ環境を追加する必要がある場合があります。 例えば ~/.xrdpinitrc xfce
デスクトップ環境で黒い画面が表示される
デスクトップ環境を使用しているときに黒い画面が表示される場合は、D-Bus が適切に初期化されていないことが原因である可能性があります。一部の DE (KDE Plasma など) は、以前のセッションから完全に動作するアプリケーション/ウィンドウを復元できる場合もあります。これにより、Plasmashell だけ が欠落しているように見えます。
~/.xinitrc
ファイルで dbus-launch --exit-with-session
を使用してデスクトップ環境を実行してみてください。 KDE Plasma の場合、コマンド /usr/lib/plasma-dbus-run-session-if-needed startplasma-x11
または dbus-launch dbus-launch --exit-with-session startplasma-x11
を使用できます。
グリーンスクリーン
ログインダイアログが表示され、[OK] をクリックしてもデスクトップ環境が起動しない場合は、/etc/xrdp/sesman.ini
の param=Xorg
を param=/usr/lib/Xorg
に変更します。
loginctl または systemctl --user が機能しない
/etc/pam.d/system-auth
内の systemd-home
への参照をすべてコメントアウトしてみてください。この問題 も参照してください。
gnome-keyring または KDE Wallet の入力を求めるプロンプト
セッションの開始時に gnome-keyring または KDE Wallet へのログインを求められた場合は、ファイル /etc/pam.d/xrdp-sesman
を次のように変更します。
/etc/pam.d/xrdp-sesman
#%PAM-1.0 auth include system-remote-login -auth optional pam_gnome_keyring.so -auth optional pam_kwallet5.so account include system-remote-login password include system-remote-login -password optional pam_gnome_keyring.so use_authtok session include system-remote-login -session optional pam_gnome_keyring.so auto_start -session optional pam_kwallet5.so auto_start
次に、/etc/pacman.conf
の NoUpgrade
に etc/pam.d/xrdp-sesman
(先頭のスラッシュなし) を追加します。gnome-keyring のみを使用する場合は、kwallet5 行を含める必要はありません。また、その逆も同様です。
自動起動アイテムを起動しないようにする
ユーザー定義の ~/.config/autostart
項目が開始されないようにするには、~/.xinitrc
のセッションで autostart ディレクトリパラメータを設定して、グローバルの /etc/xdg/autostart
のみを使用するようにします。
get_session(){ local dbus_args=(--sh-syntax) case "$SESSION" in awesome) dbus_args+=(awesome) ;; bspwm) dbus_args+=(bspwm-session) ;; budgie) dbus_args+=(budgie-desktop) ;; cinnamon) dbus_args+=(cinnamon-session -a /etc/xdg/autostart) ;;
無音
これは loginctl の問題の症状である可能性があるため、above を修正してみてください。システム journal で次のエラーが発生する可能性があります:
Failed to load module "module-x11-publish" (argument: "display=:10.0 xauthority="): initialization failed.
これは、systemd が PulseAudio を不適切に開始した結果です。回避策の 1 つは、自分のユーザーまたはすべてのユーザーの ユーザーユニット ファイル pulseaudio.service
および pulseaudio.socket
を 無効化 して、PulseAudio を開始することです。必要に応じて、/etc/pulse/client.conf
で autospawn
を yes
に設定します。
それでもサウンドが機能しない場合は、~/.xinitrc
の pulseaudio &
を使用して PulseAudio を手動で開始してみてください。
Two-finger scrolling is too fast
Use the xorg backend, make sure xorgxrdp is 0.9.19 or newer. Then add XRDP_XORG_TOUCHPAD_SCROLL_HACK=yes
to the [SessionVariables]
section of /etc/xrdp/sesman.ini
.
See upstream issue #150 for details.
Restricted functionality within remote system
A user may not have the same access permissions when logged into a system remotely as the same user does when logged in locally. Additional configuration may be required of the polkit permissions policies to grant access, including to mounted drives or to control network connections.
Mounted drives
For remote access permissions to mounted drives see udisks#Permissions.
NetworkManager
For remote access permissions to NetworkManager see NetworkManager#Set up PolicyKit permissions.