Les gens répondent généralement aux questions relatives à la connectivité au pire moment : l'application est en cours d'exécution, vos journaux semblent corrects et votre navigateur indique « Impossible de se connecter ».
Sur Calculez avec Hivenet, vous choisissez comment le monde extérieur peut accéder à votre machine virtuelle lors de sa création. Les options sont simples, mais elles répondent à différents besoins du monde réel : SSH pour l'accès et le tunneling, HTTPS pour les liens conviviaux pour les navigateurs et TCP/UDP pour les connexions entrantes directes. L'avantage de planifier vos paramètres de connectivité à l'avance est d'améliorer la sécurité et de faciliter le dépannage ultérieur.
Si vous êtes toujours en train de choisir un environnement d'exécution, commencez ici. Si vous souhaitez la mise à jour du produit qui a introduit les machines virtuelles, utilisez : Compute prend désormais en charge les machines virtuelles (VM). Lors de l'ouverture de ports sur des machines virtuelles, la communauté est une ressource précieuse pour résoudre les problèmes, partager des solutions et réfléchir à questions à se poser avant de choisir un fournisseur de calcul distribué vous permet d'éviter les surprises plus tard.
La réponse la plus courte
Utilisez SSH pour accéder au terminal. Si vous testez une interface utilisateur, utilisez d'abord la redirection de port SSH, car elle est privée et il est difficile de tout gâcher.
Utilisez HTTPS lorsque vous voulez un lien Web que vous pouvez ouvrir dans un navigateur. C'est l'itinéraire le plus propre pour les tableaux de bord et les interfaces utilisateur.
Utilisez le protocole TCP lorsque vous avez besoin de connexions entrantes vers un service TCP tel qu'une API. Par exemple, pour ouvrir un port dans un conteneur, vous pouvez utiliser la directive EXPOSE dans votre Dockerfile ou exécuter votre conteneur avec un mappage de ports à l'aide de l'option -p de la commande docker run.
Utilisez UDP lorsque votre application en a spécifiquement besoin.
Une chose à décider rapidement : les paramètres de connectivité sont choisis lors de la création et certaines options ne peuvent pas être modifiées ultérieurement. Si vous pensez avoir besoin d'un port entrant, planifiez-le à l'avance.
Pourquoi « ça marche mais je n'arrive pas à l'atteindre » se produit
La plupart des échecs sont dus à l'un des facteurs suivants :
- Votre application écoute uniquement sur localhost (127.0.0.1). Cela le rend accessible uniquement depuis l'intérieur de la machine virtuelle.
- Votre application écoute sur un port différent de celui que vous essayez d'atteindre.
- Vous n'avez pas activé le bon protocole sous Connectivité lorsque vous avez créé la machine virtuelle.
Avant de poursuivre quoi que ce soit d'autre, vérifiez que l'application est accessible depuis la machine virtuelle. Si ce n'est pas le cas, aucune option réseau ne pourra résoudre le problème.
Il est important de définir vos paramètres réseau et d'enregistrer vos fichiers de configuration lors de la configuration de l'exposition aux ports afin d'éviter ces problèmes.
SSH : la valeur par défaut fiable
SSH est destiné à l'accès à distance au terminal. C'est également le moyen le plus sûr d'accéder à une interface utilisateur Web pendant que vous la configurez, car vous pouvez tunneliser le port vers votre propre machine sans rien ouvrir publiquement.
HTTPS : l'option la plus simple pour les applications Web
Si votre application est destinée à être accessible via un navigateur, le HTTPS est généralement le bon choix. Il vous donne une URL publique afin que vous n'ayez pas à garder un tunnel SSH ouvert.
Si vous obtenez Bad Gateway, il s'agit presque toujours d'un décalage entre le port que vous utilisez et la manière dont votre application est liée.
TCP : accès direct aux API et aux services
Le protocole TCP est destiné à l'accès entrant à des services qui ne sont pas « ouverts un lien dans un navigateur ». Si vous utilisez un serveur API ou un service personnalisé qui attend des clients qu'ils se connectent directement, TCP est l'outil qu'il vous faut. Activez-le, exécutez votre service sur la machine virtuelle et utilisez les informations relatives aux terminaux affichées dans la console. Les ports TCP peuvent être ouverts sur Internet pour un accès externe, et l'utilisation d'une adresse IP publique fixe garantit une connectivité constante.
UDP : uniquement lorsque vous en avez besoin
L'UDP est moins courant pour les charges de travail IA/ML classiques. Si votre service utilise le protocole UDP, activez-le et suivez la même logique que le protocole TCP : exécutez le service, liez-le correctement, puis connectez-vous à l'aide du point de terminaison affiché dans la console.
Les services Kubernetes peuvent être utilisés pour exposer des machines virtuelles ou des applications au sein d'un cluster ou au monde extérieur. Un service Kubernetes expose l'accès réseau des clients à une application exécutée sur un ensemble de pods, offrant ainsi une abstraction, un équilibrage de charge et une exposition au monde extérieur. ClusterIP est le type de service par défaut, fournissant un accès interne au sein du cluster, tandis que NodePort rend un port accessible depuis l'extérieur du cluster si le nœud est accessible de l'extérieur. Les équilibreurs de charge peuvent fournir un accès externe avec une adresse IP fixe, et les noms DNS sont utilisés pour la découverte de services en interne et en externe. Un service unique peut être mappé à plusieurs machines virtuelles. Microsoft Azure et d'autres fournisseurs de cloud prennent en charge ces fonctionnalités réseau, et Le cloud GPU distribué de Hivenet pour l'IA et le HPC offre une flexibilité similaire pour exposer les services, et vous devez enregistrer vos fichiers manifestes lors de la configuration des services.
Une recommandation pratique
Commencez par fermer, puis ouvrez ce que vous pouvez justifier. Les configurations réseau prises en charge et le respect des meilleures pratiques communautaires offrent des avantages et une fiabilité supplémentaires.
Lorsque vous testez, préférez la redirection de port SSH. Il préserve la confidentialité de votre service tout en le stabilisant.
Lorsque vous êtes prêt à partager ou à gérer du trafic de production, utilisez le protocole HTTPS pour les applications Web et ouvrez le protocole TCP/UDP uniquement pour les services qui en ont réellement besoin. Ajoutez l'authentification dans votre application avant d'exposer quoi que ce soit, en particulier si vous exposez des terminaux IA tels que un modèle Llama 3.1-8B servi sur Compute..
Pour connaître les étapes à suivre, considérez la documentation comme la source de vérité : Exposez un service à partir d'une machine virtuelle de calcul : SSH, HTTPS, TCP et UDP
Configuration d'une machine virtuelle
Vous devez créer une instance de machine virtuelle et configurer un accès SSH pour vous connecter à distance à votre machine virtuelle sur Compute with Hivenet, ce qui est particulièrement utile lorsque vous exécutez Charges de travail d'IA et de machine learning alimentées par GPU. Commencez par lancer votre machine virtuelle, puis installez un serveur OpenSSH s'il est absent. Vous en aurez besoin pour accéder à votre machine virtuelle depuis la ligne de commande, en particulier lors de la gestion charges de travail GenAI évolutives et durables avec Compute.
Vérifiez l'adresse IP de votre machine virtuelle à l'aide de cette commande :
adresse IP
Vous verrez les interfaces réseau et leurs adresses IP. Placez votre machine virtuelle sur le même sous-réseau que votre hôte pour un accès SSH direct. Choisissez une configuration réseau « pont » au lieu de l'option « NAT » par défaut, ce qui permet à votre hôte de se connecter directement à la machine virtuelle.
Configurez une connexion VPN entre votre hôte et votre machine virtuelle si vous souhaitez y accéder depuis différents emplacements ou réseaux. Vous bénéficiez ainsi d'une meilleure sécurité et d'un plus grand nombre de moyens de vous connecter à distance.
Configurez votre pare-feu pour autoriser le trafic sur le port SSH (port 22 par défaut). Votre connexion SSH ne fonctionnera pas sans cette étape, même si tout le reste est configuré correctement.
Connectez-vous à votre client SSH une fois que votre machine virtuelle est exécutée, qu'OpenSSH est installé et que votre pare-feu autorise les connexions. Testez votre accès SSH pour vous assurer qu'il fonctionne. Votre machine virtuelle est maintenant prête pour la gestion à distance et une configuration supplémentaire.
SSH
SSH (Secure Shell) vous permet d'accéder en ligne de commande en toute sécurité à votre machine virtuelle. Commencez par installer le serveur OpenSSH sur votre machine virtuelle. Une fois installé, générez une paire de clés publique et privée. Ces clés authentifient votre client SSH et chiffrent les données que vous échangez avec le serveur.
Ajoutez la clé publique à votre machine virtuelle. Conservez la clé privée sur votre machine locale. Lorsque vous vous connectez, le client SSH utilise votre clé privée pour établir une session sécurisée avec le serveur. Des outils tels que PuTTY (pour Windows) ou la commande intégrée (pour Linux et macOS) facilitent la connexion et la gestion de votre machine virtuelle où que vous soyez.
Configurez les paramètres réseau et le pare-feu de votre machine virtuelle pour autoriser le trafic entrant sur le port 22. Il s'agit du port par défaut pour SSH et vous devez l'ouvrir pour les connexions à distance. Une fois que tout est configuré, utilisez votre client SSH pour vous connecter à l'adresse IP de la machine virtuelle et accéder à l'interface de ligne de commande. Cette connexion sécurisée est essentielle pour gérer, configurer et dépanner votre machine virtuelle dans le cloud.
HTTPS
Le protocole HTTPS chiffre votre trafic Web et prouve l'identité de votre serveur aux visiteurs. Il s'agit du protocole HTTP combiné au protocole TLS (Transport Layer Security), une couche de sécurité qui brouille les données lorsqu'elles circulent entre les navigateurs et votre serveur, empêchant ainsi les acteurs malveillants et toute personne essayant d'espionner vos utilisateurs.
Vous aurez besoin d'un certificat SSL/TLS pour que HTTPS fonctionne sur votre machine virtuelle. À des fins de test, créez un certificat auto-signé avec OpenSSL. Pour les sites actifs, procurez-vous un site auprès d'une autorité de certification fiable. Une fois que vous avez obtenu votre certificat, configurez votre serveur Web (Nginx ou Apache fonctionnent bien) pour l'utiliser.
Le HTTPS protège vos utilisateurs et votre réputation. Si vous gérez des mots de passe, des informations personnelles ou des données sensibles, c'est obligatoire. Les environnements cloud rendent cela d'autant plus critique, car les données transitent par un plus grand nombre de sauts réseau. Vos utilisateurs verront cette icône de verrouillage rassurante et les moteurs de recherche classeront également votre site plus haut.
TCP
Le protocole TCP (Transmission Control Protocol) constitue l'épine dorsale d'une communication fiable et orientée connexion entre les clients et les serveurs. Lorsque vous envoyez des données entre votre machine virtuelle et le monde extérieur, le protocole TCP veille à ce qu'elles arrivent dans l'ordre, sans perte ni duplication. Il gère automatiquement la vérification et la correction des erreurs.
Vous utiliserez le protocole TCP pour tout ce qui concerne le cloud computing et les réseaux virtuels, des serveurs API aux connexions aux bases de données. Configurez votre machine virtuelle pour qu'elle écoute sur le port de votre choix, puis configurez les règles de pare-feu pour autoriser les connexions entrantes sur cette plage de ports. Les clients peuvent ensuite se connecter à l'adresse IP publique et au port de votre serveur. Cela crée un canal stable pour l'échange de données.
Le protocole TCP vous permet de contrôler la congestion, de contrôler le flux et de corriger les erreurs. Ces caractéristiques en font le choix idéal pour les applications nécessitant un transfert de données fiable. Vous pouvez exécuter des services Web, des bases de données ou des applications personnalisées en toute confiance : le protocole TCP achemine vos données là où elles doivent aller.
Conclusion
L'ouverture des ports de votre machine virtuelle est une étape cruciale pour permettre un accès à distance sécurisé et efficace et une exposition aux services. Que vous ayez besoin de SSH pour un accès sécurisé en ligne de commande, de HTTPS pour un trafic Web chiffré ou de TCP/UDP pour des connexions spécifiques à une application, il est essentiel de configurer soigneusement les paramètres réseau de votre machine virtuelle. Commencez toujours par une configuration sécurisée et fermée et ouvrez uniquement les ports nécessaires, en appliquant les meilleures pratiques telles que l'utilisation de connexions VPN et de règles de pare-feu pour contrôler le trafic. L'exploitation du calcul avec les options de connectivité flexibles de Hivenet garantit l'accessibilité de vos services tout en maintenant une sécurité et des performances renforcées. N'oubliez pas de vérifier minutieusement vos configurations pour éviter les pièges courants et protéger votre environnement virtuel.
Questions fréquemment posées (FAQ)
Quel est le meilleur moyen d'ouvrir les ports d'une machine virtuelle en toute sécurité ?
A1 : La meilleure pratique consiste à commencer par fermer tous les ports et à n'ouvrir que ceux nécessaires à votre application. Utilisez SSH pour sécuriser l'accès à distance, activez le protocole HTTPS pour le trafic Web et ouvrez les ports TCP/UDP uniquement lorsque cela est nécessaire. Configurez également des règles de pare-feu et des connexions VPN pour contrôler le trafic et protéger votre machine virtuelle contre tout accès non autorisé.
Comment configurer l'accès SSH sur ma machine virtuelle ?
A2 : Installez un serveur OpenSSH sur votre machine virtuelle, générez des paires de clés SSH et ajoutez la clé publique à votre machine virtuelle. Assurez-vous que le port 22 est ouvert dans votre pare-feu et que le réseau de votre machine virtuelle est configuré pour autoriser les connexions entrantes. Connectez-vous ensuite à l'aide d'un client SSH tel que PuTTY ou de la commande de terminal intégrée.
Puis-je exposer plusieurs services sur une seule machine virtuelle en utilisant différents ports ?
A3 : Oui, vous pouvez exécuter plusieurs services sur une machine virtuelle en configurant chacun pour qu'il écoute sur des ports différents. Assurez-vous d'ouvrir les ports correspondants dans les paramètres de votre pare-feu et de votre réseau pour autoriser l'accès externe.
Quelle est la différence entre les ports TCP et UDP lors de leur ouverture sur une machine virtuelle ?
A4 : Le protocole TCP fournit une communication fiable, orientée connexion, adaptée à la plupart des applications telles que les serveurs Web et les API. L'UDP est sans connexion et est utilisé pour les applications nécessitant une transmission rapide et à faible latence, telles que le streaming ou les jeux. Ouvrez le type de port qui correspond aux exigences de protocole de votre application.
Comment puis-je vérifier que mes ports sont ouverts et accessibles sur ma machine virtuelle ?
A5 : Utilisez des outils réseau tels que telnet, nc (netcat) ou des scanners de ports en ligne pour tester la connectivité à l'adresse IP et au port de votre machine virtuelle. Vérifiez également le pare-feu et les configurations réseau de votre machine virtuelle pour vous assurer que les ports ne sont pas bloqués.
Qu'est-ce que la vérification de sécurité et pourquoi est-elle importante lors de l'ouverture de ports sur une machine virtuelle ?
A6 : La vérification de sécurité consiste à valider que seuls les utilisateurs légitimes et le trafic peuvent accéder aux services de votre machine virtuelle, en vous protégeant contre les robots malveillants et les accès non autorisés. La mise en œuvre de services de sécurité, de pare-feux et de VPN permet de contrôler le trafic et de garantir le succès de la vérification avant d'autoriser les connexions.
Puis-je ouvrir des ports sur une machine virtuelle hébergée dans Azure App Service ?
A7 : Azure App Service gère principalement les applications Web et ne prend pas en charge l'ouverture de ports arbitraires comme une machine virtuelle traditionnelle. Pour un contrôle total des ports, utilisez des machines virtuelles Azure ou des instances de conteneur avec exposition explicite aux ports configurées via les paramètres réseau Docker ou Azure.
Comment Compute with Hivenet aide-t-il à gérer les ports ouverts et la sécurité ?
A8 : Compute with Hivenet vous permet de définir les options de connectivité lors de la création de la machine virtuelle, notamment SSH, HTTPS, TCP et UDP, avec un pare-feu intégré et un support VPN. Il vous aide à contrôler le trafic, à appliquer les meilleures pratiques de sécurité et à vérifier votre configuration pour protéger efficacement vos ressources.
Que dois-je faire si je rencontre des erreurs « Impossible de me connecter » malgré l'ouverture des ports ?
A9 : Vérifiez que votre application écoute sur la bonne adresse IP et le bon port, assurez-vous que les paramètres du pare-feu et du réseau autorisent le trafic entrant et confirmez que le protocole correspond à votre service. Vérifiez également que votre machine virtuelle est accessible depuis votre réseau client et qu'aucun service de sécurité ne bloque l'accès.
Existe-t-il des ressources ou des outils communautaires pour vous aider à résoudre les problèmes liés aux ports ouverts sur les machines virtuelles ?
A10 : Oui, la communauté et la documentation Hivenet fournissent des guides utiles, des conseils de dépannage et des exemples. Des outils tels que les clients SSH, les scanners réseau et la journalisation peuvent vous aider à diagnostiquer les problèmes de connectivité et à optimiser la configuration réseau de votre machine virtuelle.
