Verwenden Sie einen Server als Remote-SOCKS-Proxy mit OpenSSH

1

Ich möchte einen Server als SOCKS-Proxy für das Surfen von meinem Laptop aus verwenden.
Laut OpenSSHs Manpage können Sie das mit dem opcion machen -D

-D Port
Gibt eine lokale dynamische Portweiterleitung auf Anwendungsebene an. Dies funktioniert durch Zuweisen eines Sockets zum Abhören des Ports auf der lokalen Seite. Wenn eine Verbindung zu diesem Port hergestellt wird, wird die Verbindung über den sicheren Kanal weitergeleitet, und das Anwendungsprotokoll wird verwendet, um zu bestimmen, wo von der Remote aus eine Verbindung hergestellt werden soll Maschine. Derzeit werden die Protokolle SOCKS4 und SOCKS5 unterstützt, und ssh wird als SOCKS-Server fungieren. Nur Root kann privilegierte Ports weiterleiten. Dynamische Portweiterleitungen können auch in der Konfigurationsdatei angegeben werden.

Also habe ich auf meinem Server (IP 192.168.0.5) den folgenden Befehl eingegeben:
ssh localhost -D3333
(eine SSH-Verbindung zu sich selbst)

Das sollte dafür sorgen, dass Port 3333 abgehört wird.
Dann habe ich meinen Browser so konfiguriert, dass er den SOCKS-Proxy 192.168.0.5:3333 verwendet

Es scheint jedoch nicht zu funktionieren, der Browser meldet, dass die Verbindung nicht hergestellt werden konnte.

Was mache ich falsch?
Kann das mit OpenSSH gemacht werden?


MEHR INFO:

Die Ausgabe von netstat -aon sagt:

tcp        0      0 ::1:3333                    :::*                        LISTEN      off (0.00/0/0)
tcp        0      0 :::587                      :::*                        LISTEN      off (0.00/0/0)
tcp        0      0 :::465                      :::*                        LISTEN      off (0.00/0/0)
tcp        0      0 :::21                       :::*                        LISTEN      off (0.00/0/0)
tcp        0      0 :::22                       :::*                        LISTEN      off (0.00/0/0)
tcp        0      0 :::25                       :::*                        LISTEN      off (0.00/0/0)
GetFree
quelle
Haben Sie den SSH-Server auf 192.16.0.5 Port 22 ausgeführt? auch um ein reverse socken zu machen .. so dass man die socken am remote ende bekommt ist es ein bisschen umständlich superuser.com/questions/370930/ssh-reverse-socks-tunnel Aber zumindest die lokalen Socken zum Laufen bringen, die ssh-D, da Sie das gerade versuchen und nicht verwalten, und das ist einfacher als die kompliziertere Sache.
barlop
Ja, der SSH-Dienst läuft natürlich, ich verbinde ihn von meinem Laptop aus mit Putty.
GetFree
also kannst du vermutlich netstat -aon machen und eine verbindung sehen, sobald du dich mit putty verbindest und auf port 3333 lauschst? Wie wäre es mit chrome --proxy-server="socks5://192.168.0.5:3333" hinzugefügt - eine andere ist zu versuchen curl --socks5 192.168.0.5:3333 http://blah (curlis auf gnuwin32 oder cygwin) Auch ein Versuch mit 127.0.0.1 lohnt sich
barlop
Ich habe die Ausgabe von hinzugefügt netstat. Anscheinend ist das Problem, dass es nur localhost zuhört und nicht jeder ??
GetFree
Ich erkenne diese Art von Ausgabe nicht wirklich. Ich bin an IPv4 und Windows gewöhnt, aber wenn ich nur localhost verbinden lasse, könnten Sie es tun *:3333 also nehme ich an ssh -D *:3333 Dann sollte es mehr als nur einem lokalen Host offen stehen, um eine Verbindung zu ihm herzustellen. (Wenn das Ihr Problem war, dann könnte das helfen.) Aber warum nicht einfach versuchen, eine Verbindung von localhost zu localhost herzustellen?
barlop

Antworten:

2

Standardmäßig überwacht "ssh -D 3333" nur localhost, um zu verhindern, dass andere Benutzer in Ihrem Netzwerk eine Verbindung über Ihren Proxy herstellen.

Wenn sich Ihr Browser auf demselben Computer befindet, sollten Sie 127.0.0.1:3333 als Proxyserver verwenden.

Andernfalls können Sie die dynamische Weiterleitung von ssh für andere Hosts zugänglich machen, indem Sie Folgendes verwenden:

ssh -D 0.0.0.0:3333 localhost
djm
quelle