Xrdp

提供: ArchWiki
2024年1月10日 (水) 18:36時点におけるKgx (トーク | 投稿記録)による版 (→‎Restricted functionality within remote system: 翻訳)
ナビゲーションに移動 検索に移動
この記事あるいはセクションは翻訳の途中です。
ノート: 英語版からの記事の転載と若干の修正のみ。飜訳はまだです。 (議論: トーク:Xrdp#)

xrdp は Microsoft の Remote Desktop Protocol (RDP) をサポートするデーモンです。Xvnc または xorgxrdp をバックエンドとして使用します。

インストール

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-sessiondbus_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.iniparam=Xorgparam=/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.confNoUpgradeetc/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.confautospawnyes に設定します。

それでもサウンドが機能しない場合は、~/.xinitrcpulseaudio & を使用して PulseAudio を手動で開始してみてください。

2本指でのスクロールが速すぎる

xorg バックエンドを使用します。xorgxrdp が 0.9.19 以降であることを確認してください。次に、XRDP_XORG_TOUCHPAD_SCROLL_HACK=yes/etc/xrdp/sesman.ini[SessionVariables] セクションに追加します。

詳細については、upstream issue #150 を参照してください。

リモートシステム内の制限された機能

ユーザーがシステムにリモートでログインする場合、同じユーザーがローカルでログインする場合と同じアクセス許可を持たない場合があります。マウントされたドライブやネットワーク接続の制御などのアクセスを許可するには、polkit のアクセス許可ポリシーの追加設定が必要になる場合があります。

マウントされたドライブ

マウントされたドライブへのリモートアクセス許可については、udisks#パーミッション を参照してください。

NetworkManager

NetworkManager へのリモートアクセス権限については、NetworkManager#PolicyKit のパーミッションをセットアップする を参照してください。

参照

  • TigerVNC - RDP の代替としてバックエンドで使われる VNC
  • freerdp - ネットワークレベル認証 (NLA) などの RDP 7.1 の機能をサポートしている rdesktop フォーク。[1] を参照。