La plupart du temps, en tant qu'administrateur système Linux, vous gérez vos serveurs sur le réseau. Il est très rare que vous ayez besoin d'avoir un accès physique à l'un de vos serveurs gérés. Dans la plupart des cas, tout ce dont vous avez besoin est de vous connecter en SSH à distance pour effectuer vos tâches d'administration. Dans cet article, nous allons configurer une alternative graphique à un accès à distance à votre serveur RHEL, qui est VNC. VNC vous permet d'ouvrir une session d'interface graphique à distance sur votre serveur et vous fournit ainsi une interface graphique complète accessible depuis n'importe quel emplacement distant.
Dans ce didacticiel, vous apprendrez :
- Comment installer les packages VNC requis
- Comment configurer et démarrer le serveur VNC sur RHEL
- Comment se connecter à distance à une session graphique
- Comment exécuter des programmes graphiques dans la session xterm
Connexion VNC à RHEL
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | Red Hat Enterprise Linux |
Logiciel | TigerVNC |
Autre | Accès privilégié à votre système Linux en tant que root ou via le sudo commande. |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Installation et configuration du serveur VNC
Il existe de nombreux gestionnaires de fenêtres que nous pouvons utiliser avec le serveur VNC, mais pour les besoins de ce didacticiel, nous allons configurer une session xterm simple, comme xterm
se trouve dans les référentiels de base de Red Hat Enterprise Linux. Nous montrerons cependant que ce point de départ simple donne à peu près toutes les fonctionnalités avec une astuce simple. Notez également qu'il existe des gestionnaires de fenêtres beaucoup plus sophistiqués, comme xfce
, mais cela sort du cadre de ce didacticiel.
- Tout d'abord, nous devons installer les packages requis pour l'application serveur :
# dnf install tigervnc-server xterm
- Ensuite, nous devons ouvrir le pare-feu pour le service. Pour vérifier quels services sont actuellement autorisés, nous listons les services activés :
# firewall-cmd --list-services cockpit dhcpv6-client ssh
Ouvrez le
vnc-server
service :# firewall-cmd --permanent --zone=public --add-service vnc-server success
Appliquez le changement de configuration :
# firewall-cmd --reload
Et listez à nouveau les services pour vérifier :
# firewall-cmd --list-services cockpit dhcpv6-client ssh vnc-server
AVERTISSEMENT
N'ouvrez pas le service VNC de votre ordinateur au public ! La règle de pare-feu ci-dessus est exécutée dans un environnement confiné et à des fins de démonstration uniquement. Assurez-vous de comprendre les risques avant d'ouvrir quoi que ce soit sur un serveur accessible sur Internet, ou même sur un ordinateur de bureau. - Nous devons configurer l'environnement dans lequel le serveur sera exécuté. Dans cet exemple, notre objectif est d'exécuter le serveur avec un utilisateur spécifié
testuser
qui n'a pasroot
privilèges. Notez que cette étape est effectuée avec l'utilisateur qui exécutera le serveur, et nonroot
. Nous mettons en place un mot de passe qui permettra la connexion (qui n'a rien à voir avec le mot de passe de l'utilisateur utilisé avecssh
):$ vncpasswd Password: Verify: Would you like to enter a view-only password (y/n)? n
Nous n'avons pas besoin d'avoir des connexions en lecture seule dans cet exemple. Ensuite, nous éditons le
/home/testuser/.vnc/xstartup
fichier texte avec un éditeur de texte commenano
. Le fichier doit être vide après l'installation, et nous n'ajouterons qu'un contenu minimal pour démarrerxterm
session sur connexion. Nous ajoutons la ligne suivante au fichier vide :xterm -geometry 1044x810+10+10 &
Ajustez les paramètres de géométrie pour les adapter à votre écran. Nous pouvons maintenant démarrer le serveur :
$ vncserver New 'rhel8beta.lab:1 (testuser)' desktop is rhel8beta.home.hu:1 Starting applications specified in /home/testuser/.vnc/xstartup Log file is /home/testuser/.vnc/rhel8beta.lab:1.log
Comme le suggère la sortie, nous pouvons suivre les journaux fournis par le serveur dans les fichiers journaux sous
/home/<username>/.vnc/<hostname>:1.log
, ce nom de fichier changera si plusieurs serveurs VNC sont en cours d'exécution (tout comme le port auquel vous devez vous connecter). Le fichier journal indique également sur quel port le serveur écoute :
vncext: Listening for VNC connections on all interface(s), port 5901
Quel est le port VNC par défaut.
- Nous pouvons utiliser de nombreux clients VNC pour nous connecter au serveur maintenant démarré.
Remmina
est un client livré avec les bureaux Gnome récents par défaut, et peut gérer les sessions SSH, RDP et VNC. Nous devons fournir le nom d'hôte ou l'adresse IP de l'hôte exécutant le serveur VNC, ainsi que le port. L'exemple ci-dessous utilise192.168.1.14
comme adresse, et le port par défaut5901
nous avons trouvé dans le fichier journal du serveur à l'étape précédente. Nous devons sélectionner "VNC" comme protocole à côté du champ d'adresse et taper le mot de passe que nous avons spécifié avecvncpasswd
plus tôt.Si tout fonctionne comme prévu, nous sommes connectés au serveur VNC et exécutons
xterm
, acceptant et fournissant le contenu du presse-papiers, protégé contre les pannes de réseau. Letop
L'exemple ci-dessous s'exécutera sans interruption si nous nous déconnectons de la session et nous reconnecterons plus tard. - Bien que ces étapes montrent essentiellement comment configurer le serveur VNC et s'y connecter, cela n'a pas beaucoup de sens d'exécuter
top
sur unxterm
distant session, car nous pourrions le faire avec beaucoup moins d'efforts avec ssh, et un serveur de session commescreen
. Pour voir la puissance d'une configuration xterm aussi simple, tapez simplementgedit
sur la console xterm distante (en supposant qu'un bureau Gnome est installé).
Exécution de programmes graphiques dans xterm
Un document vide apparaît dans gedit, comme le ferait n'importe quel programme graphique lorsqu'il est démarré à partir de la ligne de commande. Notez que le document en cours d'édition à distance et le programme qui le maintient ouvert sont également protégés par la session VNC. Une panne de réseau ne l'affectera pas, nous pouvons simplement nous reconnecter et continuer à travailler sur le texte, même si notre machine cliente rencontre une erreur irrécupérable, et nous avons oublié de sauvegarder notre travail au cours des dernières heures. Naturellement, le serveur VNC ne protégera pas de la défaillance de la machine sur laquelle il s'exécute.
Dépannage
Si vous obtenez une erreur "connexion refusée", il s'agit probablement d'un problème lié aux paramètres de votre pare-feu. Assurez-vous d'avoir configuré l'accès pour VNC avec les commandes suivantes :
# firewall-cmd --permanent --zone=public --add-service vnc-server # firewall-cmd --reload
Sinon, il pourrait s'agir d'un périphérique entre les deux systèmes qui bloque la connexion, ou simplement d'un problème de routage avec le réseau.
Si vous essayez de vous connecter au serveur VNC et que vous vous retrouvez avec seulement un écran noir, c'est probablement parce qu'il n'y a pas de gestionnaire de fenêtres pour VNC. Dans les instructions ci-dessus, nous montrons comment configurer xterm
dans ce but. Vous pouvez également utiliser un gestionnaire de fenêtres complet comme GNOME ou XFCE, mais vous devez définir quelque chose. Assurez-vous que xterm est configuré en tant que gestionnaire de fenêtres VNC conformément aux instructions ci-dessus.