Comment configurer une session xrdp qui réutilise une session existante?

51

J'ai essayé de configurer un serveur de terminaux RDP avec précision en utilisant xrdp et j'ai eu beaucoup de mal à obtenir une configuration de travail. Lorsqu'un utilisateur se connecte, j'en ai besoin pour me connecter à la session existante de cet utilisateur, si elle existe, sinon pour démarrer une nouvelle session, et toute session démarrée doit démarrer LXDE. Quelles modifications dois-je apporter à la configuration par défaut pour que cela fonctionne?

    
posée nloewen 07.05.2012 - 19:47
la source

8 réponses

41

J'ai eu le même problème et j'ai trouvé une solution simple. Au départ, je venais d'installer xrdp en utilisant la procédure standard:

apt-get install xrdp

Après cela, tout est question de votre fichier xrdp.ini, qui se trouve ici:

/etc/xrdp/xrdp.ini

Pour ouvrir et éditer le fichier de configuration de xrdp, utilisez:

sudo nano /etc/xrdp/xrdp.ini

par défaut, le premier script de gestion de session xrdp ressemble à ceci:

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

La ligne importante est port=-1 , cela fait que xrdp recherche toujours un port libre pour se connecter. Si vous définissez un port fixe ici, le xrdp reviendra toujours et se connectera à la même session. J'ai changé le mien pour qu'il ressemble à ceci:

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

Voilà, je pense que vous pourriez vous contenter de changer le port=-1 en port=5912 . Mon xrdp se reconnecte toujours à la session existante en utilisant toujours le même port.

    
réponse donnée jeffery_the_wind 18.10.2013 - 09:39
la source
13

Je voudrais améliorer une réponse existante. La meilleure réponse a été d'éditer le fichier xrdp.ini pour changer le port en une valeur fixe à la place du caractère générique -1 pour trouver un port ouvert.

J'ai essayé cela, mais j'ai rencontré une erreur lors de la première connexion, donc j'ai fini par revenir à la valeur -1 . La frustration a rapidement pris racine avec le problème de ne pas reprendre alors j'ai regardé à nouveau le fichier ini.

Qu'est-ce qui a fonctionné pour moi, et était vraiment juste quelque chose dont j'étais curieux, à savoir:

Modifier le /etc/xrdp/xrdp.ini

Sous [xrdp1]port=-1 J'ai remarqué que le nom d'utilisateur et le mot de passe étaient définis sur ASK. Si vous définissez port=ask , vous recevrez l'option à l'invite de connexion avec un nom d'utilisateur et un mot de passe pour choisir un port.

Plutôt que d'installer des paquets supplémentaires, j'ai trouvé la solution la plus simple pour définir l'option ask, connectez la première session (si je n'en ai pas déjà une) sur le port -1 lors de la connexion avec nom d'utilisateur et mot de passe.
Après avoir déconnecté la session, pour reprendre une session existante, connectez-vous toujours au port par défaut: 5910 et vous reprendrez votre session existante jusqu'à ce que vous redémarriez l'ordinateur distant ou que vous mettiez fin à la session lorsque vous vous déconnectiez.

En résumé:

  • Modifiez le fichier xrdp.ini
  • définir port = ask
  • connectez-vous depuis l’ordinateur distant et, lors de la connexion, si vous n’avez pas de session existante, indiquez le port -1
  • pour reprendre une session, entrez la valeur par défaut de 5910
réponse donnée QuestionReality 04.12.2015 - 05:46
la source
7

Je déteste être le gars qui laisse tomber un lien, mais j'ai suivi le guide ici et cela a très bien fonctionné. Je peux maintenant me connecter à une session RDP à partir des hôtes Linux et Windows et me reconnecter à mon ancienne session si je me suis déjà connecté. C'est le meilleur guide pour l'installation que j'ai trouvée. Malheureusement, l'installation du paquet standard pose beaucoup plus de problèmes que de le faire depuis la source.

L’auteur de ce lien a également fait une outil automatique pour l’installer et le configurer, mais je ne l’ai pas essayé, alors soyez prudent.

J'espère que ça vous aide.

    
réponse donnée agc93 31.05.2012 - 14:04
la source
3

Le problème est que xrdp ne se connecte pas toujours au même port. Si ce n'était pas le cas et que vous avez oublié le numéro de port, vous pouvez vous connecter à une session ssh et trouver le numéro par

netstat -tulpn | grep vnc

et vous obtiendrez quelque chose comme ceci

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

et puis vous savez que le 5911 était le port auquel vous vous êtes connecté.

    
réponse donnée YH Wu 12.08.2016 - 22:18
la source
2

sur l'écran de connexion avec la boîte xrdp lorsque vous vous connectez pour la première fois au bureau distant, il devrait y avoir une liste déroulante, choisissez "vnc-any", puis entrez l'adresse IP de l'ordinateur et le mot de passe port à ce que c'est, cela devrait aider:)

    
réponse donnée Dewi Jones 11.04.2013 - 10:47
la source
0

J'ai rencontré ce problème sur une machine Debian. Utilisé X11RDP-o-Matic pour créer des paquets xrdp 0.7. Avant la mise à niveau vers systemd, la reconnexion aux sessions xrdp fonctionnait correctement.

En regardant l'arborescence des processus, j'ai pu constater que les sessions n'étaient plus des enfants de xrdp-sesman . S'agit d'un problème d'autorisations lors de l'utilisation de systemd. Google a trouvé un correctif qui résout le problème.

Comment identifiez-vous une reconnexion de travail? Exécutez ps axf et examinez l'arborescence des processus pour xrdp-sesman . X11rdp, xrdp-chansrv, xrdp-sessvc devrait tous fonctionner comme un enfant. S'ils ne le sont pas, xrdp-sesman ne saura pas comment se reconnecter à la session.

Voici à quoi ça ressemble quand on travaille:

    
réponse donnée h0tw1r3 31.12.2013 - 23:20
la source
0

Si vous avez rencontré le problème de "échec du mot de passe", vous pouvez consulter les deux problèmes de GitHub

Se reconnecter à l'ancienne session vnc - Échec du mot de passe VNC

Le mot de passe VNC a échoué lors de la sélection d'une session existante

En bref, ils mentionnent que la spécification du numéro de port ne fonctionne plus dans la dernière version.

    
réponse donnée liwaiwai 03.07.2018 - 12:12
la source
-1

Ce fil de discussion UbuntuForum semble utile - je ne l'ai pas testé moi-même - mais j'ai copié la solution donnée ici pour compléter cette réponse.

Configuration RealVNC

1. Désinstallation du serveur VNC Ubuntu par défaut (Vino):

Aller à: Système - & gt; Administration - & gt; Gestionnaire de paquets Synaptic Recherchez le package "Vino", Marquer pour suppression, Appliquer.

2. Installation de TightVNC et XRDP:

Pendant que vous utilisez Synaptic Package Manager, mercrh pour le package "tightvnc" (attention, pas " xtightvnc ") et Mark For Installation. De même, recherchez le package "xrdp" et marquez également pour l'installation. Appliquer. PS: si vous le souhaitez, vous pouvez vous défaire de tout autre package "vnc" dont vous n’avez pas besoin!

3. Configuration de XRDP (facultatif)

Ouvrez un terminal et tapez les trois commandes suivantes:

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

Supprimez les sections Xrdp2-Xrdp6, ne laissez que la section Xrdp1. Votre xrdp.ini devrait ressembler à ceci:

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

Redémarrez le système et vous êtes prêt à vous connecter!

Pour vous connecter depuis une autre machine Ubuntu, utilisez: Applications - & gt; Internet - & gt; Terminal Server Client, tapez l'adresse IP de votre machine Ubuntu VNC, utilisez RDPv5 ou RDP, cliquez sur Connecter!

Pour vous connecter depuis un ordinateur Windows, utilisez: Start - & gt; Run - & gt; mstsc, tapez l'adresse IP de votre machine Ubuntu VNC, cliquez sur Connecter.

Lorsque vous êtes connecté, utilisez les informations d'identification de votre compte d'utilisateur Ubuntu (u / n et p / w) et connectez-vous à distance à votre bureau.

    
réponse donnée virpara 28.05.2012 - 05:40
la source

Lire d'autres questions sur les étiquettes