Comment utiliser le proxy socks pour les commandes dans Terminal telles que youtube-dl?


38

Je me connecte à un serveur ssh distant en exécutant cette commande:

ssh -D 12345 bob@myserver.com

Cela crée un proxy chaussettes que je peux utiliser avec Firefox pour contourner la censure dans mon pays. Cependant, je ne peux pas en tirer parti dans la ligne de commande.

Disons que mon pays bloque l'accès à youtube. Comment utiliser la connexion ssh pour exécuter une commande telle que:

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

Sans être bloqué par le gouvernement? Comment puis-je définir un proxy chaussettes pour toutes les commandes de terminal?


1
J'ai trouvé une solution temporaire. J'ai utilisé des tsocks. Une fois installé, une fois la connexion ssh établie, je lance l’application que je veux avec tsocks comme suit: tsocks gnome-terminal
user1098135 le

1
tsocks youtube-dl ...- tsocks est une application intelligente, couramment disponible dans les référentiels, qui LD_PRELOADoblige les applications à acheminer leur trafic via une connexion SOCKS désignée (spécifiez laquelle dans ~/.tsocks.conf).
Zaz

Réponses:


17

Youtube-dl ne prend pas en charge un proxy SOCKS. Il y a une demande de fonctionnalité pour cela, avec des liens vers quelques propositions de travail.

Youtube-dl prend en charge les proxys HTTP dès la livraison. Pour bénéficier de cette assistance, vous devez exécuter un proxy sur myserver.com. Pratiquement n'importe quel proxy léger fera l'affaire, par exemple tinyproxy . Le proxy n'a besoin que d'écouter les connexions locales ( Listen 127.0.0.1en tinyproxy.conf). Si le proxy HTTP est à l'écoute sur le port 8035 ( Port 8035), exécutez la commande ssh suivante:

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

et définir les variables d'environnement http_proxyet https_proxy:

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

s'ils veulent utiliser SSH, pourquoi ont-ils besoin de tinyproxy ou vice versa? J'utilise le tunnel SSH et cela fonctionne bien.
Umair A.

@ Neutralizer SSH ne relaie que de la machine locale à la machine proxy. Quelque chose sur la machine proxy doit décoder la requête HTTP et déterminer l'adresse IP de la machine serveur. Si le client prend en charge SOCKS, SSH peut effectuer le travail, mais youtube-dl ne prend pas en charge SOCKS. Si vous utilisez le proxy pour un serveur spécifique, vous pouvez utiliser SSH seul et lui indiquer de le transférer directement vers ce serveur, mais cela ne fonctionne que si toutes les demandes doivent être transférées vers la même adresse IP et le même port.
Gilles 'SO- arrête d'être méchant'

Pour le débogage, il est agréable d’exécuter la commande ssh avec -vet de sauter la session interactive que l’on peut également ajouter -N.
fikovnik


49
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"

simple et fonctionne pour moi.
Kevin Tong

5
ajouter -Npour ignorer la session interactive ssh
fikovnik

5

youtube-dl fonctionne bien avec les chaînes de proxy sur Ubuntu. Assurez-vous que votre tunnelisation se fait via la ligne de commande.

ssh -D 8081 ubuntu@yourSSHserver

Ensuite, installez proxychains sur votre hôte local et non sur le serveur ssh auquel vous êtes connecté.

sudo apt-get install proxychains

éditez votre fichier de configuration proxychains

sudo nano /etc/proxychains.conf

éditer le numéro de port sur la dernière ligne

socks4  127.0.0.1 8081

Remarque: j'utilise des chaînes proxy sur le port 8081.

il suffit ensuite d'ajouter des chaînes de proxy au début de la commande lors de l'utilisation de youtube-dl

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

proxychains est un outil génial
2 8

2

Vous pouvez utiliser Delegate ,

C'est un serveur et / ou un client SOCKS pouvant écouter en tant que proxy HTTP.

Téléchargez la dernière version de delegate et extrayez-la.

Commencez par exécuter votre commande ssh:

ssh -D 9150 me@myserver.com

Ensuite, exécutez le fichier de délégué binaire avec ces options pour avoir un proxy HTTP en tant que client SOCKS:

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

Ensuite, exécutez youtube-dlavec --proxyoption pour vous connecter au proxy HTTP écouté:

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

1

Depuis la youtube-dlversion 2016.05.10 , vous pouvez utiliser --proxypour spécifier un proxy SOCKS, par exemple:

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

--proxy URLUtilisez le proxy HTTP / HTTPS / SOCKS spécifié. Pour activer le proxy SOCKS expérimental, spécifiez un schéma approprié. Par exemple socks5://127.0.0.1:1080/.


0

Si vous recherchez des vidéos Youtube, vous pouvez essayer cclive, ce qui semble prendre en charge les mandataires. Et il peut aussi faire d’autres sites de streaming.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.