J'ai essayé de mettre en place un serveur terminal RDP sur precise en utilisant xrdp et j'ai eu beaucoup de mal à obtenir une configuration fonctionnelle. Lorsqu'un utilisateur se connecte, j'ai besoin qu'il se connecte à la session existante de cet utilisateur si elle existe, sinon qu'il démarre une nouvelle session, et toute session démarrée doit lancer LXDE. Quelles modifications dois-je apporter à la configuration par défaut pour que cela fonctionne ?
Réponses
Trop de publicités?1. Modifiez votre xrdp.ini :
sudo vi /etc/xrdp/xrdp.ini
2. modifier le paramètre du 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émarrer votre service xrdp
sudo service xrdp restart
Vous devriez voir l'image suivante lorsque vous vous connectez par le bureau à distance.
1. Lors de la première connexion, vous pouvez voir ce numéro de port. Exemple : 5912 :
Si vous oubliez ce numéro de port, vous pouvez utiliser la commande suivante pour le vérifier :
netstat -peant | grep 59 | grep Xvnc
2. Vous pouvez reconnecter la dernière session par votre numéro de port.
À partir de Linux Mint/Ubuntu 20, pour résoudre les problèmes généraux de xrdp
J'ai toujours trouvé utile d'éviter d'installer les paquets précompilés et de les construire à partir des sources.
Toutes les fonctionnalités ne sont pas activées dans les paquets de base : par exemple, le son et les canaux du presse-papiers doivent être explicitement activés avec la commande configure
De plus, les fichiers de mappage de clavier sont souvent obsolètes et certaines touches, comme les accolades, ne fonctionnent pas pour moi. La plupart des problèmes ont disparu comme par magie lorsque j'ai installé la version compilée personnalisée.
Vous pourriez vouloir compiler et installer xrdp
y xorgxrdp
(le gestionnaire de session xrdp similaire à x11rdp), en suivant les instructions aquí y aquí puis modifiez le /etc/xrdp.ini
y /etc/xrdp/sesman.ini
ce dernier étant utilisé par Xorg(xrdp)
. Je recommande de désactiver les canaux dynamiques dans le premier pour réduire la consommation CPU du client et du serveur.
Pour faire bonne mesure, j'utilise également une version compilée du client (Remmina), juste pour m'assurer que les deux s'adaptent parfaitement à mes machines.
J'ai rencontré ce problème sur une machine Debian. J'ai utilisé X11RDP-o-Matic pour construire les paquets xrdp 0.7. Avant la mise à jour vers systemd, la reconnexion de session xrdp fonctionnait bien.
En regardant l'arbre des processus, je pouvais voir que les sessions n'étaient plus des enfants de xrdp-sesman
. Il s'est avéré être un problème de permissions lors de l'utilisation de systemd. Google a trouvé un patch qui corrige le problème.
Comment identifier une reconnexion qui fonctionne ? Exécutez ps axf
et regardez l'arbre des processus pour xrdp-sesman
. X11rdp, xrdp-chansrv, xrdp-sessvc
devraient tous être en cours d'exécution comme un enfant. Si ce n'est pas le cas, xrdp-sesman
ne saura pas comment se reconnecter à la session.
Voici à quoi il ressemble lorsqu'il fonctionne :
Voilà ce que j'ai fait. Assurez-vous que tigervnc-server est installé pour que nous puissions 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). Puis configurez votre Xrdp pour utiliser cette session VNC à chaque fois. Configurez également TigerVNC pour qu'il démarre au démarrage ou autre. C'est la seule section VNC dans 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
Si vous utilisez le client Windows Remote Desktop pour vous connecter à une session Linux, j'ai constaté que le maintien de la même configuration d'affichage et de la même profondeur de couleur permet de reconnecter un utilisateur à la même session. Ces paramètres peuvent être ajustés en sélectionnant "Show Options" en bas à gauche de l'écran de démarrage, puis en sélectionnant l'onglet "Display".
Si vous ne savez pas quels étaient les paramètres d'affichage de votre session existante, démarrez une nouvelle session puis, à partir d'une fenêtre de terminal, exécutez les commandes suivantes ps axf | grep vnc
. Les paramètres d'affichage de vos sessions existantes et nouvelles de rdp montreront quelque chose comme -géométrie 1920x1080 -profondeur 16 . Notez ces valeurs, déconnectez-vous de votre nouvelle session, puis tentez une nouvelle connexion xrdp en utilisant les valeurs que vous avez découvertes.