Ich verwende
ssh [email protected] -g -L 4321:localhost:28017
, um einen Tunnel von meinem MacBook zu meinem dedizierten Server bei meinem Hosting-Anbieter herzustellen. Es funktioniert gut. Jetzt möchte ich auf mehrere Admin-Sites auf dem Remote-Server zugreifen (eine MongoDB-Statusseite, eine RabbitMQ-Seite usw., alle auf verschiedenen Ports). Alle von ihnen sind an 127.0.0.1 auf dem Remotecomputer gebunden. Wie kann ich diesen ssh-Befehl anpassen?
- Weisen Sie dem Tunnel einen Namen zu und verwenden Sie zB "my.tunnel.name" in meinem Browser
- in der Lage zu sein, den Remote-Port in meinem Browser zu definieren; Ich möchte eine Verbindung zu my.tunnel.name:port herstellen, um die verschiedenen Sites aufrufen zu können
Ist das mit ssh möglich? Ich habe die Manpages gelesen und seit zwei Tagen gegoogelt, aber es scheint nicht zu funktionieren.
--edit 2012-06-01 23: 36-- Dank der bereitgestellten Antworten und Kommentare funktioniert die Portweiterleitung jetzt mit
ssh [email protected] -D 4321
Ich kann dies in meinem Browser als Proxy einrichten und der Browser behandelt alle Anfragen an localhost: anyport so, als ob sie auf dem Remote-Server gestellt worden wären. Die Verwendung eines Namens ist jetzt nicht mehr erforderlich, da der Browser nur für Remoteserver-Sites vorgesehen ist.
Sie können einen Namen vergeben, indem Sie die Tatsache verwenden, dass Ihr Loopback-Adapter grundsätzlich auf jede Adresse im 127.0.0.0/8-Netzwerk reagiert.
Anstatt also an Port 4321 zu binden, könnten Sie an 127.1.2.3:4321 binden. Richten Sie dann einfach einen Host-Eintrag ein, der der Loopback-Adresse, der Sie so zugeordnet sind, einen Namen zuordnet
127.1.2.3
.In meiner SSH-Konfiguration auf meiner Admin-Workstation sind viele Tunnel so konfiguriert, dass sie an eine Adresse im Loopback-Bereich gebunden sind, und ich habe Einträge in meiner Host-Datei, sodass ich viele Tunnel parallel über denselben Port öffne und zwischen ihnen über unterscheide Name.
Also, wenn Sie so verbinden
Und Ihre hosts-Datei hat eine Zeile wie diese.
Dann sollten Sie in der Lage sein, von Ihrem lokalen Computer aus eine Verbindung zu my.tunnel.name:4321 herzustellen.
Wenn Sie zusätzlichen IP-Adressraum im Netzwerk haben, mit dem Ihr SSH-Client verbunden ist, können Sie Ihrer Ethernet-Schnittstelle sogar eine sekundäre Adresse zuweisen und eine Ihrer realen IPs verwenden. Richten Sie dann Einträge in Ihrem DNS ein, wenn andere Systeme dies können sollen Verwenden Sie Ihren SSH-Tunnel.
Mit der Option -L
-L [bind_address:]port:host:hostport
können Sie eine gültige IP-Adresse auf dem lokalen System zum Binden verwenden. Sie müssen die-g
Option auch einschließen, wenn andere Hosts eine Verbindung über Ihren SSH-Tunnel herstellen sollen.quelle
ifconfig l0 alias 127.0.1.1 255.255.255.0
ansonsten toller tipp!-N
am Ende des Befehls aus. Auf diese Weise ist es einfacher, sich daran zu erinnern, dass es sich um einen Tunnel handelt, nicht nur um eine SSH-Verbindung.127.1.2.3
musste ich dies auf meinem MacBook tun:,ifconfig lo0 alias 127.1.2.3 255.255.255.0
das127.1.2.3
als neue Adresse auf der Benutzeroberfläche hinzufügtlo0
.Erstellen Sie mit Ihrem SSH-Tunnel eine dynamische Portweiterleitung auf Anwendungsebene (im Grunde genommen Socks-Proxy), und leiten Sie Ihre Anwendungen über diesen Tunnel. Gehen Sie wie folgt vor, um einen dynamischen Tunnel zu erstellen:
Konfigurieren Sie dann Ihre Anwendung, um diese als SOCKSv5-Proxy zu verwenden.
Wenn Sie möchten, dass ein Hostname an diesen gebunden ist, fügen Sie einfach
/etc/hosts
Einträge hinzu, die auf 127.0.0.1 verweisen. Besser ist es jedoch, 127.0.0.2 für den ersten Tunnel und einen Hosteintrag für diesen einen, 127.0.0.3 für den zweiten Tunnel hinzuzufügen tunnel und ein separater Hosteintrag für diesen usw. Wenn Sie Aliase für 127.0.0.1 hinzufügen, wird dieser Alias manchmal in anderen Befehlssuchen von localhost angezeigt, was verwirrend sein kann!Um dies in einem Webbrowser reibungslos zu verwenden, können Sie ein Proxy-Addon verwenden. Als Beispiel bevorzuge ich den Chrome-Webbrowser und für dieses verwende ich ein Addon namens
Proxy Switchy!
. Sie können es hier herunterladen:https://chrome.google.com/webstore/detail/caehdcpeofiiigpdhbabniblemipncjj
In der Konfiguration dieses Addons kann ich mehrere separate Proxys definieren und dann reguläre Ausdrücke von Hosts / URLs an die Verwendung bestimmter Proxys binden. Auf diese Weise werde ich immer ordnungsgemäß durch die richtigen Tunnel umgeleitet, ohne manuell wechseln zu müssen. Bitte lassen Sie mich wissen, wenn Sie weitere Erläuterungen zu einem der Schritte benötigen!
quelle