Come posso impostare la sessione xrdp che riutilizza una sessione esistente?

52

Ho cercato di configurare un server terminal RDP su preciso usando xrdp e ho avuto grossi problemi nel trovare una configurazione funzionante. Quando un utente si collega, ho bisogno che si connetta a quella sessione esistente degli utenti, se esiste, altrimenti avvia una nuova sessione e ogni sessione avviata deve avviare LXDE. Quali modifiche alla configurazione predefinita devo fare affinché funzioni?

    
posta nloewen 07.05.2012 - 19:47

8 risposte

42

Ho avuto lo stesso problema e ho appena trovato una soluzione semplice. Inizialmente avevo appena installato xrdp usando la procedura standard:

apt-get install xrdp

Dopodiché, è tutto relativo al tuo file xrdp.ini, che si trova qui:

/etc/xrdp/xrdp.ini

Per aprire e modificare il file di configurazione di xrdp usa:

sudo nano /etc/xrdp/xrdp.ini

di default il primo script di gestione delle sessioni xrdp ha il seguente aspetto:

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

La linea importante è port=-1 , questo fa sì che xrdp cerchi sempre una porta libera da connettere. Se si imposta una porta fissa qui, xrdp tornerà sempre e si connetterà alla stessa sessione. Ho cambiato il mio così sembra:

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

Ecco, penso che potresti farla franca cambiando semplicemente port=-1 in port=5912 . Il mio xrdp si riconnette sempre alla sessione esistente usando sempre la stessa porta.

    
risposta data jeffery_the_wind 18.10.2013 - 09:39
13

Mi piacerebbe migliorare su una risposta esistente. La risposta più votata è stata quella di modificare il file xrdp.ini per modificare la porta su un valore fisso al posto del carattere jolly -1 per trovare una porta aperta.

L'ho provato, ma ho ricevuto un errore durante la connessione la prima volta, quindi ho finito per tornare al valore -1 . La frustrazione si è rapidamente risolta, anche se il problema rimaneva di non riprendere, quindi ho guardato di nuovo il file ini.

Ciò che ha funzionato per me, ed era davvero qualcosa di cui ero curioso, era questo:

Modifica /etc/xrdp/xrdp.ini

Sotto [xrdp1] dove port=-1 ho notato che nome utente e password erano impostati su ASK. Se imposti port=ask ti verrà data l'opzione al prompt di login con username e password per scegliere una porta.

Invece di installare pacchetti aggiuntivi ho trovato la soluzione più semplice per impostare l'opzione ask, collegare la prima sessione (se non ne ho già una in esecuzione) sulla porta -1 all'accesso con nome utente e password.
Dopo aver disconnesso la sessione, per riprendere una sessione esistente accedere sempre alla porta predefinita: 5910 e si riattiverà la sessione esistente fino al riavvio del computer remoto o alla fine della sessione al momento della disconnessione.

Per riassumere:

  • Modifica il file xrdp.ini
  • imposta port = ask
  • connettersi dal computer remoto e all'accesso se non si dispone di una sessione esistente, specificare la porta -1
  • per riprendere una sessione inserisci il valore predefinito di 5910
risposta data QuestionReality 04.12.2015 - 05:46
7

Odio essere il tizio che ha appena lasciato un link, ma ho seguito la guida here ha funzionato molto bene. Ora posso accedere a una sessione RDP da host Linux e Windows e ricollegarmi alla mia vecchia sessione se ho effettuato l'accesso in precedenza. Questa è la migliore guida per l'installazione che ho trovato. Sfortunatamente, l'installazione del pacchetto standard causa molti più problemi che farlo dal sorgente.

L'autore di quel link ha anche fatto un strumento automatico per installarlo e configurarlo, ma non l'ho provato, quindi fai attenzione.

Spero di aiutarti.

    
risposta data agc93 31.05.2012 - 14:04
3

Il problema è che xrdp non si connette sempre alla stessa porta. In caso contrario e hai dimenticato il numero di porta, è possibile accedere a una sessione SSH e scoprire il numero di

netstat -tulpn | grep vnc

e otterrai qualcosa di simile al seguente

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

e poi sai che 5911 era la porta a cui ti sei collegato.

    
risposta data YH Wu 12.08.2016 - 22:18
2

sulla schermata di accesso con la casella xrdp quando ci si connette per la prima volta al desktop remoto ci dovrebbe essere una casella di riepilogo a discesa, da qui scegliere "vnc-any", quindi inserire l'indirizzo IP del computer e la password ma lasciare il porta a quello che è, questo dovrebbe aiutare:)

    
risposta data Dewi Jones 11.04.2013 - 10:47
0

Mi sono imbattuto in questo problema su una macchina Debian. Usato X11RDP-o-Matic per creare pacchetti xrdp 0.7. Prima di eseguire l'aggiornamento a systemd, la riconnessione della sessione xrdp funzionava correttamente.

Guardando l'albero dei processi ho potuto vedere che le sessioni non erano più figli di xrdp-sesman . Si è rivelato essere un problema di autorizzazioni quando si utilizza systemd. Google ha trovato una patch che risolve il problema.

Come si identifica una riconnessione funzionante? Esegui ps axf e guarda l'albero del processo per xrdp-sesman . X11rdp, xrdp-chansrv, xrdp-sessvc dovrebbe essere eseguito da bambino. Se non lo sono, xrdp-sesman non saprà come riconnettersi alla sessione.

Ecco come appare quando si lavora:

    
risposta data h0tw1r3 31.12.2013 - 23:20
0

Se hai riscontrato il problema di "password fallita", potresti dare un'occhiata ai due problemi in GitHub

Riconnetti alla vecchia sessione di vnc - Password VNC fallita

Password VNC non riuscita durante il prelievo di una sessione esistente

In breve, dicono che specificare il numero di porta non funziona più nell'ultima versione.

    
risposta data liwaiwai 03.07.2018 - 12:12
-1

Questo thread di UbuntuForum sembra utile - non l'ho testato personalmente - tuttavia ho copiato la soluzione qui riportata per completare questa risposta.

Impostazione RealVNC

1. Disinstallazione del server VNC predefinito di Ubuntu (Vino):

Vai a: Sistema - & gt; Amministrazione - & gt; Gestore pacchetti Synaptic Cerca il pacchetto "Vino", Mark For Removal, Apply.

2. Installazione di TightVNC e XRDP:

Mentre usi Synaptic Package Manager, seacrh per il pacchetto "tightvnc" (fai attenzione, non " xtightvnc ") e Mark For Installation. Allo stesso modo, cerca il pacchetto "xrdp" e Mark anche per l'installazione. Applicare. PS: se vuoi, puoi scartare qualsiasi altro pacchetto "vnc" di cui non hai bisogno!

3. Configurazione di XRDP (opzionale)

Apri un terminale e digita i tre comandi seguenti:

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

Rimuovi le sezioni Xrdp2-Xrdp6, lascia solo la sezione Xrdp1. Il tuo xrdp.ini dovrebbe assomigliare a questo:

[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. Collegamento

Riavvia il sistema e sei pronto per connetterti!

Per connetterti da un'altra macchina Ubuntu, usa: Applicazioni - & gt; Internet - & gt; Terminal Server Client, digitare l'IP della macchina Ubuntu VNC, utilizzare RDPv5 o RDP, fare clic su Connetti!

Per connetterti da un computer basato su Windows, utilizza: Start - & gt; Esegui - & gt; mstsc, digitare l'IP della macchina Ubuntu VNC, fare clic su Connetti.

Una volta connesso, utilizza le credenziali dell'account utente di Ubuntu (u / n e p / w) e accedi in remoto al desktop.

    
risposta data virpara 28.05.2012 - 05:40

Leggi altre domande sui tag