私は、xrdpを使用してRDPターミナルサーバーを正確にセットアップしようとしていますが、機能する構成を取得するのに大きな問題があります。ユーザーがログオンすると、既存のセッションが存在する場合はそのユーザーに接続する必要があります。存在しない場合は新しいセッションを開始し、開始されたセッションはLXDEを開始する必要があります。これが機能するためには、デフォルト構成にどのような変更を加える必要がありますか?
これと同じ問題があり、簡単な解決策を見つけました。私はもともと標準手順を使用して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=-1
をport=5912
に変更するだけで済むと思います。私のxrdpは常に同じポートを使用して既存のセッションに常に再接続します。
既存の答えを改善したいと思います。上位の回答は、xrdp.ini
ファイルを編集して、-1
ワイルドカードの代わりにポートを固定値に変更し、開いているポートを見つけることでした。
私はそれを試してみましたが、最初の接続時にエラーが発生したため、-1
値に戻りました。欲求不満はすぐに戻ったが、再開されないという問題が残っていたので、再びiniファイルを調べた。
私のために働いたのは、本当に私が興味を持っていたものだけでした:
/etc/xrdp/xrdp.ini
を編集します
[xrdp1]
でport=-1
の下で、ユーザー名とパスワードがASKに設定されていることに気付きました。 port=ask
を設定すると、ログインプロンプトでユーザー名とパスワードを入力してポートを選択するオプションが表示されます。
追加のパッケージをインストールするのではなく、askオプションを設定するのが最も簡単な修正方法であることがわかりました。最初のセッション(まだ実行していない場合)をユーザー名とパスワードでログインしてポート-1に接続します。
セッションを切断した後、既存のセッションを再開するには、常にデフォルトポート5910にログインします。リモートコンピューターを再起動するか、ログオフ時にセッションを終了するまで、既存のセッションを再開します。
要約する:
xrdp.ini
ファイルを編集しますport = ask
を設定-1
を指定します5910
を入力します問題は、xrdpが常に同じポートに接続するとは限らないことです。失敗し、ポート番号を忘れた場合は、sshセッションにログインして次の方法で番号を確認できます。
netstat -tulpn | grep vnc
次のようなものが得られます
tcp 0 0 127.0.0.1:5911 0.0.0.0:* LISTEN 5365/Xvnc
そして、あなたは5911があなたが接続したポートだったことを知っています。
最初にリモートデスクトップに接続するときに、xrdpボックスを使用したログイン画面で、ドロップダウンボックスがあるはずです。ここから「vnc-any」を選択し、コンピューターのIPアドレスとパスワードを入力しますが、ポートはそのままにしておきますそれは、これが役立つはずです:)
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
「パスワードに失敗しました」という問題が発生した場合は、GitHubの2つの問題をご覧ください。
古いvncセッションに再接続-VNCパスワードが失敗しました
要するに、彼らはポート番号の指定が最新の設計ではもはや機能しないことを述べています。
これが私がしたことです。 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
Debianマシンでこの問題に遭遇しました。 X11RDP-o-Matic を使用して、xrdp 0.7パッケージをビルドします。 systemdにアップグレードする前は、xrdpセッションの再接続は正常に機能していました。
プロセスツリーを見ると、セッションがxrdp-sesman
の子ではなくなっていることがわかりました。 systemdを使用する場合、権限の問題であることが判明しました。 Google パッチを見つけました 問題を修正します。
動作している再接続をどのように識別しますか? ps axf
を実行し、xrdp-sesman
のプロセスツリーを確認します。 X11rdp, xrdp-chansrv, xrdp-sessvc
はすべて子として実行する必要があります。そうでない場合、xrdp-sesman
はセッションに再接続する方法を知りません。
作業中は次のようになります。