Wie benutze ich Socks Proxy für Befehle im Terminal wie youtube-dl?


37

Ich verbinde mich mit einem entfernten SSH-Server, indem ich diesen Befehl ausführe:

ssh -D 12345 bob@myserver.com

Dadurch wird ein Socken-Proxy erstellt, den ich mit Firefox verwenden kann, um die Zensur in meinem Land zu umgehen. Ich kann es jedoch nicht in der Befehlszeile ausnutzen.

Nehmen wir an, mein Land blockiert den Zugang zu YouTube. Wie kann ich die ssh-Verbindung verwenden, um einen Befehl wie den folgenden auszuführen:

youtube-dl "youtube.com/watch?v=3XjwiV-6_CA"

Ohne von der Regierung blockiert zu werden? Wie kann ich einen Socks-Proxy für alle Terminalbefehle einrichten?


1
Ich habe eine vorübergehende Lösung gefunden. Ich habe Tsocks benutzt. Einmal installiert, wenn die SSH-Verbindung hergestellt ist, starte ich die gewünschte Anwendung mit tsocks wie folgt: tsocks gnome-terminal
user1098135

1
tsocks youtube-dl ...- tsocks ist eine clevere Anwendung, die allgemein in Repositorys verfügbar ist und mit LD_PRELOADder Anwendungen gezwungen werden, ihren Datenverkehr über eine bestimmte SOCKS-Verbindung weiterzuleiten (angeben, in welcher Richtung ~/.tsocks.conf).
Zaz

Antworten:


17

Youtube-dl unterstützt keinen SOCKS-Proxy. Es gibt eine Feature-Anfrage mit Links zu einigen Arbeitsvorschlägen.

Youtube-dl unterstützt HTTP-Proxys von Anfang an. Um von dieser Unterstützung zu profitieren, müssen Sie einen Proxy ausführen myserver.com. So ziemlich jeder Lightweight-Proxy, zum Beispiel tinyproxy . Der Proxy muss nur lokale Verbindungen abhören ( Listen 127.0.0.1in tinyproxy.conf). Wenn der HTTP-Proxy Port 8035 ( Port 8035) überwacht , führen Sie den folgenden Befehl ssh aus:

ssh -L 8035:localhost:8035 bob@myserver.com

und setze die Umgebungsvariablen http_proxyund https_proxy:

export http_proxy=http://localhost:8035/ https_proxy=http://localhost:8035/
youtube-dl youtube.com/watch?V=3XjwiV-6_CA

Wenn sie SSH verwenden wollen, warum brauchen sie dann tinyproxy oder umgekehrt? Ich benutze SSH-Tunnel und es funktioniert gut.
Umair A.

@Neutralizer SSH überträgt nur Relays vom lokalen Computer zum Proxy-Computer. Etwas auf dem Proxy-Rechner muss die HTTP-Anfrage dekodieren und die IP-Adresse des Server-Rechners herausfinden. Wenn der Client SOCKS unterstützt, kann SSH den Job erledigen, aber youtube-dl unterstützt SOCKS nicht. Wenn Sie den Proxy für einen bestimmten Server verwenden, können Sie möglicherweise nur SSH verwenden und ihn anweisen, direkt an diesen Server weiterzuleiten. Dies funktioniert jedoch nur, wenn alle Anforderungen an dieselbe IP-Adresse und denselben Port weitergeleitet werden müssen.
Gilles 'SO- hör auf böse zu sein'

Zum Debuggen ist es schön, den Befehl ssh mit auszuführen -vund die interaktive Sitzung zu überspringen, die man auch hinzufügen kann -N.
Fikovnik


48
ssh -D 8080 name@myserver.com
export http_proxy=socks5://127.0.0.1:8080 https_proxy=socks5://127.0.0.1:8080
youtube-dl "youtube.com/watch?V=3XjwiV-6_CA"

Einfach und funktioniert bei mir.
Kevin Tong

5
hinzufügen -N, um die interaktive
SSH-

5

youtube-dl funktioniert gut mit Proxy-Ketten auf Ubuntu. Stellen Sie sicher, dass Sie über die Befehlszeile tunneln.

ssh -D 8081 ubuntu@yourSSHserver

Als nächstes installiere Proxy-Ketten auf deinem Localhost, nicht den SSH-Server, mit dem du verbunden bist.

sudo apt-get install proxychains

Bearbeiten Sie die Konfigurationsdatei Ihrer Proxy-Kette

sudo nano /etc/proxychains.conf

Bearbeiten Sie die Portnummer in der letzten Zeile

socks4  127.0.0.1 8081

Hinweis: Ich verwende Proxy-Ketten für Port 8081

Füge dann einfach Proxy-Ketten am Anfang des Befehls hinzu, wenn du youtube-dl verwendest

proxychains ./youtube-dl http://thesite.com/yourvideo.hmtl 

Proxychains ist ein cooles Tool
2 8.

2

Sie können Delegieren verwenden ,

Es ist ein SOCKS-Server und / oder -Client, der als HTTP-Proxy empfangsbereit ist.

Laden Sie die neueste Version von delegate herunter und extrahieren Sie sie.

Führen Sie zuerst Ihren Befehl ssh aus:

ssh -D 9150 me@myserver.com

Führen Sie dann eine binäre Delegatdatei mit diesen Optionen aus, um einen HTTP-Proxy als SOCKS-Client zu haben:

$ ./dg9_9_13 -P8080 SERVER=http SOCKS=127.0.0.1:9150 ADMIN="local@localhost.com"

Führen Sie dann youtube-dlmit der --proxyOption eine Verbindung zum empfangenen HTTP-Proxy aus:

$ youtube-dl -v --proxy "http://127.0.0.1:8080" https://www.youtube.com/watch?v=VID

1

Seit der youtube-dlVersion 2016.05.10 können Sie --proxySOCKS-Proxy angeben, z

youtube-dl --proxy "socks5://127.0.0.1/" -v 9bZkp7q19f0

--proxy URLVerwenden Sie den angegebenen HTTP / HTTPS / SOCKS-Proxy. Geben Sie ein geeignetes Schema an, um den experimentellen SOCKS-Proxy zu aktivieren. Zum Beispiel socks5://127.0.0.1:1080/.


0

Wenn Youtube-Videos das sind, wonach Sie suchen cclive, sollten Sie es versuchen , da dies anscheinend Proxys unterstützt. Und es können auch andere Streaming-Sites verwendet werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.