「Xrdp」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(他言語へのリンクを追加)
 
(2人の利用者による、間の17版が非表示)
1行目: 1行目:
{{Translateme|記事の転載と若干の修正はしたが飜訳はまだです。}}
 
 
[[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 をバックエンドとして使用します。
   
 
== インストール ==
 
== インストール ==
8行目: 8行目:
 
{{AUR|xrdp}} パッケージ (または開発版を使いたい場合は {{AUR|xrdp-git}}) を[[インストール]]してください。これはバックエンドとして、Xvnc のみサポートします。
 
{{AUR|xrdp}} パッケージ (または開発版を使いたい場合は {{AUR|xrdp-git}}) を[[インストール]]してください。これはバックエンドとして、Xvnc のみサポートします。
   
=== Xorg backend ===
+
=== Xorg バックエンド ===
   
  +
バックエンドの代わりに xorgxrdp を使用するには、{{AUR|xorgxrdp}} パッケージを [[インストール]] して下さい。
To use xorgxrdp instead for the backend, [[install]] the {{AUR|xorgxrdp}} package.
 
 
Add {{ic|1=allowed_users=anybody}} to {{ic|/etc/X11/Xwrapper.config}} to allow anybody to start an X server.
 
   
 
== 使用方法 ==
 
== 使用方法 ==
23行目: 21行目:
 
''xrdp'' は既に同じジオメトリのセッションが開かれていないか確認して、ジオメトリ/解像度が一致しない場合は新しいセッションを起動します。
 
''xrdp'' は既に同じジオメトリのセッションが開かれていないか確認して、ジオメトリ/解像度が一致しない場合は新しいセッションを起動します。
   
  +
== ヒントとテクニック ==
== Tips and tricks ==
 
   
 
=== ブート時に自動起動 ===
 
=== ブート時に自動起動 ===
  +
 
{{AUR|xrdp}} パッケージには systemd のサービスファイルが含まれています。{{ic|xrdp.service}} を[[有効化]]してください。
 
{{AUR|xrdp}} パッケージには systemd のサービスファイルが含まれています。{{ic|xrdp.service}} を[[有効化]]してください。
   
  +
=== グラフィックアクセラレーション ===
=== Graphical acceleration ===
 
   
  +
Xorg セッションの場合、Intel および AMD GPU の場合は {{AUR|xorgxrdp-glamor}}、Nvidia GPU の場合は {{AUR|xorgxrdp-nvidia}} をインストールすることで、[[OpenGL]] および [[Vulkan]] グラフィック アクセラレーションを有効にできます。
For Xorg sessions, you can enable [[OpenGL]] and [[Vulkan]] graphical acceleration by installing {{AUR|xorgxrdp-glamor}} for Intel and AMD GPUs and {{AUR|xorgxrdp-nvidia}} for Nvidia GPUs.
 
   
=== Sound ===
+
=== サウンド ===
   
Install the necessary [[PulseAudio]] modules with {{AUR|pulseaudio-module-xrdp}}.
+
必要な [[PulseAudio]] モジュールを {{AUR|pulseaudio-module-xrdp}} でインストールします。
   
  +
[[PipeWire]] ユーザーの場合は、{{AUR|pipewire-module-xrdp-git}} をインストールしてください
=== Vino で実行 (root セッションの Gnome VNC-Server) ===
 
   
  +
=== 非 root ユーザー ===
サーバーを有効化すると vino-preferences から確認できるようになります。Vino はデフォルトでポート 5900 を使って接続するので、xrdp の設定ファイルを編集する必要があります。以下のコードを使って xrdp の設定ファイル ({{ic|/etc/xrdp/xrdp.ini}}) に vino のセッションを追加してください。
 
   
  +
{{ic|Xwrapper.config}} に次の行を含めます:
{{hc|/etc/xrdp/xrdp.ini|2=
 
  +
[xrdp8]
 
  +
{{hc|/etc/X11/Xwrapper.config|2=
name=Vino-Session
 
  +
allowed_users=anybody
lib=libvnc.so
 
  +
needs_root_rights=no
username=ask
 
password=ask
 
ip=127.0.0.1
 
port=5900
 
 
}}
 
}}
   
  +
上記の行が存在しない場合、[[Remmina]] などのアプリケーションからのリモートデスクトップ接続は空の画面で開始されます。
VNC 接続エラーが発生した場合は、{{ic|vino-server}} デフォルトで TLS 接続のみを受け入れることが原因である可能性があります。{{ic|xrdp}} 接続できるように、これを標準の VNC 認証に変更する必要があります。
 
 
$ gsettings set org.gnome.Vino require-encryption false
 
 
{{ic|vino-server}} ループバックインターフェースのみリッスンするように制限することもできます
 
 
$ gsettings set org.gnome.Vino network-interface lo
 
 
xrdp サーバを再起動することを忘れないでください。そうすれば、vino セッションに接続できるはずです(xfreerdp を使ってテスト済み)。
 
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
   
  +
=== カーソルの周りの黒いボックス ===
=== Black box around cursor ===
 
   
  +
マウスポインタの周りに黒いボックスがある場合は、{{ic|Xcursor.core:1}} 行を含む {{ic|~/.Xresources-xrdp}} を作成し、次のように {{ic|~/.xinitrc}} にロードします。
If you encounter black box around mouse pointer create {{ic|~/.Xresources-xrdp}} with line {{ic|Xcursor.core:1}} and load it in {{ic|~/.xinitrc}} like
 
   
 
{{bc|<nowiki>
 
{{bc|<nowiki>
71行目: 59行目:
 
</nowiki>}}
 
</nowiki>}}
   
  +
{{pkg|xorg-xrdb}} のインストールが必要になる場合があります。
You may need to install {{pkg|xorg-xrdb}}.
 
   
=== Black screen ===
+
=== 黒いスクリーン ===
   
You may get a black screen after logging into the session manager if your {{ic|~/.xinitrc}} has {{ic|--exit-with-session}} set in the {{ic|dbus_args}}.
+
{{ic|~/.xinitrc}} {{ic|--exit-with-session}} {{ic|dbus_args}} に設定されている場合、セッションマネージャーにログインした後に黒い画面が表示されることがあります。
   
Try copying {{ic|~/.xinitrc}} to {{ic|~/.xrdpinitrc}}, removing {{ic|--exit-with-session}}, and updating {{ic|/etc/xrdp/startwm.sh}} to call {{ic|~/.xrdpinitrc}} instead of {{ic|~/.xinitrc}}. You might need to append your desktop environment to the call to .xrdpinitrc, as is mentioned in ~/.xinitrc; eg. {{ic|. ~/.xrdpinitrc xfce}}.
+
{{ic|~/.xinitrc}} {{ic|~/.xrdpinitrc}} にコピーし、{{ic|--exit-with-session}} を削除して、{{ic|~/.xinitrc}} の代わりに {{ic|~/.xrdpinitrc}} を呼び出すように {{ic|/etc/xrdp/startwm.sh}} を更新してみてください。{{ic|~/.xinitrc}} で説明されているように、{{ic|~/.xrdpinitrc}} への呼び出しにデスクトップ環境を追加する必要がある場合があります。 例えば {{ic|~/.xrdpinitrc xfce}}
   
  +
=== デスクトップ環境で黒い画面が表示される ===
=== Black screen with a desktop environment ===
 
   
  +
デスクトップ環境を使用しているときに黒い画面が表示される場合は、[[D-Bus]] が適切に初期化されていないことが原因である可能性があります。一部の DE (KDE Plasma など) は、以前のセッションから完全に動作するアプリケーション/ウィンドウを復元できる場合もあります。これにより、''Plasmashell だけ'' が欠落しているように見えます。
If you get a black screen and you use a desktop environment, it may be a result of [[D-Bus]] not being properly initialized. Try running the desktop environment with {{ic|dbus-launch --exit-with-session}} in your {{ic|~/.xinitrc}} file. For KDE Plasma, you can use the command {{ic|/usr/lib/plasma-dbus-run-session-if-needed startplasma-x11}}.
 
   
  +
{{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}} を使用できます。
=== loginctl or systemctl --user not working ===
 
   
  +
=== グリーンスクリーン ===
Try commenting out all the references to {{ic|systemd-home}} in {{ic|/etc/pam.d/system-auth}}. See [https://github.com/neutrinolabs/xrdp/issues/1684 this issue].
 
   
  +
ログインダイアログが表示され、[OK] をクリックしてもデスクトップ環境が起動しない場合は、{{ic|/etc/xrdp/sesman.ini}} の {{ic|1=param=Xorg}} を {{ic|1=param=/usr/lib/Xorg}} に変更します。
=== Prompts for gnome-keyring or KDE Wallet ===
 
   
  +
=== loginctl または systemctl --user が機能しない ===
If you are prompted to login to gnome-keyring or [KDE Wallet] when your session starts, modify the file {{ic|/etc/pam.d/xrdp-sesman}} as follows:
 
{{hc|/etc/pam.d/xrdp-sesman|2=
 
#%PAM-1.0
 
   
  +
{{ic|/etc/pam.d/system-auth}} 内の {{ic|systemd-home}} への参照をすべてコメントアウトしてみてください。[https://github.com/neutrinolabs/xrdp/issues/1684 この問題] も参照してください。
auth include system-remote-login
 
'''-auth optional pam_gnome_keyring.so'''
 
'''-auth optional pam_kwallet5.so'''
 
   
  +
=== gnome-keyring または KDE Wallet の入力を求めるプロンプト ===
account include system-remote-login
 
   
  +
セッションの開始時に gnome-keyring または [[KDE Wallet]] へのログインを求められた場合は、ファイル {{ic|/etc/pam.d/xrdp-sesman}} を次のように変更します。
password include system-remote-login
 
  +
{{hc|/etc/pam.d/xrdp-sesman|2=
'''-password optional pam_gnome_keyring.so use_authtok'''
 
  +
#%PAM-1.0
 
  +
auth include system-remote-login
'''session optional pam_keyinit.so force revoke'''
 
  +
'''-auth optional pam_gnome_keyring.so'''
session include system-remote-login
 
'''-session optional pam_gnome_keyring.so auto_start'''
+
'''-auth optional pam_kwallet5.so'''
  +
account include system-remote-login
'''-session optional pam_kwallet5.so auto_start'''
 
  +
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 行を含める必要はありません。また、その逆も同様です。
If you only use gnome-keyring it is not necessary to include the kwallet5 lines, and vice versa.
 
   
  +
=== 自動起動アイテムを起動しないようにする ===
=== Prevent autostart items from starting ===
 
   
To prevent user defined {{ic|~/.config/autostart}} items for a from starting you can set the autostart directory param on the session in the {{ic|~/.xinitrc}} to use only the global {{ic|/etc/xdg/autostart}} directory.
+
ユーザー定義の {{ic|~/.config/autostart}} 項目が開始されないようにするには、{{ic|~/.xinitrc}} のセッションで autostart ディレクトリパラメータを設定して、グローバルの {{ic|/etc/xdg/autostart}} のみを使用するようにします。
   
 
{{bc|<nowiki>
 
{{bc|<nowiki>
124行目: 113行目:
 
</nowiki>}}
 
</nowiki>}}
   
=== No sound ===
+
=== 無音 ===
   
This could be a symptom of an issue with ''loginctl'', so try that fix [[#loginctl or systemctl --user not working|above]]. The following error may be encountered in the system [[journal]]:
+
これは ''loginctl'' の問題の症状である可能性があるため、[[Xrdp#loginctl または systemctl --user が機能しない|above]] を修正してみてください。システム [[journal]] で次のエラーが発生する可能性があります:
   
 
Failed to load module "module-x11-publish" (argument: "display=:10.0 xauthority="): initialization failed.
 
Failed to load module "module-x11-publish" (argument: "display=:10.0 xauthority="): initialization failed.
   
This is the result of ''systemd'' improperly starting PulseAudio. One workaround is to [[disable]] the [[user unit]] files {{ic|pulseaudio.service}} and {{ic|pulseaudio.socket}} either for your own user or for all users, and make PulseAudio start when needed by setting {{ic|autospawn}} to {{ic|yes}} in {{ic|/etc/pulse/client.conf}}.
+
これは、''systemd'' PulseAudio を不適切に開始した結果です。回避策の 1 つは、自分のユーザーまたはすべてのユーザーの [[ユーザーユニット]] ファイル {{ic|pulseaudio.service}} および {{ic|pulseaudio.socket}} [[無効化]] して、PulseAudio を開始することです。必要に応じて、{{ic|/etc/pulse/client.conf}} {{ic|autospawn}} {{ic|yes}} に設定します。
  +
  +
それでもサウンドが機能しない場合は、{{ic|~/.xinitrc}} の {{ic|pulseaudio &}} を使用して PulseAudio を手動で開始してみてください。
  +
  +
=== 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 のパーミッションをセットアップする]] を参照してください。
If sound still does not work, try manually starting PulseAudio with {{ic|pulseaudio &}} in your {{ic|~/.xinitrc}}.
 
   
 
== 参照 ==
 
== 参照 ==
   
 
* [[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 サーバーを迅速かつ簡単に起動できます。