Bonjour ! J'ai posté cette question sur le forum des shells sur UNIX mais personne n'a répondu. Je reposte donc mon sujet ici, en espérant plus de réponses

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 d'avance pour vos réponses