So stellen Sie eine Portweiterleitung unter Mac OS X her

36

Ich möchte alle eingehenden Verbindungen zu Port 1000 meines Hosts (IP: 200.234.XXX.XXX) herstellen, um auf Port 80 von Host 10.211.55.5 weitergeleitet zu werden

Wie kann ich das auf meinem Host machen? Es läuft Mac OS X 10.5.8

Daniel Cukier
quelle
Ah, Sie laufen auch parallel und haben das gleiche Problem wie ich? :)
LearnCocos2D

Antworten:

30

Ganz einfach: Zunächst müssen Sie den Remote-Anmeldedienst auf Ihrem Mac aktivieren ( Systemeinstellungen -> Freigabe -> Remote- Anmeldung ). Dies startet Ihren SSH-Server.

Führen Sie dann den folgenden Befehl in Ihrem OS X-Terminal aus:

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

Möglicherweise müssen Sie zunächst den Serverfingerabdruck akzeptieren und Ihr lokales Kennwort für die SSH-Anmeldung eingeben. (Sie können auch einen lokalen zu lokalen öffentlichen / privaten SSH-Schlüssel einrichten, damit kein Kennwort abgefragt wird. Dies wird dem Leser als Übung überlassen.)

Das Format ist:

ssh -L local_addr:local_port:remote_addr:remote_port -N 127.0.0.1
Marius
quelle
Können wir das tun, wenn Port 22 nicht geöffnet ist?
Afshin Moazami
1
Du musst dich irgendwie verbinden. Aber Sie können ssh immer auf einem anderen Port ausführen ... vielleicht auf einem http-Port? oder der BIND (DNS) -Port? Diese sind meist auf Firewalls geöffnet.
Marius
10

Ganz einfach mit dem vielseitigen Tool ncat:

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

Laden Sie die Binärdateien von ncat / nmap für Mac OS X von der offiziellen Website herunter: http://nmap.org/download.html#macosx

BEARBEITEN: sudo hinzugefügt, um einen eingeschränkten Port <1024 abzuhören

Tony Baguette
quelle
1
Vielen Dank. es ist sehr einfach, außerdem muss es nicht neu gestartet werden!
Verystrongjoe
Außerdem müssen Sie den SSH-Server nicht auf Ihrem MacOS starten.
Tony Baguette
5

Vorausgesetzt, Sie haben einen UPnP-Router, ist es einfach, Ports mithilfe von PortMap zu konfigurieren

Es hat eine sehr einfache Benutzeroberfläche.

Alt-Text

Alexis Hirst
quelle
Warum ist dein Bild so winzig?
Barlop
3

Nun, ich kann Ihnen sagen, wie ich so etwas auf meinem Mac OS X 10.5.8-System mache.

Ich habe mit einer Antwort zu NAT begonnen, aber ich glaube, Sie möchten stattdessen ein TCP-Weiterleitungsprogramm (Sie erwähnen "Proxy" und Portweiterleitung).

Es gibt einige Möglichkeiten, dies zu tun, abhängig von Ihren Bedürfnissen, kann sogar "SSH" in Aktion gesetzt werden, obwohl mein bevorzugter kurzer und süßer Weg ein Perl-Skript ist, das tcpforward ist .

Wenn Sie HTTP-Manipulationen benötigen (möglicherweise müssen Sie HTTP-Weiterleitungen optimieren, damit beim Eintreffen einer Anfrage nach einer URL ohne abschließendes '/' keine Weiterleitung an den realen, nicht erreichbaren Server erfolgt), kann Apache dies tun Job eines Reverse-Proxy. Sie sollten sich mod_proxy und insbesondere ProxyPass und ProxyPassReverse ansehen. Sie nicht ermöglichen Proxyrequests, die für Vorwärts Proxying ist. Hierzu sollte es möglich sein, den Apache von Mac OS zu verwenden, sofern dieser ausgeführt wird. Es kommt mit mod_proxy und /etc/httpd/httpd.conf ist die zu aktualisierende Konfigurationsdatei.

Selbst mit Apache müssen Sie sicherstellen, dass alle Links im Inhalt des realen Servers relativ sind. Wenn sie auf den realen Server verweisen, können Sie das Modul mod_proxy_html ausprobieren (ich habe keine Erfahrung damit, wie gut das funktioniert.)

jrg
quelle
+1 für tcpforward, Perl hört nie auf, nützlich zu sein.
Steve Kehlet
0

Ist Ihr Computer direkt mit dem Internet verbunden (IE - ohne Router)? Normalerweise führen Sie die Portweiterleitung auf dem Router durch. Wenn Sie jedoch ein Modem für die direkte Verbindung verwenden, ist iptables wahrscheinlich der beste Weg.

Dentrasi
quelle
Ich habe keine Ahnung, warum dies abgelehnt wurde, weil es die Wahrheit ist.
Hasaan Chop
4
@HasaanChop Dies wird abgelehnt, weil es nicht hilfreich ist. Wenn genau beschrieben wird, wie iptablesdie gestellte Frage ausgeführt werden soll, kann dies hilfreich sein.
Jon-Eric
Es gibt keine Iptables auf Mac OS X.
Unbenannt_1
-1

Hier ist ein guter Artikel: http://www.cyberhq.nl/article/384/port-forwarding-in-macos-x

Aber da Sie auf 80 weiterleiten, gehe ich davon aus, dass Sie möchten, dass es zu einem Webserver weitergeleitet wird, sodass ich einfach die Webserverkonfiguration ändern würde, um einen Reverse-Proxy oder ähnliches einzurichten.

Nisse Engström
quelle
6
Die Verbindung
scheint