¿Cómo usar calcetines proxy para comandos en Terminal como youtube-dl?


38

Me conecto a un servidor ssh remoto ejecutando este comando:

ssh -D 12345 bob@myserver.com

Esto crea un proxy de calcetines que puedo usar con Firefox para evitar la censura en mi país. Sin embargo, no puedo aprovecharlo en la línea de comando.

Digamos que mi país bloquea el acceso a YouTube. ¿Cómo puedo usar la conexión ssh para ejecutar un comando como:

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

¿Sin ser bloqueado por el gobierno? ¿Cómo puedo configurar un proxy de calcetines para todos los comandos de terminal?


1
Encontré una solución temporal. He usado tsocks. Una vez instalado, cuando se establece la conexión ssh, inicio la aplicación que quiero con tsocks de la siguiente manera: tsocks gnome-terminal
user1098135

1
tsocks youtube-dl ...- tsocks es una aplicación inteligente, comúnmente disponible en repositorios, que utiliza LD_PRELOADpara forzar a las aplicaciones a enrutar su tráfico a través de una conexión SOCKS designada (especificar en qué ~/.tsocks.conf).
Zaz

Respuestas:


17

Youtube-dl no es compatible con un proxy SOCKS. Hay una solicitud de función para ello, con enlaces a un par de propuestas de trabajo.

Youtube-dl admite servidores proxy HTTP listos para usar. Para beneficiarse de este soporte, deberá ejecutar un proxy enmyserver.com . Prácticamente cualquier proxy ligero lo hará, por ejemplo, tinyproxy . El proxy solo necesita escuchar conexiones locales ( Listen 127.0.0.1en tinyproxy.conf). Si el proxy HTTP está escuchando en el puerto 8035 ( Port 8035), ejecute el siguiente comando ssh:

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

y establecer las variables de entorno http_proxy y https_proxy:

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

si van a usar SSH, ¿por qué necesitan tinyproxy o viceversa? Yo uso el túnel SSH y funciona bien.
Umair A.

@Neutralizer SSH solo retransmite desde la máquina local a la máquina proxy. Algo en la máquina proxy necesita decodificar la solicitud HTTP y determinar la dirección IP de la máquina del servidor. Si el cliente admite SOCKS, entonces SSH puede hacer el trabajo, pero youtube-dl no es compatible con SOCKS. Si está utilizando el proxy para un servidor específico, puede usar SSH solo y decirle que lo reenvíe directamente a ese servidor, pero eso solo funciona si todas las solicitudes deben enviarse a la misma dirección IP y puerto.
Gilles 'SO- deja de ser malvado'

Para la depuración, es bueno ejecutar el comando ssh con -vy omitir la sesión interactiva que también se puede agregar -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 y funciona para mi.
Kevin Tong

55
agregar -Npara omitir la sesión ssh interactiva
fikovnik

5

youtube-dl funciona bien con proxychains en ubuntu. Asegúrese de que su túnel a través de la línea de comando.

ssh -D 8081 ubuntu@yourSSHserver

a continuación, instale proxychains en su host local, no en el servidor ssh al que está conectado.

sudo apt-get install proxychains

edite su archivo de configuración de proxychains

sudo nano /etc/proxychains.conf

editar el número de puerto en la última línea

socks4  127.0.0.1 8081

Nota: estoy usando proxychains en el puerto 8081

luego solo agregue proxychains al comienzo del comando cuando use youtube-dl

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

proxychains es una herramienta genial
2 8

2

Puedes usar Delegado ,

Es un servidor y / o cliente SOCKS que puede escuchar como proxy HTTP.

Descargar la última versión del delegado y extráigala.

Primero ejecute su comando ssh:

ssh -D 9150 me@myserver.com

Luego, ejecute el archivo delegado binario con estas opciones para tener un proxy HTTP como cliente SOCKS:

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

Luego, ejecute youtube-dlcon la --proxyopción de conectarse al proxy HTTP escuchado:

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

1

Desde la youtube-dlversión 2016.05.10 , puede usar --proxypara especificar el proxy SOCKS, por ejemplo

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

--proxy URLUtilice el proxy HTTP / HTTPS / SOCKS especificado. Para habilitar el proxy SOCKS experimental, especifique un esquema adecuado. Por ejemplo socks5://127.0.0.1:1080/.


0

Si los videos de Youtube son lo que busca, es posible que desee probar cclive, lo que parece ser compatible con servidores proxy. Y también puede hacer otros sitios de transmisión.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.