「Xrdp」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(他言語へのリンクを追加)
 
(2人の利用者による、間の26版が非表示)
1行目: 1行目:
 
[[Category:リモートデスクトップ]]
 
[[Category:リモートデスクトップ]]
 
[[en:Xrdp]]
 
[[en:Xrdp]]
  +
[[zh-hans:Xrdp]]
'''xrdp''' は Microsoft の [[Wikipedia:ja:Remote Desktop Protocol|Remote Desktop Protocol]] (RDP) をサポートするデーモンです。Xvnc, X11rdp, xorgxrdp をバックエンドとして使用します。
 
  +
'''xrdp''' は Microsoft の [[Wikipedia:ja:Remote Desktop Protocol|Remote Desktop Protocol]] (RDP) をサポートするデーモンです。Xvnc または xorgxrdp をバックエンドとして使用します。
   
 
== インストール ==
 
== インストール ==
   
{{AUR|xrdp}} パッケージ (または開発版を使いたい場合は {{AUR|xrdp-git}}) を[[インストール]]してください。
+
{{AUR|xrdp}} パッケージ (または開発版を使いたい場合は {{AUR|xrdp-git}}) を[[インストール]]してください。これはバックエンドとして、Xvnc のみサポートします
  +
  +
=== Xorg バックエンド ===
  +
  +
バックエンドの代わりに xorgxrdp を使用するには、{{AUR|xorgxrdp}} パッケージを [[インストール]] して下さい。
  +
  +
== 使用方法 ==
  +
xrdp を起動したら RDP クライアントからローカルホストに接続できます (標準の RDP ポートは 3389)。''xrdp'' は小さなメッセージウィンドウを表示します。
  +
  +
''sessman-Xvnc'' を選択した場合、ホストのアカウントのユーザー名とパスワードを指定することができ、''xrdp'' は新しい ''Xvnc'' インスタンスを起動します。{{ic|/etc/xrdp/startwm.sh}} にある ''SESSION'' リストからウィンドウマネージャが開きます。
  +
  +
セッションウィンドウを閉じて RDP 接続を終了すると、次回 RDP で接続したときは同じセッションにアクセスすることができます。セッションウィンドウからウィンドウマネージャやデスクトップ環境を終了した場合、セッションが終了され、次回は新しいセッションが開きます。
  +
  +
''xrdp'' は既に同じジオメトリのセッションが開かれていないか確認して、ジオメトリ/解像度が一致しない場合は新しいセッションを起動します。
  +
  +
== ヒントとテクニック ==
   
 
=== ブート時に自動起動 ===
 
=== ブート時に自動起動 ===
{{AUR|xrdp}} パッケージには systemd のサービスファイルが含まれています。{{ic|xrdp.service}} と {{ic|xrdp-sesman.service}} を[[有効化]]してください。
 
   
  +
{{AUR|xrdp}} パッケージには systemd のサービスファイルが含まれています。{{ic|xrdp.service}} を[[有効化]]してください。
=== ターミナルサーバーで実行 (Xorg) ===
 
{{AUR|xorgxrdp-git}} パッケージを[[インストール]]してください。
 
   
  +
=== グラフィックアクセラレーション ===
{{ic|1=allowed_users=anybody}} を {{ic|/etc/X11/Xwrapper.config}} に追加して誰でも X を起動できるように設定します。
 
   
  +
Xorg セッションの場合、Intel および AMD GPU の場合は {{AUR|xorgxrdp-glamor}}、Nvidia GPU の場合は {{AUR|xorgxrdp-nvidia}} をインストールすることで、[[OpenGL]] および [[Vulkan]] グラフィック アクセラレーションを有効にできます。
{{ic|~/.xinitrc}} または {{ic|/etc/X11/xinit/xinitrc}} を編集してデスクトップ環境を起動するように設定してください。
 
   
==== トラブルシューティ ====
+
=== サウ ===
   
  +
必要な [[PulseAudio]] モジュールを {{AUR|pulseaudio-module-xrdp}} でインストールします。
マウスポインタの周りに黒い枠が表示される場合、{{ic|~/.Xresources-xrdp}} を {{ic|Xcursor.core:1}} という内容で作成して {{ic|~/.xinitrc}} で以下のようにロードしてください:
 
  +
  +
[[PipeWire]] ユーザーの場合は、{{AUR|pipewire-module-xrdp-git}} をインストールしてください
  +
  +
=== 非 root ユーザー ===
  +
  +
{{ic|Xwrapper.config}} に次の行を含めます:
  +
  +
{{hc|/etc/X11/Xwrapper.config|2=
  +
allowed_users=anybody
  +
needs_root_rights=no
  +
}}
  +
  +
上記の行が存在しない場合、[[Remmina]] などのアプリケーションからのリモートデスクトップ接続は空の画面で開始されます。
  +
  +
== トラブルシューティング ==
  +
  +
=== カーソルの周りの黒いボックス ===
  +
  +
マウスポインタの周りに黒いボックスがある場合は、{{ic|Xcursor.core:1}} 行を含む {{ic|~/.Xresources-xrdp}} を作成し、次のように {{ic|~/.xinitrc}} にロードします。
   
 
{{bc|<nowiki>
 
{{bc|<nowiki>
26行目: 59行目:
 
</nowiki>}}
 
</nowiki>}}
   
{{pkg|xorg-xrdb}} のインストールが必要になります。
+
{{pkg|xorg-xrdb}} のインストールが必要になる場合があります。
   
  +
=== 黒いスクリーン ===
=== Vino で実行 (root セッションの Gnome VNC-Server) ===
 
  +
  +
{{ic|~/.xinitrc}} の {{ic|--exit-with-session}} が {{ic|dbus_args}} に設定されている場合、セッションマネージャーにログインした後に黒い画面が表示されることがあります。
  +
  +
{{ic|~/.xinitrc}} を {{ic|~/.xrdpinitrc}} にコピーし、{{ic|--exit-with-session}} を削除して、{{ic|~/.xinitrc}} の代わりに {{ic|~/.xrdpinitrc}} を呼び出すように {{ic|/etc/xrdp/startwm.sh}} を更新してみてください。{{ic|~/.xinitrc}} で説明されているように、{{ic|~/.xrdpinitrc}} への呼び出しにデスクトップ環境を追加する必要がある場合があります。 例えば {{ic|~/.xrdpinitrc xfce}}
  +
  +
=== デスクトップ環境で黒い画面が表示される ===
  +
  +
デスクトップ環境を使用しているときに黒い画面が表示される場合は、[[D-Bus]] が適切に初期化されていないことが原因である可能性があります。一部の DE (KDE Plasma など) は、以前のセッションから完全に動作するアプリケーション/ウィンドウを復元できる場合もあります。これにより、''Plasmashell だけ'' が欠落しているように見えます。
  +
  +
{{ic|~/.xinitrc}} ファイルで {{ic|dbus-launch --exit-with-session}} を使用してデスクトップ環境を実行してみてください。 KDE Plasma の場合、コマンド {{ic|/usr/lib/plasma-dbus-run-session-if-needed startplasma-x11}} または dbus-launch {{ic|dbus-launch --exit-with-session startplasma-x11}} を使用できます。
  +
  +
=== グリーンスクリーン ===
  +
  +
ログインダイアログが表示され、[OK] をクリックしてもデスクトップ環境が起動しない場合は、{{ic|/etc/xrdp/sesman.ini}} の {{ic|1=param=Xorg}} を {{ic|1=param=/usr/lib/Xorg}} に変更します。
  +
  +
=== loginctl または systemctl --user が機能しない ===
  +
  +
{{ic|/etc/pam.d/system-auth}} 内の {{ic|systemd-home}} への参照をすべてコメントアウトしてみてください。[https://github.com/neutrinolabs/xrdp/issues/1684 この問題] も参照してください。
  +
  +
=== gnome-keyring または KDE Wallet の入力を求めるプロンプト ===
  +
  +
セッションの開始時に gnome-keyring または [[KDE Wallet]] へのログインを求められた場合は、ファイル {{ic|/etc/pam.d/xrdp-sesman}} を次のように変更します。
  +
{{hc|/etc/pam.d/xrdp-sesman|2=
  +
#%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'''
  +
}}
  +
  +
次に、{{ic|/etc/pacman.conf}} の {{ic|NoUpgrade}} に {{ic|etc/pam.d/xrdp-sesman}} (先頭のスラッシュなし) を追加します。gnome-keyring のみを使用する場合は、kwallet5 行を含める必要はありません。また、その逆も同様です。
  +
  +
=== 自動起動アイテムを起動しないようにする ===
  +
  +
ユーザー定義の {{ic|~/.config/autostart}} 項目が開始されないようにするには、{{ic|~/.xinitrc}} のセッションで autostart ディレクトリパラメータを設定して、グローバルの {{ic|/etc/xdg/autostart}} のみを使用するようにします。
   
サーバーを有効化すると vino-preferences から確認できるようになります。Vino はデフォルトでポート 5900 を使って接続するので、xrdp の設定ファイルを編集する必要があります。以下のコードを使って xrdp の設定ファイル ({{ic|/etc/xrdp/xrdp.ini}}) に vino のセッションを追加してください:
 
 
{{bc|<nowiki>
 
{{bc|<nowiki>
  +
get_session(){
# echo "
 
  +
local dbus_args=(--sh-syntax)
[xrdp8]
 
  +
case "$SESSION" in
name=Vino-Session
 
  +
awesome) dbus_args+=(awesome) ;;
lib=libvnc.so
 
  +
bspwm) dbus_args+=(bspwm-session) ;;
username=ask
 
  +
budgie) dbus_args+=(budgie-desktop) ;;
password=ask
 
  +
cinnamon) dbus_args+=(cinnamon-session -a /etc/xdg/autostart) ;;
ip=127.0.0.1
 
port=5900
 
" >> "/etc/xrdp/xrdp.ini"
 
 
</nowiki>}}
 
</nowiki>}}
   
  +
=== 無音 ===
Vino のセッションに接続するには xrdp サーバーを再起動する必要があります (xfreerdp でテスト済み)。
 
   
  +
これは ''loginctl'' の問題の症状である可能性があるため、[[Xrdp#loginctl または systemctl --user が機能しない|above]] を修正してみてください。システム [[journal]] で次のエラーが発生する可能性があります:
== 使用方法 ==
 
xrdp を起動したら RDP クライアントからローカルホストに接続できます (標準の RDP ポートは 3389)。''xrdp'' は小さなメッセージウィンドウを表示します。
 
   
  +
Failed to load module "module-x11-publish" (argument: "display=:10.0 xauthority="): initialization failed.
''sessman-Xvnc'' を選択した場合、ホストのアカウントのユーザー名とパスワードを指定することができ、''xrdp'' は新しい ''Xvnc'' インスタンスを起動します。{{ic|/etc/xrdp/startwm.sh}} にある ''SESSION'' リストからウィンドウマネージャが開きます。
 
   
  +
これは、''systemd'' が PulseAudio を不適切に開始した結果です。回避策の 1 つは、自分のユーザーまたはすべてのユーザーの [[ユーザーユニット]] ファイル {{ic|pulseaudio.service}} および {{ic|pulseaudio.socket}} を [[無効化]] して、PulseAudio を開始することです。必要に応じて、{{ic|/etc/pulse/client.conf}} で {{ic|autospawn}} を {{ic|yes}} に設定します。
セッションウィンドウを閉じて RDP 接続を終了すると、次回 RDP で接続したときは同じセッションにアクセスすることができます。セッションウィンドウからウィンドウマネージャやデスクトップ環境を終了した場合、セッションが終了され、次回は新しいセッションが開きます。
 
   
  +
それでもサウンドが機能しない場合は、{{ic|~/.xinitrc}} の {{ic|pulseaudio &}} を使用して PulseAudio を手動で開始してみてください。
''xrdp'' は既に同じジオメトリのセッションが開かれていないか確認して、ジオメトリ/解像度が一致しない場合は新しいセッションを起動します。
 
  +
  +
=== 2本指でのスクロールが速すぎる ===
  +
  +
xorg バックエンドを使用します。xorgxrdp が 0.9.19 以降であることを確認してください。次に、{{ic|1=XRDP_XORG_TOUCHPAD_SCROLL_HACK=yes}} を {{ic|/etc/xrdp/sesman.ini}} の {{ic|[SessionVariables]}} セクションに追加します。
  +
  +
詳細については、[https://github.com/neutrinolabs/xorgxrdp/issues/150 upstream issue #150] を参照してください。
  +
  +
=== リモートシステム内の制限された機能 ===
  +
  +
ユーザーがシステムにリモートでログインする場合、同じユーザーがローカルでログインする場合と同じアクセス許可を持たない場合があります。マウントされたドライブやネットワーク接続の制御などのアクセスを許可するには、[[polkit]] のアクセス許可ポリシーの追加設定が必要になる場合があります。
  +
  +
==== マウントされたドライブ ====
  +
  +
マウントされたドライブへのリモートアクセス許可については、[[udisks#パーミッション]] を参照してください。
  +
  +
==== NetworkManager ====
  +
  +
NetworkManager へのリモートアクセス権限については、[[NetworkManager#PolicyKit のパーミッションをセットアップする]] を参照してください。
   
 
== 参照 ==
 
== 参照 ==
   
 
* [[Vncserver|TigerVNC]] - RDP の代替としてバックエンドで使われる VNC
 
* [[Vncserver|TigerVNC]] - RDP の代替としてバックエンドで使われる VNC
*{{Pkg|freerdp}} - ネットワークレベル認証 (NLA) などの RDP 7.1 機能をサポートしている rdesktop フォーク。[http://askubuntu.com/a/97932/217269]参照
+
* {{Pkg|freerdp}} は、ネットワークレベル認証 (NLA) を含む RDP 7.1 機能をサポートる rdesktop フォークですこれは主に {{ic|xfreerdp}} クライアントで設定されます。さらに、{{ic|freerdp-shadow-cli}} コマンドを使用すると、RDP サーバー迅速かつ簡単に起動できます

2024年1月10日 (水) 18:40時点における最新版

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 フォークです。これは主に xfreerdp クライアントで設定されます。さらに、freerdp-shadow-cli コマンドを使用すると、RDP サーバーを迅速かつ簡単に起動できます。