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


57

J'ai essayé de configurer un serveur de terminal RDP avec précision à l'aide de xrdp et j'ai eu beaucoup de difficulté à obtenir une configuration opérationnelle. Lorsqu'un utilisateur ouvre une session, j'ai besoin qu'il se connecte à la session existante de cet utilisateur si elle existe, sinon le démarrage d'une nouvelle session et toute session démarrée doivent démarrer LXDE. Quelles modifications dois-je apporter à la configuration par défaut pour que cela fonctionne?


Sur ma configuration XRDP (sauf que j'exécute Unity sur des sessions de bureau et Unity2D pour des sessions à distance), la connexion en tant qu'utilisateur sélectionne automatiquement leurs anciennes sessions. Chaque utilisateur reçoit-il une nouvelle session à chaque fois qu'il se connecte?
Agc93

La meilleure explication / solution que j'ai trouvé sur Internet se trouve à cet endroit c-nergy.be/blog/?p=2879 Essayez -le J'espère que cette aide de l' information
gyest

Réponses:


46

J'ai eu le même problème et je viens de trouver une solution facile. À l'origine, je venais d'installer xrdp à l'aide de la procédure standard:

apt-get install xrdp

Après cela, c’est 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 traitement de session xrdp se présente comme suit:

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

La ligne importante est que port=-1xrdp cherche 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 alors ça ressemble à ça:

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

Cest, je pense que vous pourriez sortir avec juste changer le port=-1pour port=5912. Mon xrdp se reconnecte toujours à la session existante en utilisant toujours le même port.


2
Cette solution fonctionne bien pour moi, mais je dois préciser que toute personne qui se connecte à la même machine aura la même session, même si une autre personne s'est connectée sous cette session.
VeeTheSecond

7
cela ne fonctionne que s’il existe déjà une session. La première fois, il n'y a pas de session de sorte qu'il ne se connecte au port 5912.
STU

4
Vous avez le même problème. Il semble que par défaut, il tente d'ouvrir une connexion à l'aide de 5911port (vous pouvez le remarquer lorsque xrpd se connecte). J'ai donc changé de port = -1 à port = ask5911. De cette façon, le 5911 est utilisé par défaut, mais vous pouvez modifier ce port lorsque vous entrez un nom d'utilisateur / un mot de passe lors de la connexion (aucune reconfiguration n'est donc nécessaire en cas d'erreur ..)
Maxym

1
Ce comportement dépend strictement de la mise en œuvre du serveur vnc. Sous Centos, j'utilise tigervnc, qui rejoint toujours une session existante ou en crée une avec le paramètre port = -1. Cependant, sous Ubuntu, la valeur par défaut est tightvncserver, qui n’a pas le même comportement. Il suffit de jouer avec les implémentations vnc, le cas échéant.
Denys S.

1
Le port par défaut est 5910, voir askubuntu.com/a/527975/592751
Pedi T.

16

J'aimerais améliorer une réponse existante. La réponse la plus votée était d'éditer le xrdp.inifichier pour changer le port en une valeur fixe à la place du -1caractère générique pour trouver un port ouvert.

J'ai essayé cela, mais j'ai eu une erreur de connexion la première fois, alors j'ai fini par revenir à la -1valeur. La frustration s'installa rapidement avec le problème restant de ne pas reprendre, alors je regardai de nouveau le fichier ini.

Ce qui a fonctionné pour moi, et qui était vraiment juste une chose qui me passionnait était la suivante:

Modifier le /etc/xrdp/xrdp.ini

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

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

Résumer:

  • Éditer le xrdp.inifichier
  • ensemble port = ask
  • connectez-vous à partir de la machine distante et, lors de la connexion, si vous n'avez pas de session existante, spécifiez le port -1
  • pour reprendre une session, entrez la valeur par défaut de 5910

Travaillé pour moi Bien que je ne me souvienne pas de 5910 pour l’avenir.
Vésanto

7
J'ai réussi à changer l'entrée en: [xrdp1]. . . port = ask5910 Le port par défaut est 5910 afin que vous n'ayez pas à vous en rappeler, comme le dit Vesanto (je ne m'en souviendrais jamais non plus, Vesanto!), mais vous donne également la possibilité de le changer si vous souhaitez créer une nouvelle session de bureau. sur, disons le port 5911. Je l’ai testé sur Ubuntu 16.04.
Hoekma

2
^ c’est la meilleure solution que j’ai trouvée.
Nacht - Rétablir Monica

Sur un Rpi3 fraîchement démarré, j'ai démarré une nouvelle session avec le port -1, puis je suis entré avec un ordinateur différent et utilisé le port 5910 - la même session a été reprise. Lorsque vous déplacez des objets sur un ordinateur, vous pouvez les voir apparaître sur un autre.
SDsolar le

Si vous le faites à nouveau mais que vous lui attribuez un numéro de port égal à -1, vous obtenez une nouvelle session.
SDsolar le

7

Je déteste être le gars qui laisse tomber un lien, mais j'ai suivi le guide ici et ça a vraiment bien fonctionné. Je peux maintenant me connecter à une session RDP à partir d'hôtes Linux et Windows et me reconnecter à mon ancienne session si je me suis déjà connecté auparavant. 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 à partir du source.

L’auteur de ce lien a également créé un outil automatique pour l’installer et le configurer, mais je ne l’ai pas essayé, alors faites attention.

J'espère que ça vous aide.


Merci d'avoir fourni le lien. Est-ce que cela implique qu’aucun paquet deb actif n’existe pour xrdp?
Jan

J'en ai vu un il y a quelque temps, mais cela ne fonctionnait pas correctement avec les nouvelles versions d'Ubuntu. Autant que je sache, il n'y a pas de paquet .deb fonctionnel pour XRDP sur les versions d'Ubuntu postérieures à 10.04. Heureux de se tromper, bien sûr, car cette méthode est malheureusement irritante.
agc93

vérifier ma solution qui est super automatique sur le script pour Ubuntu 12 64bithttp://askubuntu.com/questions/190838/how-to-install-x11rdp-on-ubuntu-12-04/190855#190855

Je pense que ce qui a du sens pour cette question est de créer votre propre .xsessionfichier dans votre répertoire personnel. Par exemple, si vous utilisez gnome-desktop, exécutezecho gnome-session >> ~/.xsession
artificerpi

4

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 ce qui suit

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

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


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; à partir de là, choisissez "vnc-any", puis entrez l'adresse IP de l'ordinateur et le mot de passe tout en laissant le port ça devrait aider :)


Cela ressemble à la plus facile et fonctionne pour moi. Génial. Pas d'installation compliquée, compiler etc.
josef


1

1. Modifiez-vous xrdp.ini:

sudo vi /etc/xrdp/xrdp.ini

2.Changez le paramétrage du port port=ask-1dans votre règle de connexion:

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

3. Redémarrez votre service xrdp

sudo service xrdp restart

Vous devriez voir l'image suivante lorsque vous vous connectez à l'aide d'un poste de travail distant. entrez la description de l'image ici

1. Lors de la première connexion, vous pouvez voir ce numéro de port. Exemple: 5912: entrez la description de l'image ici

Si vous oubliez ce numéro de port, vous pouvez utiliser la commande suivante pour vérifier:

netstat -peant | grep 59 | grep Xvnc

2. Vous pouvez reconnecter la dernière session par votre numéro de port. entrez la description de l'image ici


Réf.: Http://c-nergy.be/blog/?p=5305


0

J'ai rencontré ce problème sur une machine Debian. Utilisé X11RDP-o-Matic pour construire xrdp 0,7 paquets. Avant la mise à niveau vers systemd, la reconnexion de session xrdp fonctionnait correctement.

En regardant l'arbre de processus, j'ai pu constater que les sessions n'étaient plus des enfants xrdp-sesman. S'est avéré être 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écuter ps axfet regarder l'arbre de processus pour xrdp-sesman. X11rdp, xrdp-chansrv, xrdp-sessvcdevrait tous être en cours d'exécution comme un enfant. S'ils ne le sont pas, xrdp-sesmanils ne sauront pas comment se reconnecter à la session.

Voici à quoi ça ressemble quand on travaille:

bon processus de session xrdp


0

Voici ce que j'ai fait. Assurez-vous que tigervnc-server est installé pour pouvoir utiliser Xvnc. Lancez une session VNC avec la configuration par défaut (j'ai en fait suivi le guide d'installation d'Arch Linux pour TigerVNC). Configurez ensuite votre Xrdp pour utiliser cette session VNC à chaque fois. Configurez également TigerVNC pour qu'il démarre au démarrage ou quelque chose du genre. C’est la seule section VNC de mon fichier xrdp.ini:

[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

Ce fil UbuntuForum semble utile - je n’ai pas testé cela 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 Ubuntu VNC par défaut (Vino):

Allez dans: Système -> Administration -> Synaptic Package Manager Recherchez le paquet "Vino", Mark For Removal, Apply.

2. Installation de TightVNC et XRDP:

Pendant que vous utilisez le gestionnaire de paquets Synaptic, seacrh pour le paquet "tightvnc" (soyez prudent, pas " xtightvnc ") et Mark For Installation. De même, recherchez le package "xrdp" et cochez également pour l'installation. Appliquer. PS: si vous le souhaitez, vous pouvez supprimer tout autre paquet "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 à partir d'une autre machine Ubuntu, utilisez: Applications -> Internet -> Client Terminal Server, tapez l'adresse IP de votre machine Ubuntu VNC, utilisez RDPv5 ou RDP, cliquez sur Connect!

Pour vous connecter à partir d'une machine Windows, utilisez: Démarrer -> Exécuter -> mstsc, tapez l'adresse IP de votre machine Ubuntu VNC, cliquez sur Connecter.

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


Avez-vous réellement testé cela? Il semblerait que vous veniez de copier et coller le lien mot à mot. Si vous copiez et collez, veuillez indiquer la source dans votre réponse.
fossfreedom

@fossfreedom Nope, je n'ai pas testé mais essayé d'aider. BTW j'ai déjà mentionné la source dans this may help you.
Rahul Virpara

Vous devriez peut-être alors être plus explicite quant à votre source et à la véracité de la réponse. Voir mon édition.
fossfreedom
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.