Die Frage ist einfach, aber die Antwort lautet nicht:
ssh -D 8080 user@host
oder
ssh -gCNf -D 8080 user@host
oder
wathever with -D #
Ich benötige eine Art Proxy, den ich mit http_proxy-Variablen in einem eingebetteten Gerät verwenden kann, das SOCKS nicht unterstützt.
Was sollte ich tun?
linux
ssh
proxy
socks-proxy
http-proxy
behrooz
quelle
quelle
ssh -D user@host:8080
?-D
einen Port an, über den der Tunnel geöffnet werden soll, nicht den Port, mit dem eine Verbindung hergestellt werden soll. (Auch der Verbindungsport wird aus Kompatibilitätsgründen-p port
nicht als angegeben:port
.)Antworten:
Methode 1: Verwenden Sie einen HTTP-Proxy, der die Verwendung eines SOCKS-Upstreams unterstützt, z. B. Polipo oder Privoxy.
-D
Stellen Sie zunächst wie immer einen Tunnel über SSH her und konfigurieren Sie dann den HTTP-Proxy für die Verwendung des SSH-Tunnels - Beispiel einer Polipo-Konfiguration:Zum Schluss zeigen Sie die App mit auf Polipo
http_proxy=localhost:8118
.Methode 2: Führen Sie Ihr Programm im
torsocks
Wrapper (oder im älterentsocks
) aus, der alle Verbindungen transparent überträgt. Es war für die Verwendung mit Tor gedacht, funktioniert aber mit jedem SOCKS-Server, einschließlichssh -D
.Methode 3: Stellen Sie einen HTTP - Proxy - up auf dem Server , dann verwenden ,
ssh -L
darauf zuzugreifen.quelle
Jedes
-D
Ergebnis wird zu einem SOCKS-Server. Wenn Ihr Client SOCKS nicht verarbeiten kann, vergessen Sie-D
.Sie müssen einen HTTP-Proxy auf dem Remote-Host ausführen und weiterleiten mit
-L
:quelle
Ich habe das gleiche Problem, das HTTP-Proxy über SSH verwenden möchten. Da viele Anwendungen nur HTTP-Proxy unterstützen, kann HTTP-Proxy problemlos in der Befehlszeilenumgebung verwendet werden.
Obwohl mehrere Seiten durchsucht wurden, kann ich keinen direkten (mit Polipo, Privoxy oder tsocks verketteten) Weg finden, dies zu tun ...
Nach eintägiger Arbeit habe ich eine einfache Golang-Version von HTTP-Proxy über SSH fertiggestellt. Fühlen Sie sich frei, damit zu spielen: Mallory .
Derzeit werden nur der RSA-Schlüssel (befindet sich unter $ HOME / .ssh / id_rsa) und die Kennwortautorisierung unterstützt.
host
Adresse ist die SSH - Server,port
ist ,22
wenn nicht von Ihrem Admin geändert. Die Serverseite ist nur unser alter Freund ohnesshd
Konfiguration.oder mit Benutzername
user
oder mit Benutzername
user
und Passwort1234
Nachdem eine Verbindung hergestellt wurde, wird ein HTTP-Proxy auf localhost: 1315 bereitgestellt.
quelle
Dadurch wird Port 8080 auf dem lokalen Computer geöffnet und alle Daten werden an Port 12345 auf localhost weitergeleitet, wie dies vom Remotecomputer aus zu sehen ist.
quelle
Führen Sie Privoxy auf dem Remote-Host aus und stellen Sie dann mit der folgenden
-L
Option über SSH eine Verbindung zu Privoxy her :( Manpage-Quelle )
quelle
Sie können auch Korkenzieher (GPL) verwenden
Fügen Sie Folgendes zu Ihrem hinzu
.ssh/config
quelle