「Xrdp」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) 細 |
(他言語へのリンクを追加) |
||
(2人の利用者による、間の15版が非表示) | |||
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 |
+ | === 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. |
||
− | === |
+ | === サウンド === |
− | + | 必要な [[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}}. |
||
− | === |
+ | === 黒いスクリーン === |
− | + | {{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}} |
|
+ | === デスクトップ環境で黒い画面が表示される === |
||
− | === 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 |
||
− | '''- |
+ | '''-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 === |
||
− | + | ユーザー定義の {{ic|~/.config/autostart}} 項目が開始されないようにするには、{{ic|~/.xinitrc}} のセッションで autostart ディレクトリパラメータを設定して、グローバルの {{ic|/etc/xdg/autostart}} のみを使用するようにします。 |
|
{{bc|<nowiki> |
{{bc|<nowiki> |
||
124行目: | 113行目: | ||
</nowiki>}} |
</nowiki>}} |
||
− | === |
+ | === 無音 === |
− | + | これは ''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. |
||
− | + | これは、''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}} |
+ | * {{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-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 を手動で開始してみてください。
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 のパーミッションをセットアップする を参照してください。