IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes POSIX Discussion :

Port fowarding depuis une adresse publique vers une adresse privée


Sujet :

Shell et commandes POSIX

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur du dimanche
    Inscrit en
    Février 2013
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Février 2013
    Messages : 154
    Points : 105
    Points
    105
    Par défaut Port fowarding depuis une adresse publique vers une adresse privée
    Bonjour

    Je suis sur mac.

    Je code une petite application, pour permettre à un ordinateur d'envoyer des messages à un autre via TCP. En local tout va bien, le client envoi des paquets sur 127.0.0.1:4000 par exemple, et le serveur "écoute" sur 127.0.0.1:4000 et affiche ce qui arrive.

    J'ai donc voulu tester avec mon adresse IP publique (supposons que ce soit 67.89.125.176). J'ai configuré le routeur de ma box pour rediriger les paquets envoyés à 67.89.125.176:4000 vers 192.168.1.10:4000 (l'adresse de ma machine). Côté programme, le client envoi maintenant ses paquets sur 67.89.125.176:4000 et le serveur écoute toujours sur 127.0.0.1:4000. Tout fonctionne, le serveur affiche ce que le client envoi.

    Mais si je veux donner mon application à mes amis pour qu'on puisse discuter ça devient un peu problématique, je vais quand même pas leur demander de faire du port forwarding sur leur routeur o.O Il faut donc que mon programme gère ça en interne.

    Ma question, donc : depuis le terminal d'un mac, comment rediriger une adresse IP extérieure vers une adresse IP privée, en conservant le port ? J'ai essayé avec ipfw, sans succès.

    Merci pour vos réponses !
    "There should be no boundaries to human endeavor" - Hawking
    Retrouvez moi sur GitHub : https://github.com/JeanLouisMassei

  2. #2
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    Citation Envoyé par MrPchoun Voir le message
    je vais quand même pas leur demander de faire du port forwarding sur leur routeur o.O
    eh ben si.

    soit chacun ouvre un port, soit ton appli a une topologie différente avec par exemple un serveur central (public) sur lequel tout le monde se connecte

    Ma question, donc : depuis le terminal d'un mac, comment rediriger une adresse IP extérieure vers une adresse IP privée, en conservant le port ?
    c'est pas ton mac le routeur/firewall, donc pas moyen, si ton routeur/firewall dispose d'un accès distant tu peux depuis ton mac t'y connecter en ssh, en telnet ou autre et lui modifier son comportement, mais pas plus (imagine un peu, moi aussi j'ai un mac, je rentre quelques lignes de code et je modifie la conf de TON routeur... y'aurait comme un problème si c'était possible non ?)

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur du dimanche
    Inscrit en
    Février 2013
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Février 2013
    Messages : 154
    Points : 105
    Points
    105
    Par défaut
    Hello

    Merci de ta réponse, je désespérais

    imagine un peu, moi aussi j'ai un mac, je rentre quelques lignes de code et je modifie la conf de TON routeur... y'aurait comme un problème si c'était possible non ?
    Hum... Voui. Mais alors, comment des applis genre Skype peuvent fonctionner, sans modifier les paramètres des routeurs de chaque utilisateur ?

    EDIT : je suis un peu allé chercher sur le net, il semblerait que Skype fonctionne en passant par un serveur global, un peu comme ce que tu me proposais. Mais pour le coup je ne vois pas en quoi passer par un serveur distant est une solution. Je veux dire, mon PC1 va envoyer un paquet sur un port ouvert du serveur, mais le problème reste pour la restitution du paquet.. Comment fait le serveur pour ensuite renvoyer le paquet à PC2 en traversant le firewall ?
    "There should be no boundaries to human endeavor" - Hawking
    Retrouvez moi sur GitHub : https://github.com/JeanLouisMassei

  4. #4
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    Citation Envoyé par MrPchoun Voir le message
    Merci de ta réponse, je désespérais
    oh ben y'a pas de quoi, tu avais posté à peine un jour ou deux avant

    il semblerait que Skype fonctionne en passant par un serveur global
    oui, dans le cas contraire on parlerait d'une architecture décentralisée en peer-to-peer (p2p), et c'est autrement plus complexe à mettre en oeuvre

    Mais pour le coup je ne vois pas en quoi passer par un serveur distant est une solution.
    ça permet d'avoir un point d'accès commun et une IP publique pour tous les utilisateur, tout simplement

    Je veux dire, mon PC1 va envoyer un paquet sur un port ouvert du serveur, mais le problème reste pour la restitution du paquet.. Comment fait le serveur pour ensuite renvoyer le paquet à PC2 en traversant le firewall ?
    depuis ta machine tu envoies un paquet, ton routeur/firewall l'identifie, et autorisera le paquet retour à passer, c'est notamment la notion de stateful dans les firewalls

    docs qui peuvent t'intéresser :

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur du dimanche
    Inscrit en
    Février 2013
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Février 2013
    Messages : 154
    Points : 105
    Points
    105
    Par défaut
    Salut,

    Merci pour la doc, je vais regarder tout ça

    EDIT
    J'essaie de mettre en place un hole punching. Je sens que j'approche, mais j'ai dû passer à côté de quelque chose. Voici ce que j'ai implémenté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Algo
        Soit S un Serveur
        Soient A et B, deux Peers
     
        S écoute sur IPS:s
     
        A se connecte à IPS:s pour envoi
        B se connecte à IPS:s pour envoi
     
        S affiche les ports par lesquels A et B ont envoyé leur requête depuis leurs machines respectives : a et b
     
        A se déconnecte de IPS:s et se connecte à IPB:b pour envoi
        B se déconnecte de IPS:s et se connecte à IPA:a pour envoi 
     
        A écoute sur IPA:a
        B écoute sur IPB:b
    Fin
    Il semblerait que les ports a et b ne restent pas ouverts. Je continu de chercher, mais toute aide est la bienvenue

    Merci !
    "There should be no boundaries to human endeavor" - Hawking
    Retrouvez moi sur GitHub : https://github.com/JeanLouisMassei

Discussions similaires

  1. Rediriger une adresse vers une autre !
    Par Pounyet dans le forum Apache
    Réponses: 1
    Dernier message: 06/11/2014, 18h35
  2. Rediriger une adresse ip sur lan
    Par calou_33 dans le forum Protocoles
    Réponses: 6
    Dernier message: 06/12/2009, 17h05
  3. Comment rediriger une adresse mail
    Par devdev dans le forum Exchange Server
    Réponses: 1
    Dernier message: 03/08/2009, 13h08
  4. Réponses: 7
    Dernier message: 06/05/2009, 13h05
  5. rediriger un port vers une adresse IP
    Par devlopassion dans le forum Administration
    Réponses: 6
    Dernier message: 04/11/2006, 12h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo