
Ich habe ein Bash-Skript, mit dem ich meine Proxy-Einstellungen automatisch konfiguriere. Ich habe in der .bash_aliases
Datei einige Aliase erstellt. Jetzt gibt es einen Befehl, mit dem ich mich per SSH mit meinem Remote-Server verbinde, eine dynamische Portweiterleitung durchführe und im Wesentlichen einen Socks-Proxy erstelle. Also muss ich meine Proxy-Einstellungen entsprechend konfigurieren.
Der Befehl sieht folgendermaßen aus:
proxy off && ssh -D <port> <username>@<hostaddress>
Ich habe dem obigen Befehl einen Alias zugewiesen und wenn ich den Alias in das Terminal eingebe, bin ich erfolgreich mit meinem Remote-Server verbunden. Nachdem dies jedoch erledigt ist, muss ich einen weiteren Befehl in einem neuen Terminalfenster ausführen, um meinen neu erstellten Socks-Proxy zu konfigurieren. Im Grunde muss ich nur Folgendes ausführen:
proxy socks #It configures my laptop to use the socks proxy
Ich kann es nicht im selben Terminalfenster und nur &&
nach dem SSH-Befehl tun, da das bedeuten würde, dass ich versuche, den Befehl auf dem Remote-Server auszuführen. Ich möchte diesen Befehl auf meinem Laptop ausführen.
Gibt es eine Möglichkeit, den zweiten Befehl in einem neuen Terminalfenster in einer einzigen Zeile auszuführen, so wie wir es mit Pipes oder verschiedenen Befehlen tun? Es ist wirklich ineffizient, jedes Mal, wenn ich mich per SSH mit meinem Remote-Server in Verbindung setze, eine neue Registerkarte im Terminal zu öffnen, nur damit ich einen einzigen Befehl zum Konfigurieren meines Proxys eingeben und diese Registerkarte dann schließen kann, weil ich sie nicht mehr brauche.
Antwort1
Versuchen Sie stattdessen Folgendes:
port=1234
remote=username@host
proxy off && ssh -fND $port $remote && proxy socks
Das -f
Flag weist an ssh
, in den Hintergrund zu wechseln, und das Flag -N
weist an, keine Befehle auszuführen, sondern nur Ports weiterzuleiten. Auf diese Weise können Sie in Ihrem aktuellen Terminal weiterarbeiten.