web-dev-qa-db-ja.com

既存のセッションを再利用するxrdpセッションを設定するにはどうすればよいですか?

私は、xrdpを使用してRDPターミナルサーバーを正確にセットアップしようとしていますが、機能する構成を取得するのに大きな問題があります。ユーザーがログオンすると、既存のセッションが存在する場合はそのユーザーに接続する必要があります。存在しない場合は新しいセッションを開始し、開始されたセッションはLXDEを開始する必要があります。これが機能するためには、デフォルト構成にどのような変更を加える必要がありますか?

57
nloewen

これと同じ問題があり、簡単な解決策を見つけました。私はもともと標準手順を使用してxrdpをインストールしました。

apt-get install xrdp

その後、ここにあるxrdp.iniファイルについてのすべて:

/etc/xrdp/xrdp.ini

Xrdpの構成ファイルを開いて編集するには、次を使用します。

Sudo nano /etc/xrdp/xrdp.ini

デフォルトでは、最初のxrdpセッション処理スクリプトは次のようになります。

[xrdp1]
name=sesman-vnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1

重要な行はport=-1です。これにより、xrdpは常に接続するための空きポートを探します。ここで固定ポートを設定すると、xrdpは常に戻って同じセッションに接続します。私はこのように見えるように私のものを変更しました:

[xrdp1]
name=customsessionname
lib=libvnc.so
username=myusername
password=ask
ip=127.0.0.1
port=5912

それで、port=-1port=5912に変更するだけで済むと思います。私のxrdpは常に同じポートを使用して既存のセッションに常に再接続します。

46

既存の答えを改善したいと思います。上位の回答は、xrdp.iniファイルを編集して、-1ワイルドカードの代わりにポートを固定値に変更し、開いているポートを見つけることでした。

私はそれを試してみましたが、最初の接続時にエラーが発生したため、-1値に戻りました。欲求不満はすぐに戻ったが、再開されないという問題が残っていたので、再びiniファイルを調べた。

私のために働いたのは、本当に私が興味を持っていたものだけでした:

/etc/xrdp/xrdp.iniを編集します

[xrdp1]port=-1の下で、ユーザー名とパスワードがASKに設定されていることに気付きました。 port=askを設定すると、ログインプロンプトでユーザー名とパスワードを入力してポートを選択するオプションが表示されます。

追加のパッケージをインストールするのではなく、askオプションを設定するのが最も簡単な修正方法であることがわかりました。最初のセッション(まだ実行していない場合)をユーザー名とパスワードでログインしてポート-1に接続します。
セッションを切断した後、既存のセッションを再開するには、常にデフォルトポート5910にログインします。リモートコンピューターを再起動するか、ログオフ時にセッションを終了するまで、既存のセッションを再開します。

要約する:

  • xrdp.iniファイルを編集します
  • port = askを設定
  • リモートマシンから接続し、既存のセッションがない場合はログイン時にポート-1を指定します
  • セッションを再開するには、デフォルトの5910を入力します
16
QuestionReality

私はただリンクを落とすだけの人にはなりたくないが、私はガイドに従った ここ そしてそれは本当にうまくいった。 LinuxおよびWindowsホストからRDPセッションにログインできるようになり、以前にログインしたことがある場合は古いセッションに再接続できます。これは私が見つけたインストールの最良のガイドです。残念ながら、標準パッケージのインストールは、ソースからインストールするよりも多くの問題を引き起こします。

このリンクの作成者は、インストールして構成するために 自動ツール を作成しましたが、まだ試していませんので注意してください。

それがあなたを助けることを願っています。

7
agc93

問題は、xrdpが常に同じポートに接続するとは限らないことです。失敗し、ポート番号を忘れた場合は、sshセッションにログインして次の方法で番号を確認できます。

netstat -tulpn | grep vnc

次のようなものが得られます

tcp        0      0 127.0.0.1:5911          0.0.0.0:*               LISTEN      5365/Xvnc

そして、あなたは5911があなたが接続したポートだったことを知っています。

4
YH Wu

最初にリモートデスクトップに接続するときに、xrdpボックスを使用したログイン画面で、ドロップダウンボックスがあるはずです。ここから「vnc-any」を選択し、コンピューターのIPアドレスとパスワードを入力しますが、ポートはそのままにしておきますそれは、これが役立つはずです:)

2
Dewi Jones

1。 xrdp.iniを変更:

Sudo vi /etc/xrdp/xrdp.ini

2.接続ルールのポート設定port=ask-1を変更します:

[xrdp1]
name=sesman-Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=ask-1

3。xrdpサービスを再起動します

Sudo service xrdp restart

リモートデスクトップでログインすると、次の画像が表示されます。 enter image description here

1。最初のログイン時に、このポート番号を確認できます。例:5912:enter image description here

このポート番号を忘れた場合は、次のコマンドを使用して確認できます。

netstat -peant | grep 59 | grep Xvnc

2。ポート番号で最後のセッションに再接続できます。enter image description here


参照: http://c-nergy.be/blog/?p=5305

1
W. Dan

「パスワードに失敗しました」という問題が発生した場合は、GitHubの2つの問題をご覧ください。

古いvncセッションに再接続-VNCパスワードが失敗しました

既存のセッションの選択時にVNCパスワードが失敗しました

要するに、彼らはポート番号の指定が最新の設計ではもはや機能しないことを述べています。

1
waiwai

これが私がしたことです。 Xvncを使用できるように、tigervnc-serverがインストールされていることを確認してください。デフォルト設定でVNCセッションを起動します(実際にTigerVNCのArch Linuxセットアップガイドに従いました)。次に、毎回そのVNCセッションを使用するようにXrdpを構成します。また、TigerVNCを起動時などに起動するように設定します。これは私のxrdp.iniファイルの唯一のVNCセクションです。

[vnc-any]
name=vnc-any
lib=libvnc.so
ip=localhost
port=5901
username=na
password=YOURPASSWORD
#pamusername=asksame
#pampassword=asksame
#pamsessionmng=127.0.0.1
#delay_ms=2000
0
Nevar

Debianマシンでこの問題に遭遇しました。 X11RDP-o-Matic を使用して、xrdp 0.7パッケージをビルドします。 systemdにアップグレードする前は、xrdpセッションの再接続は正常に機能していました。

プロセスツリーを見ると、セッションがxrdp-sesmanの子ではなくなっていることがわかりました。 systemdを使用する場合、権限の問題であることが判明しました。 Google パッチを見つけました 問題を修正します。

動作している再接続をどのように識別しますか? ps axfを実行し、xrdp-sesmanのプロセスツリーを確認します。 X11rdp, xrdp-chansrv, xrdp-sessvcはすべて子として実行する必要があります。そうでない場合、xrdp-sesmanはセッションに再接続する方法を知りません。

作業中は次のようになります。

good xrdp session process

0
h0tw1r3