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 [email protected]

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?

utilisateur1098135
la source
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 [email protected]

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
Gilles, arrête de faire le mal
la source
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 [email protected]
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"
amidevous
la source
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 
Saeed AlFalasi
la source
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 [email protected]

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="[email protected]"

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
Omid Raha
la source
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/.

Kenorb
la source
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.

Peterph
la source