web-dev-qa-db-fra.com

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

J'essaie de configurer un serveur de terminal RDP avec précision à l'aide de xrdp et j'éprouve 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?

56
nloewen

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 port=-1, ce qui 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 alors ça ressemble à ça:

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

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

43
jeffery_the_wind

J'aimerais améliorer une réponse existante. La réponse la plus votée était de modifier le fichier xrdp.ini afin de remplacer le port par une valeur fixe au lieu du caractère générique -1 afin de rechercher 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 valeur -1. 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:

Editez 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 aurez la possibilité, à l’invite de connexion, de 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 première session (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 pourrez reprendre 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:

  • Editez le fichier xrdp.ini
  • set 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
14
QuestionReality

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 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 des sources.

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 soyez prudent.

J'espère que ça vous aide.

7
agc93

Le problème est que xrdp ne se connecte pas toujours au même port. Dans le cas contraire et si 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é.

4
YH Wu

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 :)

2
Dewi Jones

Si vous rencontrez le problème de "échec du mot de passe", vous pouvez vous pencher sur les deux problèmes de GitHub.

reconnexion à l'ancienne session vnc - échec du mot de passe VNC

Le mot de passe VNC a échoué lors du choix d'une session existante

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

1
waiwai

1. Modifiez-vous xrdp.ini:

Sudo vi /etc/xrdp/xrdp.ini

2.Changez le paramètre de port port=ask-1 dans 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 du bureau distant. fenêtre de connexion xrdp

1. Lors de la première connexion, vous pouvez voir ce numéro de port:

Numéro de port

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.

Rebranchez la dernière session


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

0
W. Dan

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
0
Nevar

J'ai rencontré ce problème sur une machine Debian. Utilisé X11RDP-o-Matic pour construire des packages xrdp 0.7. 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 de xrdp-sesman. S'est avéré être un problème d'autorisations lors de l'utilisation de systemd. Google trouvé un correctif qui résout le problème.

Comment identifiez-vous une reconnexion de travail? Exécutez ps axf et examinez l’arborescence du processus pour xrdp-sesman. X11rdp, xrdp-chansrv, xrdp-sessvc devrait tous être exécuté en tant qu'enfant. S'ils ne le sont pas, xrdp-sesman ne saura pas comment se reconnecter à la session.

Voici à quoi ça ressemble quand on travaille:

good xrdp session process

0
h0tw1r3