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
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
Antworten:
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
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
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.)
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.
iptables
die gestellte Frage ausgeführt werden soll, kann dies hilfreich sein.
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.