Comment transférer un port sous Mac OS X

36

Je souhaite établir toutes les connexions entrantes vers le port 1000 de mon hôte (IP: 200.234.XXX.XXX) pour être transféré vers le port 80 sur l'hôte 10.211.55.5

Comment puis-je le faire sur mon hôte? Il exécute Mac OS X 10.5.8

Daniel Cukier
la source
ah, vous exécutez également des parallèles, ayant le même problème que moi? :)
LearnCocos2D

Réponses:

30

Assez simple à faire, vous devez d'abord activer le service de connexion à distance sur votre mac ( Préférences Système -> Partage -> Connexion à distance ). Cela démarre votre serveur ssh.

Exécutez ensuite la commande suivante dans votre terminal OS X:

ssh -L 200.234.XXX.XXX:10000:10.211.55.5:80 -N 127.0.0.1

Vous devrez peut-être d'abord accepter l'empreinte du serveur et saisir votre mot de passe local pour la connexion ssh. (Vous pouvez également configurer une clé publique / privée ssh locale à locale pour qu'elle ne demande pas de mot de passe, cela laissera un exercice au lecteur.)

Le format est:

ssh -L local_addr:local_port:remote_addr:remote_port -N 127.0.0.1
Marius
la source
Pouvons-nous le faire si le port 22 n'est pas ouvert?
Afshin Moazami du
1
Vous devez vous connecter en quelque sorte. Mais vous pouvez toujours exécuter ssh sur un autre port ... peut-être un port http? ou le port BIND (DNS)? Ceux-ci sont principalement ouverts sur les pare-feu.
Marius
10

Très simple grâce à l'outil polyvalent ncat:

sudo ncat --sh-exec "ncat 10.211.55.5 80" -l 1000 --keep-open

Obtenez les fichiers binaires de ncat / nmap pour Mac OS X sur le site officiel: http://nmap.org/download.html#macosx

EDIT: ajout de sudo pour écouter sur un port restreint <1024

Tony Baguette
la source
1
Merci. c'est très simple d'ailleurs il n'a pas besoin de redémarrer!
verystrongjoe
De plus, vous n'avez pas besoin de démarrer le serveur SSH sur votre macOS.
Tony Baguette
5

En supposant que vous ayez un routeur UPnP, ses ports sont faciles à configurer en utilisant PortMap

Il a une interface utilisateur très simple.

texte alternatif

Alexis Hirst
la source
pourquoi ton image est-elle si petite?
barlop
3

Eh bien, je peux vous dire comment je fais ce genre de chose sur mon système Mac OS X 10.5.8.

J'ai commencé par une réponse à propos de NAT, mais je pense que vous voulez en fait un programme de transfert TCP à la place (vous mentionnez «proxy» et redirection de port.)

Il y a plusieurs façons de le faire, selon vos besoins, même 'SSH' peut être mis en action, bien que ma manière courte et douce préférée soit un script Perl tcpforward .

Si vous avez besoin d'une manipulation HTTP (vous devrez peut-être modifier les redirections HTTP, de sorte que lorsqu'une demande pour une URL sans '/' ne soit pas redirigée vers le serveur réel et inaccessible), Apache peut faire la travail d'un proxy inverse. Vous voudrez regarder mod_proxy et en particulier ProxyPass et ProxyPassReverse. N'activez pas ProxyRequests, c'est pour le proxy direct. Il devrait être possible d'utiliser le propre Apache de Mac OS pour ce faire, si vous l'avez en cours d'exécution. Il vient avec mod_proxy et /etc/httpd/httpd.conf est le fichier de configuration à mettre à jour.

Même avec Apache, vous devez vous assurer que tous les liens dans le contenu du serveur réel sont relatifs, s'ils font référence au serveur réel, vous pouvez essayer le module mod_proxy_html (je n'ai aucune expérience de la façon dont cela fonctionne.)

jrg
la source
+1 pour tcpforward, Perl ne cesse d'être utile.
Steve Kehlet
0

Votre machine est-elle connectée directement à Internet (IE - sans routeur)? Normalement, vous faites la redirection de port sur le routeur, mais si vous utilisez un modem pour vous connecter directement, iptables est probablement le meilleur moyen.

Dentrasi
la source
Je ne sais pas pourquoi cela a été rejeté parce que c'est la vérité.
Hasaan Chop
4
@HasaanChop Ceci est rétrogradé car il n'est pas utile. Si elle expliquait exactement comment utiliser iptablespour accomplir ce que la question demandait, cela pourrait être utile.
Jon-Eric
Il n'y a pas d'iptables sur mac os x.
Unnamed_1
-1

Voici un bon article: http://www.cyberhq.nl/article/384/port-forwarding-in-macos-x

Mais puisque vous transférez vers 80, je suppose que vous voulez qu'il aille sur un serveur Web, donc je changerais simplement la configuration du serveur Web pour configurer un proxy inverse ou quelque chose comme ça.

Nisse Engström
la source
6
On dirait que le lien est rompu
Jochen Bedersdorfer