Rendre son serveur local accessible (ouvrir les ports)

Discussion dans 'Tutoriels serveur' créé par robin4002, 6 Avril 2017.

  1. robin4002

    robin4002 Étudiant en informatique
    Staff Responsable technique Responsable forum

    Inscrit:
    12 Novembre 2012
    Messages:
    16 140
    J'aime reçus:
    2 587
    Bonjour/bonsoir,

    Ce tutoriel à pour objectif de vous expliquer comment rendre un serveur Minecraft local (qui tourne sur votre propre ordinateur) accessible par d'autres personnes.
    Ce tutoriel par du principe que vous avez déjà un serveur Minecraft sur votre ordinateur. Si ce n'est pas le cas et que vous ne savez pas comment en faire un, suivez ce tutoriel.


    I. Quelques vérifications :

    Avant de commencer quoi que ce soit, nous allons procéder à quelques vérifications. En effet en fonction de ce que vous cherchez à avoir et d'autres facteurs, il y aura différentes choses à appliquer et l'auto-hébergement ne sera pas approprié voir impossible. Premièrement :
    • si vous souhaitez faire un serveur familiale, accessible par vos frères/sœurs où n'importe quelle personne connecté sur votre réseau local (c'est à dire, connecté sur votre box internet que ce soit par wifi ou par câble), il n'y a rien de spécial à faire, il faut juste distribuer son ip local aux personnes concernés.
    • si vous souhaitez faire un serveur entre amis ou public, il faudra rendre votre serveur accessible depuis internet, ce qui nécessitera quelques paramétrages mais aussi une bonne connexion.
    Commencez donc par identifier votre ip local.
    Pour cela il y a plusieurs moyens :
    • Sous Windows, en faisant un clic droit sur la barre des tâches, puis en cliquant sur "Gestionnaire des tâches" puis sur "Plus de détails" en bas à gauche du gestionnaire des tâches, en allant dans l'onglet "Performance" et enfin wifi ou ethernet (en fonction de si votre ordinateur est connecté en wifi ou par câble), votre ip local sera indiquée à droite de "Adresse IPv4:".
    • Sous Windows, en ouvrant une invite de commande (en cherchant cmd ou en faisant un clic droit sur le bouton de Windows -> invite de commande) et en tapant la commande "ipconfig". Votre ip local sera indiquée sur la ligne "Adresse IPv4. . . ."
    • Sous MacOS, en cliquant sur la pomme en haut à gauche, en cliquant sur "Préférence système ..." puis sur "Réseau" et enfin sur wifi ou ethernet (en fonction de si votre ordinateur est connecté en wifi ou par câble), votre ip local sera indiquée en dessus de "état".
    • Sous Linux, en tapant "ip addr" dans un terminal.

    Dans le cas où vous souhaitez faire un serveur familiale, félicitation, vous avez réussi avec succès à suivre ce tutoriel ! En effet, vous frères/sœurs/autres personnes connectés sur votre box ont juste à entrer votre ip local dans le menu de connexion au serveur pour s'y connecter. Et c'est tout.

    Dans l'autre cas, on va d'abord vérifier quelque chose de très important avant de passer à la suite : votre connexion.
    Pour tester ça, je vous propose d'utiliser nperf : https://www.nperf.com/fr/
    Cela vous permettra de connaitre votre débit descendant et votre débit montant.
    Voila par exemple ce que j'obtiens en VDSL2 sur une ligne courte :
    [​IMG]
    (cette partie est purement informative, vous n'avez pas forcement besoin de la lire)
    En France, il y a 3 réseaux pour internet :
    - le réseau téléphonique : composé de 2 pair de cuivre, différente technologie l'utilise : l'ADSL, le Re-ADSL, le VDSL. Votre débit dépend directement de la longueur de votre ligne, de la largeur des pairs de cuivre et de l'état de ces dernières. Les lignes les plus courtes (moins de 1,2 km) peuvent en général profiter du VDSL qui permet un débit plus important (jusqu'à ~92 mbps dans le sens descendant et ~30 mbps dans le sens montant contre ~25/1 mbps pour l'ADSL).
    Tous les opérateurs proposent des offres sur ce réseau.
    - le réseau coaxiale : composé de coaxiale blindé, ce réseau est initialement pensé pour la TV mais il a évolué en hybride de fibre et de coaxiale. La fibre arrive jusqu'à un convertisseur/amplificateur et le signal passe ensuite dans un câble coaxiale. L'avantage est que grâce aux amplificateur, le débit ne dépend pas de la distance. En fonction des zones (si rénové ou pas) le débit va de 30 mbps dans le sens descendant à 1 gbps ! et de 1 mbps dans le sens montant à 100 mbps.
    Historiquement ce réseau appartient a pleins d'acteurs différents, Numéricable ayant petit à petit racheté la grosse partie. Après le rachat de SFR, Numéricable a décidé de garder le nom de SFR c'est donc désormais SFR qui commercialise principalement des offres sur ce réseau. La poste mobile propose aussi des offres sur ce réseau.
    - le réseau fibre : avec cette technologie la fibre va jusqu'à l'abonnée. Orange est le plus gros acteur dans cette technologie, qui permet jusqu'à 1 gbps en débit descendant et 250 mbps en débit montant (techniquement plus, les valeurs que je donne sont ce que proposent commercialement les opérateurs au grand public).
    Tous les opérateurs proposent des offres FTTH (fiber to the home), mais pas partout ...
    L’hébergement d'un serveur Minecraft (et même d'un serveur en général) est particulièrement gourmand en débit montant. Si vous avez moins de 1 mbps en débit montant, votre serveur pourra accueillir très peu de joueur sans qu'ils ne rencontrent de lag.
    Pour un serveur avec 2-3 amis ça peut encore passer, mais avec plus de 5 personnes, moins 1 mbps ne tiendra jamais.
    /!\ Attention aussi aux usages gourmand en débit. Si vous téléchargez ou envoyez un des fichiers, la connexion disponible pour votre serveur Minecraft sera moindre. Sur une connexion limite, le moindre usage gourmand en débit se ressentira en jeu. /!\

    Pour ces raisons, je vous recommande plutôt consacrer un peu de budget pour louer un petit serveur si votre connexion est mauvaise, même si c'est pour un serveur entre amis.
    Si vous souhaitez faire un serveur public, l'auto-hébergement peut être une bonne idée au début pour faire des économies, mais cela ne peut pas être considéré comme une solution à long terme : quand votre serveur grandira, il sera inévitable de le passer sur un serveur dédié (à moins d'avoir la fibre et d'acheter un ordinateur spécialement pour l'hébergement du serveur Minecraft, mais là encore la qualité sera moindre qu'un serveur dédié car vous n'aurez ni d'anti-ddos, ni de redondance en cas de coupure de courant ou de perte d'internet).

    Maintenant les différentes vérifications faites, nous allons pouvoir passer à la suite.


    II. Un peu de théorie :

    Avant de passer à la pratique, nous allons voir quelques éléments théorique concernant le fonctionnement du réseau.
    L'ipv4 est encodé sur 32 bits. Cela permet d'avoir 2^32 soit 4 294 967 296 ip différentes. Beaucoup non ? Il se trouve que non. C'est peu, trop peu, on arrive actuellement à court d'ipv4. C'est pour cela que l'ipv6 est en cours de déploiement et cette dernière est encodé sur 128 bits (ce qui permet d'avoir 2^128 ip différentes, ce qui laisse cette fois de la marge).

    Pour éviter de gaspiller des ipv4, la norme RFC 1918 prévoit 3 plage d'adresse privée.
    Au lieu de donner une ip public à chaque périphérique, un seul périphérique (votre box) reçoit une ip public, les autres périphériques reçoivent une ip privée. Conséquence : vous possédez un sous-réseau et vos périphériques sont connectés à ce sous réseau mais pas à internet (sauf votre box).
    Pour accéder à internet, votre ordinateur doit obligatoirement passer par la box, qui s'occupe de faire l'interface entre votre réseau et internet. C'est d'ailleurs pour cela que tous vos périphériques ont la même ip sur internet. Si vous avez un frère ou une sœur qui se fait ban-ip sur un serveur, vous l'êtes aussi. Car ce n'est pas l'ip de l'ordinateur qui est banni, mais celle de la box.
    Voila un petit schéma récapitulatif :
    tuto nat.png Lorsque ordinateur 1 veut aller sur minecraft.fr, le message est envoyé à la box, qui fait ce qu'on appelle du NAT (network address translation) et transmet donc la requête aux serveur de minecraft.fr. Celui-ci envoie la réponse (le contenu de la page) à la box, qui le renvoie à nouveau à votre pc.

    Mais que se passe-t-il si la box reçoit directement une requête depuis internet ? Par exemple dans notre cas, si la box reçoit un paquet de découverte de serveur minecraft ? Il va absolument rien se passer. La box ne traitera pas la demande. Du-coup la requête va timeout (délai d'attente de réponse dépassé) et Minecraft va indiquer sur le serveur n'existe pas / n'est pas allumé.
    Ce que nous souhaitons, c'est que cette requête arrive jusqu'à l'ordinateur qui héberge le serveur Minecraft, afin qu'il puisse répondre.


    III. Paramétrage du NAT :

    Souvent également appelé "ouvrir ses ports" le but de cette manipulation va être de demander à la box de transmettre les requêtes entrantes arrivant un port spécifique (25565 dans notre cas, le port utilisé par les serveurs Minecraft par défaut) vers l'ordinateur hébergeant le serveur Minecraft.

    La manipulation sera différente en fonction du modèle de votre box internet.

    Rendez-vous sur le lien souvent : http://mafreebox.freebox.fr/
    Double-cliquez sur "paramètre de la Freebox" (il vous faudra entrer le mot de passe de la freebox).
    Cliquez ensuite sur l'onglet "Mode avancé" puis double-cliquez sur "Gestion des ports" et enfin sur "Ajouter une redirection".
    Dans "IP destination", cherchez dans la liste votre ordinateur (vous pouvez le repérer avec le nom ou avec l'ip local), dans IP source mettez toutes, dans protocole mettez TCP et enfin dans toutes les cases en rapport avec le port mettez 25565. freebox.PNG
    Pour finir cliquez sur sauvegarder.

    Allez sur le lien suivant : http://192.168.1.1/
    Entrez vous identifiants (par défaut admin pour l'utilisateur et les 8 premiers chiffres de votre clé wifi pour le mot de passe).
    Sur la barre en bas au milieu, cliquez sur l'engrenage puis sur réseau :
    livebox1.png
    Vous arriverez dans une nouvelle page avec l'onglet DHCP ouvert, descendez un peu jusqu'à arrivé à baux DHCP statiques. Sélectionnez l'ordinateur qui héberge le serveur minecraft et cliquez sur "ajouter".
    livebox2.png
    Allez ensuite dans l'onglet NAT/PAT, cliquez sur "FTP server", un menu déroulant va s'ouvrir, choisissez "nouveau ...". Entrez dans la zone de texte Minecraft. Choisissez comme port interne et externe 25565, laissez TCP, choisissez l'ordinateur qui héberge le serveur minecraft et enfin cliquez sur "Créer".
    livebox3.png

    Suivez les instructions de cette page d'Orange : https://assistance.orange.fr/livebo...-jeu-ou-d-une-application-serveur_18998-19118
    Le port de Minecraft est 25565 et le protocole tcp.

    Rendez-vous sur la page suivante : http://monmodem/
    Cliquez sur "configurer votre modem", puis utilisez l'identifiant admin avec le mot de passe indiqué à l'arrière de votre box.
    Dans le menu réseau, déroulez paramètres avancés puis aller dans transfert de ports.
    sfr1.png
    Ensuite dans nom mettez Minecraft, 25565 pour le port de départ et de fin, pour le protocole mettez TCP et enfin pour l'ip local remplissez les deux derniers octets de l'adresse local de votre pc (voir partie 1 pour connaitre votre ip local).
    Enfin cliquez sur ajouter pour confirmer.

    Étant donné que je n'ai pas de screenshot pour les autres opérateurs, je ne peux que vous conseiller de rechercher sur google si vous n'êtes pas chez Free, SFR ou Orange.


    Une fois paramétré, il ne nous reste plu-qu’à vérifier que tout fonctionne. Lancez votre serveur Minecraft puis distribué votre ip public à un ami. Si personne n'est disponible pour tester, rendez vous ici : https://dinnerbone.com/minecraft/tools/status/ et entrez votre adresse public.
    Ce petit outil développé par dinnerbone fait exactement la même chose que Minecraft lorsque vous allez dans la page serveur : pour chaque serveur indiqué, il envoie un requête de découverte, à laquelle le serveur répond avec le motd, le nombre de joueur et la version.
    Pour avoir votre ip public, il existe pas mal de site qui l'affiche, vous pouvez par exemple vous rendre sur http://ip.lafibre.info/
    mcstatus.PNG
    Ici tout est bon ;)

    IV. Mise en place d'un DNS dynamique :

    Votre serveur est maintenant accessible par n'importe qui, à condition qu'il ait connaissance de votre ip. Et il reste ici un problème : aucun opérateur grand public ne fourni une fixe (au sens contractuel).
    Dans la pratique, chez la plupart des opérateurs même si une ip fixe n'est pas incluse dans le contrat, l'ip ne change que très rarement.
    Mais hormis le fait qu'elle peut changer, l'ip a un autre problème : retenir des chiffres, ce n'est pas toujours pratique. "minecraft.fr" c'est quand même plus simple à retenir que "5.39.62.10".
    Pour régler ces deux problèmes, il faut un nom de domaine. Ensuite le dns associe le nom à une ip. Cependant, un nom de domaine, c'est payant. Par exemple, un .fr coute 7 € HT par an.

    Heureusement de nombreux services proposent un sous domaine gratuit (cequevousvoulez.unnomdedomaine.quelque chose). C'est par exemple le cas de noip.
    Une fois un compte créé, rendez-vous sur cette page pour ajouter une domaine :
    noip.PNG
    (votre ip sera automatiquement détecté).
    Par contre, retourner sur cette page et mettre à jour l'ip à chaque changement de l'adresse ip (encore faut-il avoir remarqué qu'elle a changé !) c'est très embêtant.

    Heureusement il existe une option dans les paramètres de votre box pour mettre à jour dynamiquement votre ip lorsqu'elle change.
    Comme avant rendez-vous sur http://mafreebox.freebox.fr, double cliquez sur "Paramètre de la Freebox" puis sur "DNS dynamique". Allez ensuite dans l'onglet "Configuration", cochez No-IP et entrez-s'y les identifiant de votre compte no-ip. Dans nom d'hôte mettez l'adresse complète (robin4002.ddns.net dans mon cas).
    Suivez les instructions données sur le site de SFR :
    https://assistance.sfr.fr/internet-et-box/box-nb6/activer-dyndns.html
    Vous devrez y entrer vos identifiants noip.


    Désormais il est possible d'utiliser votre sous-domaine plutôt que l'ip pour se connecter au serveur. Vous pouvez à nouveau utiliser l'outil de dinnerbone pour vérifier que l'adresse fonctionne.

    Juste une dernière remarque, utiliser un nom de domaine ne permet absolument pas de cacher votre ip. N'importe qui ayant votre nom de domaine pourra retrouvé votre ip très facilement avec un simple ping ou un nslookup.
     
    #1 robin4002, 6 Avril 2017
    Dernière édition: 7 Mars 2018
    nocturne123 et DiscowZombie aiment ça.
  2. Wolfwayy

    Wolfwayy Nouveau

    Inscrit:
    29 Octobre 2017
    Messages:
    1
    J'aime reçus:
    0
    C'est très bien éxpliqué mais moins pour les personnes ayant SFR, tu pourrait m'expliquer comment faire parce que quand j'essaie de renter mon sous domaine dans minecraft sa me marque Can't resolve hostname
     
  3. robin4002

    robin4002 Étudiant en informatique
    Staff Responsable technique Responsable forum

    Inscrit:
    12 Novembre 2012
    Messages:
    16 140
    J'aime reçus:
    2 587
  4. Ukai_

    Ukai_ Nouveau

    Inscrit:
    26 Novembre 2017
    Messages:
    13
    J'aime reçus:
    0
    Ah, et si on est chez "VOO" ? x)
     
  5. robin4002

    robin4002 Étudiant en informatique
    Staff Responsable technique Responsable forum

    Inscrit:
    12 Novembre 2012
    Messages:
    16 140
    J'aime reçus:
    2 587
    Aucune idée, il faut voir avec le support de ton fournisseur.
     
  6. Detobel36

    Detobel36 Créateur de plugins (PhoenixRebirth)
    Support

    Inscrit:
    17 Août 2012
    Messages:
    9 163
    J'aime reçus:
    1 937
  7. Ukai_

    Ukai_ Nouveau

    Inscrit:
    26 Novembre 2017
    Messages:
    13
    J'aime reçus:
    0
  8. Redpanda38

    Redpanda38 Nouveau

    Inscrit:
    22 Janvier 2018
    Messages:
    4
    J'aime reçus:
    0
    Très complet bravo et merci mais est il possible d'ouvrir ses ports seulement pour certaines personnes?

    Parce que moi j'ai installer un serveur sur mon ordinateur j'aiouvert mes ports mes amis arrive à se connecter et tout mais je n'ose pas laisser allumer mon serveur trop longtemps de peur de me faire pirater.

    Alors voilà j'aimerais savoir si il est possible d'ouvrir ses ports seulement pour mes amis ou si il serait possible de mieux protéger mon ordinateur de quelque manière que ce soit.
     
  9. robin4002

    robin4002 Étudiant en informatique
    Staff Responsable technique Responsable forum

    Inscrit:
    12 Novembre 2012
    Messages:
    16 140
    J'aime reçus:
    2 587
    Non, il n'est pas possible d'ouvrir le port seulement pour tes amis.
    Il faudrait rajouter un filtre par ip au niveau de l'ordinateur (faisable sous Linux via les ip table, encore faut-il connaitre l'ip de tes amis).

    Mais ouvrir le port 25565 ne permet que l'accès au serveur Minecraft, dans le pire des cas un inconnu pourra se connecter au serveur (sauf si tu actives la whitelist), il n'est pas possible de prendre le contrôle de l'ordinateur simplement avec un port ouvert (bien heureusement, car en ipv6 l'ordinateur est directement exposé à internet, il n'y a pas de NAT).
     
  10. Redpanda38

    Redpanda38 Nouveau

    Inscrit:
    22 Janvier 2018
    Messages:
    4
    J'aime reçus:
    0
    Ok merci de ta réponse.
    Donc se que je comprends de tout ceci c'est que je peux laisser mon serveur ouvert sans aucun risque c'est bien ça?
     

Partager cette page