MXterm Pro

Portweiterleitung in MXterm Pro: lokale -L Regeln und was fehlt

Henry AGI
5 Min. Lesezeit
Terminal on the SSH tab port forwarding panel: a local forward to port 5432, then psql, and a note that closing the panel keeps the forward

SSH Tunnel GUI Mac: MXterm Pro hat eine grafische SSH-Portweiterleitung, aber eine knapp gehaltene: ein Panel an einem offenen SSH-Tab, das lokale (-L) Weiterleitungen zu 127.0.0.1 auf dem Server hinzufügt und beendet. Es gibt keine Option für Remote- (-R) oder SOCKS-Weiterleitung, und Regeln werden nicht gespeichert. Das Panel passt für die Weiterleitung zu einer Datenbank oder einer Admin-Oberfläche, nicht für einen Tunnel, den Sie dauerhaft behalten. Diese Seite behandelt diese Grenzen und erklärt SSH-Tunneling nicht von Grund auf.

Was macht das Portweiterleitungs-Panel in MXterm Pro?

Das Panel von MXterm Pro fügt lokale Portweiterleitungen hinzu und bricht sie ab, und zwar auf der SSH-Verbindung, die Ihr Tab bereits geöffnet hat. Es baut keine zweite Verbindung auf und verlangt keine erneute Anmeldung. Jede Regel geht als Steuerbefehl an den laufenden ssh-Prozess, die Weiterleitung nutzt also die Sitzung, in der Sie ohnehin tippen.

Sie erreichen es über das SFTP-Panel, das neben einem SSH-Tab andockt, dasselbe Remote-Dateipanel, mit dem Sie Dateien durchsuchen und bearbeiten. Die Schaltfläche in seiner Kopfzeile hat den Tooltip Verwaltung von SSH-Portweiterleitung & Tunneln und öffnet ein Fenster mit dem Titel SSH-Portweiterleitung & Tunnel. Ein einfaches Shell-Pane hat kein SFTP-Panel und damit auch keine Schaltfläche für Weiterleitungen.

Jeder SSH-Tab startet das System-ssh mit ControlMaster=auto und einem gemeinsamen ControlPath. Starten schickt ssh -O forward -L <spec> an diesen Master. Stoppen schickt ssh -O cancel -L <spec>.

Die Fußnote des Panels lautet „Der gesamte weitergeleitete Datenstrom wird von SSH verschlüsselt“. Das stimmt im üblichen Sinn: Es ist dieselbe OpenSSH-Weiterleitung wie bei ssh -L, mit derselben Verschlüsselung, kein anderer Transport.

Wie fügen Sie eine lokale Weiterleitung hinzu, und welcher Befehl entsteht daraus?

In MXterm Pro werden drei Felder, Name, Lokaler Port und Remote-Port, zu einer -L Weiterleitung auf der offenen Verbindung, etwa ssh -O forward -L 127.0.0.1:5432:127.0.0.1:5432. Es gibt kein Feld für den Ziel-Host und keinen Schalter für die Richtung. Die Schritte setzen voraus, dass der Host schon im SSH-Manager gespeichert ist (siehe die Doku zu SSH und SFTP).

1. Öffnen Sie den Host als SSH-Tab. Shift+Cmd+H öffnet den SSH-Manager, und Verbinden öffnet einen Tab, der das System-ssh ausführt. Melden Sie sich wie gewohnt im Terminal an. Diese Anmeldung ist die Verbindung, die die Weiterleitung nutzt.

2. Klicken Sie in der Kopfzeile des SFTP-Panels auf die Schaltfläche für Weiterleitungen. Tragen Sie unter Neue Portweiterleitung hinzufügen einen Namen ein (der Platzhalter schlägt Postgres 5432 vor), dazu einen lokalen und einen Remote-Port, und drücken Sie Regel hinzufügen. Ports müssen zwischen 1 und 65535 liegen. Ein Port außerhalb dieses Bereichs wird mit einem Fehler abgelehnt, bevor ssh ihn überhaupt sieht.

3. Drücken Sie bei der Regel auf Starten. Die Anzeige wechselt von GESTOPPT auf LÄUFT erst, nachdem ssh die Weiterleitung akzeptiert hat.

Lehnt ssh ab, erscheint dessen eigene Fehlermeldung in Rot über der Liste, und die Anzeige bleibt auf GESTOPPT. Stoppen bricht die Weiterleitung ab. Beim Löschen einer laufenden Regel wird derselbe Abbruch gesendet. Schlägt er fehl, verschwindet die Zeile trotzdem, und es wird kein Fehler angezeigt.

Bei Lokaler Port 5432 und Remote-Port 5432 sendet die App ssh -O forward -L 127.0.0.1:5432:127.0.0.1:5432 an die Verbindung des Tabs, adressiert als <user>@<host>. Richten Sie psql oder Ihren Datenbank-Client auf 127.0.0.1:5432 auf dem Mac, und der Datenverkehr kommt an Port 5432 auf dem Server heraus.

Die allgemeine Form ist 127.0.0.1:<local>:127.0.0.1:<remote>.

Passende AnleitungSSH Server verwalten auf dem Mac, auch bei mehr als 50 Hosts

Wohin kann eine Weiterleitung zeigen? Nur auf localhost des Servers

Jede Regel, die das Panel von MXterm Pro anlegt, zielt auf 127.0.0.1 aus Sicht des SSH-Servers. Das deckt Postgres, Redis oder eine Admin-Oberfläche ab, die auf dem Server selbst laufen. Einen dritten Rechner hinter dem Server wie db.internal:5432 erreichen Sie damit nicht, denn das Formular hat kein Feld für den Ziel-Host, und der Code setzt 127.0.0.1 für Sie ein.

Die Regelzeile zeigt 127.0.0.1:<local> → <server>:<remote>, rechts steht die Adresse Ihres Servers. Lesen Sie das als „Port <remote> auf dem Server selbst“. Die Weiterleitung endet weiterhin an der eigenen Loopback-Adresse des Servers, nicht an einer anderen Schnittstelle.

Auch das Ende auf dem Mac ist fest. Die Angabe bindet den lokalen Port ausdrücklich an 127.0.0.1, daher kann eine Zeile GatewayPorts yes in Ihrer ~/.ssh/config einen weitergeleiteten Datenbank-Port nicht in Ihrem Netzwerk veröffentlichen. Nur Programme auf diesem Mac können sich verbinden.

Für einen dritten Host tippen Sie die Weiterleitung selbst in einem normalen Shell-Pane: ssh -L <local>:db.internal:5432 <user>@<bastion>. Das ist reines OpenSSH in einem echten Terminal.

Das Schließen des Panels stoppt keine Weiterleitung

Das Schließen des Panels von MXterm Pro bricht eine laufende Weiterleitung nicht ab. Die Weiterleitung gehört zur SSH-Verbindung hinter dem Tab, nicht zur Liste des Panels. Das Panel ist nur eingebunden, solange es geöffnet ist, seine Schließen-Schaltfläche schließt nur das Panel, und es gibt keinen Aufräumschritt, der -O cancel sendet. Nur Stoppen und die Löschen-Schaltfläche brechen eine einzelne Weiterleitung ab.

Wird die ganze gemeinsame Verbindung geschlossen, enden auch alle Weiterleitungen darauf. Das bewirkt die Schaltfläche Verbindung zurücksetzen im Dateipanel (sichtbar, wenn ein Server eine Anmeldung ablehnt oder eine Passwortänderung erzwingt), ebenso das Bearbeiten der Verbindungseinstellungen eines Hosts oder das Löschen und erneute Anlegen des Hosts im SSH-Manager.

Schließen Sie das Panel, während eine Regel LÄUFT, und öffnen es erneut, ist die Liste leer, während der Port weiterhin lauschen kann.

Wie lange eine laufende Weiterleitung lauscht, entscheidet OpenSSH, nicht die App. -O forward und -O cancel sind Befehle an den Multiplexing-Master. Laut Man-Page von ssh_config hält ControlPersist diesen Master im Hintergrund, nachdem die letzte Sitzung geschlossen wurde. Er beendet den Master, sobald dieser für die eingestellte Zeit ohne Client-Verbindungen untätig war.

Jeder SSH-Tab wird hier mit ControlPersist=10m gestartet, das sind 10 Minuten.

Weil der Master die Verbindung hält, kann eine so hinzugefügte Weiterleitung den Tab überleben, das Schließen des SSH-Tabs beendet sie also unter Umständen nicht sofort. Wie sich das unter Windows verhält, wurde nicht geprüft.

Ob noch eine Weiterleitung übrig ist, sehen Sie mit lsof -iTCP:<port> -sTCP:LISTEN: Der Befehl zeigt, ob noch etwas auf diesem Port lauscht.

Um sie zu beenden, brechen Sie sie auf demselben Master ab, den die App nutzt: ssh -o ControlPath=$HOME/.mxterm/sockets/%r@%h:%p -p <port> -O cancel -L 127.0.0.1:<local>:127.0.0.1:<remote> <user>@<host>. Verwenden Sie Port, Benutzer und Host genau so, wie sie im SSH-Manager gespeichert sind (der Port ist 22, sofern Sie ihn nicht geändert haben).

Ist die Verbindung weg, schlägt Starten mit der eigenen Meldung von ssh fehl, typischerweise Control socket connect(...): No such file or directory. Öffnen Sie den Host in einem SSH-Tab und drücken Sie erneut Starten. Das Panel verbindet Weiterleitungen nicht neu, und nichts in seinem Code prüft die Anzeige LÄUFT noch einmal, nachdem ssh die Weiterleitung zum ersten Mal akzeptiert hat. Wie Sie eine abgebrochene Sitzung bemerken, ist eine Keepalive-Frage, siehe die Anleitung zu SSH-Timeouts.

Was die Portweiterleitung von MXterm Pro nicht kann

Die Oberfläche von MXterm Pro bietet nur lokale (-L) Weiterleitungen: keine Option für Remote-Weiterleitungen, kein dynamischer SOCKS-Proxy, kein Feld für den Ziel-Host. Regeln werden nicht gespeichert, nach einer erneuten Verbindung kommt also nichts zurück.

Das Panel braucht außerdem einen offenen SSH-Tab. Die Schaltfläche sitzt im SFTP-Panel, das es nur neben SSH-Tabs gibt, und eine Weiterleitung braucht die Verbindung, die dieser Tab geöffnet hat. Ein lokales Shell-Pane oder ein gespeicherter Host, mit dem Sie nicht verbunden sind, hat nichts, worüber weitergeleitet werden könnte.

Unter Windows sollten Sie Tunnel als ungetestet betrachten. Der SSH-, SFTP- und Tunnel-Code von MXterm Pro hängt von der Variable HOME und von ControlMaster in OpenSSH ab, und die Dokumentation der App markiert diese Kombination unter Windows als NICHT VERIFIZIERT. Der Tunnel-Code baut seinen Socket-Pfad aus HOME. Fehlt sie, meldet Starten, dass der ssh-Master nicht gefunden wird.

Die Weiterleitung hat im Code keine Tarifgrenze: Das Panel prüft nicht auf Pro und begrenzt die Zahl der Regeln nicht. Das Free-Limit, das sie tatsächlich berührt, ist die SSH-Host-Liste, die im Free-Tarif standardmäßig 5 gespeicherte Hosts fasst.

Wann nehmen Sie das Panel, und wann tippen Sie ssh selbst?

Nehmen Sie das Panel für eine schnelle Weiterleitung zu etwas auf dem Server selbst, etwa einer Datenbank, Redis oder einer internen Webseite. Sie starten und stoppen sie, ohne die Sitzung zu verlassen. Tippen Sie ssh selbst, wenn Sie ein Ziel auf einem dritten Host, eine Reverse-Weiterleitung, einen SOCKS-Proxy oder eine Regel brauchen, die für das nächste Mal erhalten bleibt.

Panes in MXterm Pro sind echte Terminals, ein ssh-Befehl mit -L, -R oder -D in einem normalen Pane verhält sich also wie überall, wo OpenSSH läuft. Die App verwaltet, listet oder speichert diese Weiterleitungen nicht. Sie dauern normalerweise so lange wie dieser ssh-Prozess, es sei denn, Ihre eigene ~/.ssh/config schaltet ControlMaster mit ControlPersist ein.

Ein durchgespieltes Beispiel über eine SSH-Verbindung finden Sie unter Ollama neben SSH-Sitzungen betreiben.

Zum Ausprobieren öffnen Sie einen gespeicherten Host als SSH-Tab, öffnen das Weiterleitungs-Panel in der SFTP-Kopfzeile und legen eine Regel für einen Port an, den Sie bisher von Hand weiterleiten. Deckt sie Ihren Fall ab, kann das zusätzliche ssh -L-Fenster weg. Brauchen Sie mehr als eine lokale Weiterleitung zum Server selbst, tippen Sie weiter ssh.

Sehen Sie es selbst in Aktion

Multi-Pane-SSH, Command Recipes (Cmd+J) und ein Multi-Agent Control Room (früher War Room): Der Start ist kostenlos.

MXterm Pro herunterladen

Wenn Sie MXterm Pro schon haben: Lesen Sie die Einrichtungsanleitung →

Neu bei MXterm Pro? Preise ansehen →

Häufig gestellte Fragen

Was ist lokale SSH-Portweiterleitung, und kann das Panel von MXterm Pro sie?

Lokale SSH-Portweiterleitung ist die -L Option von OpenSSH: Die Man-Page von ssh beschreibt sie als Weiterleitung von Verbindungen auf dem lokalen Host an einen angegebenen Host und Port auf der Remote-Seite. Das Panel von MXterm Pro bietet das an, aber nur lokale Weiterleitungen, auf einem offenen SSH-Tab. Das Ziel ist immer 127.0.0.1 auf dem Server, 127.0.0.1:<local> auf Ihrem Mac erreicht also <remote> auf dem Server.

Unterstützt MXterm Pro Remote- (-R) oder SOCKS-Weiterleitung (-D)?

Nicht im Panel von MXterm Pro. Die Oberfläche legt nur lokale (-L) Weiterleitungen an, immer zu 127.0.0.1 auf dem Server. Sie können in einem normalen Shell-Pane trotzdem einen ssh-Befehl mit -R oder -D tippen, denn Panes sind echte Terminals. Das ist dann aber reines OpenSSH: MXterm Pro listet, speichert oder stoppt diese Weiterleitungen nicht.

Speichert MXterm Pro meine Portweiterleitungsregeln?

Nein. Die Regelliste von MXterm Pro existiert nur, solange das Panel offen ist, sie ist bei jedem Öffnen leer, und nach einer erneuten Verbindung wird nichts wiederhergestellt. Das Schließen des Panels bricht eine laufende Weiterleitung nicht ab. Prüfen Sie mit lsof, ob der Port noch belegt ist, oder brechen Sie die Weiterleitung mit ssh -O cancel ab, wenn Sie den Port wieder freigeben müssen.

Kann ich zu einer Datenbank auf einem anderen Rechner hinter meinem Server weiterleiten, etwa db.internal:5432?

Nicht aus dem Panel von MXterm Pro. Der Ziel-Host ist fest auf 127.0.0.1 aus Sicht des Servers gesetzt, erreichbar sind also nur Dienste auf dem Server selbst. Für einen Rechner dahinter tippen Sie die Weiterleitung in einem normalen Shell-Pane, zum Beispiel ssh -L <local>:db.internal:5432 <user>@<bastion>.

Warum zeigt Starten im Portweiterleitungs-Panel von MXterm Pro „No such file or directory“?

Das ist die eigene Meldung von ssh, wenn für den Host keine offene Verbindung besteht und die Weiterleitung sich an nichts anhängen kann. Öffnen Sie den Host in einem SSH-Tab, melden Sie sich an und drücken Sie erneut Starten. Das Panel zeigt den Fehlertext von ssh unverändert an, statt ihn zu verbergen, und die Anzeige bleibt auf GESTOPPT.

Können andere Computer in meinem Netzwerk einen mit MXterm Pro weitergeleiteten Port erreichen?

Nicht über das Panel von MXterm Pro. Es bindet das lokale Ende ausdrücklich an 127.0.0.1, daher können sich nur Programme auf demselben Mac verbinden, auch wenn Ihre ~/.ssh/config GatewayPorts setzt oder Sie sonst -g übergeben. Eine Weiterleitung, die Sie selbst tippen, folgt den Optionen, die Sie angeben.

Funktionieren SSH-Tunnel in MXterm Pro unter Windows?

Nicht verifiziert. Die Funktionen für SSH, SFTP und Tunnel hängen von der Variable HOME und von ControlMaster in OpenSSH ab, und die eigene Dokumentation der App markiert sie unter Windows als nicht verifiziert. Der Windows-x64-Build ist verfügbar, aber nicht signiert (Authenticode). Verlassen Sie sich dort nicht auf das Weiterleitungs-Panel, ohne es selbst zu prüfen.

KI zu MXterm Pro fragen

Öffnen Sie eine Live-Antwort in ChatGPT, Claude oder Perplexity, die auf dieser Seite basiert. Den Text schreibt der Assistent, nicht wir. Prüfen Sie daher die Quellen, die er nennt.

Gesendete FrageWas leistet das Panel für SSH-Portweiterleitung in MXterm Pro, und was kann es nicht?