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


57

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


XRDP構成で(デスクトップセッションでUnityを実行し、リモートセッションでUnity2Dを実行している場合を除く)、ユーザーとしてログインすると、古いセッションが自動的に取得されます。各ユーザーは接続するたびに新しいセッションを取得していますか?
agc93

インターネットで見つけた最良の説明/解決策はこの場所にありますc-nergy.be/blog/?p=2879試してみてくださいこの情報が役立つことを願っています
-gyest

回答:


46

これと同じ問題があり、簡単な解決策を見つけました。私はもともと標準手順を使用して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

それのthats、私はあなただけ変えて逃げることができると思いport=-1port=5912。私のxrdpは常に同じポートを使用して既存のセッションに常に再接続します。


2
このソリューションは私にとってはうまく機能しますが、同じマシンに接続している他の誰かがそのセッションでログインしていても、同じセッションを取得できることを指摘する必要があります。
VeeTheSecond

7
ただし、既存のセッションがある場合にのみ機能します。それはポート5912.への接続に失敗したので、最初の時間は、何のセッションがありません
STU

4
同じ問題が発生しました。デフォルトでは、5911portを使用して接続を開こうとしているようです(xrpdが接続しているときに気付くことができます)。そこで、port = -1からport = ask5911に変更しました。この方法では5911がデフォルトで使用されますが、接続中にユーザー/パスワードを入力するとそのポートを変更できます(エラーが発生した場合に再構成する必要はありません。)
Maxym

1
この動作は、vncサーバーの実装に厳密に依存します。CentOSでは、tigervncを使用しています。これは常に既存のセッションに参加するか、port = -1設定でセッションを作成します。ただし、ubuntuではデフォルトはtightvncserverであり、同じ動作はありません。もしあれば、vnc実装を試してください。
デニスS.

1
デフォルトのポートは5910です。askubuntu.com/ a / 527975/592751
Pedi T.

16

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

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

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

編集する /etc/xrdp/xrdp.ini

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

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

要約する:

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

私のために働いた。私は今後5910を覚えていませんが。
ベサント

7
エントリを[xrdp1]に正常に変更できました。。。port = ask5910これはデフォルトでポートを5910に設定しているので、Vesantoが言ったように覚えておく必要はありません(Vesantoも覚えていません!)たとえば、ポート5911。Ubuntu16.04でテストしました。
-hoekma

2
^それも私が見つけた最良の解決策です。
Nacht-モニカの復活

新しく起動したRpi3で、ポート-1で新しいセッションを開始し、別のコンピューターでポート5910を使用して、同じセッションを取得しました。あるコンピューターで物事を移動すると、他のコンピューターでそれが発生することがわかります。
–SDsolar

その後、再度実行しますが、ポート番号に-1を指定すると、新しいセッションが提供されます。
–SDsolar

7

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

このリンクの作成者は、それをインストールおよび構成する自動ツールも作成しましたが、私は試していないので注意してください。

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


リンクを提供していただきありがとうございます。これは、xrdpで動作するdebパッケージが存在しないことを意味しますか?

しばらく前に確認しましたが、Ubuntuの新しいバージョンでは正しく動作しませんでした。私の知る限り、10.04以降のUbuntuバージョンでは、XRDP用の有効な.debパッケージはありません。この方法は残念ながらいらいらさせるので、もちろん間違っていることが証明されてうれしいです。
agc93

ubuntu 12 64ビットのスクリプトで超自動である私のソリューションを確認してくださいhttp://askubuntu.com/questions/190838/how-to-install-x11rdp-on-ubuntu-12-04/190855#190855

この質問で理にかなっているの.xsessionは、ホームディレクトリに独自のファイルを作成することだと思います。たとえば、gnome-desktopを使用する場合、次のecho gnome-session >> ~/.xsession
コマンドを

4

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

netstat -tulpn | grep vnc

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

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

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


2

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


それは最も簡単なもののように見え、私にとってはうまくいきます。すばらしいです。複雑なインストール、コンパイルなどはありません
-josef


1

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

リモートデスクトップでログインすると、次の画像が表示されます。 ここに画像の説明を入力してください

1.最初のログインで、このポート番号を確認できます。例:5912: ここに画像の説明を入力してください

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

netstat -peant | grep 59 | grep Xvnc

2.ポート番号で最後のセッションに再接続できます。 ここに画像の説明を入力してください


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


0

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

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

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

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

良いxrdpセッションプロセス


0

これが私がしたことです。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

-1

このUbuntuForumスレッドは便利そうに見えます-私はこれを自分でテストしたことはありません-しかし、この答えを完成させるために、ここに示したソリューションをコピーしました。

RealVNCセットアップ

1.デフォルトのUbuntu VNCサーバー(Vino)のアンインストール:

[システム]-> [管理]-> [Synaptic Package Manager]に移動します。「Vino」パッケージを検索し、削除のマークを付けて、適用します。

2. TightVNCおよびXRDPのインストール:

Synaptic Package Managerを使用しているときに、「tightvnc」パッケージのseacrh(「xtightvnc」ではなく、注意してください)およびインストール用にマークします。同様に、「xrdp」パッケージを検索し、インストールもマークします。適用します。PS:必要に応じて、不要な他の「vnc」パッケージを破棄できます。

3. XRDPの構成(オプション)

ターミナルを開き、次の3つのコマンドを入力します。

 cd /etc/xrdp
 cp xrdp.ini xrdp.ini.bak 
 sudo gedit /etc/xrdp/xrdp.ini

Xrdp2-Xrdp6セクションを削除し、Xrdp1セクションのみを残します。xrdp.iniは次のようになります。

[globals]
bitmap_cache=yes
bitmap_compression=yes
port=3389
crypt_level=low
channel_code=1

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

4.接続

システムを再起動すると、接続する準備ができました!

別のUbuntuマシンから接続するには、アプリケーション->インターネット->ターミナルサーバークライアントを使用し、Ubuntu VNCマシンのIPを入力し、RDPv5またはRDPを使用して、[接続]をクリックします。

Windowsベースのマシンから接続するには、[スタート]-> [実行]-> [mstsc]を使用し、Ubuntu VNCマシンのIPを入力して、[接続]をクリックします。

接続したら、Ubuntuユーザーアカウント資格情報(u / nおよびp / w)を使用して、デスクトップにリモートでログインします。


これを実際にテストしましたか?リンクをそのままコピーして貼り付けたようです。コピーして貼り付ける場合は、回答のソースを確認してください。
fossfreedomの

@fossfreedomいや、私はテストしていませんが、助けようとしました。ところで、私はすでにソースで言及しましたthis may help you
ラーフルヴィルパラ

あなたはおそらくあなたの出典と答えの真実性に関してより明確であるべきです。編集をご覧ください。
fossfreedomの
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.