Como usar o proxy socks para comandos no Terminal, como o youtube-dl?

38

Eu me conecto a um servidor ssh remoto executando este comando:

ssh -D 12345 [email protected]

Isso cria um proxy de meias que eu posso usar com o Firefox para ignorar a censura no meu país. No entanto, não posso tirar proveito disso na linha de comando.

Digamos que meu país bloqueie o acesso ao youtube. Como posso usar a conexão ssh para executar um comando como:

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

Sem ser bloqueado pelo governo? Como posso definir um proxy de meias para todos os comandos do terminal?

user1098135
fonte
1
Encontrei uma solução temporária. Eu usei tsocks. Uma vez instalado, quando a conexão ssh é estabelecida, eu iniciar o aplicativo eu quero com tsocks da seguinte forma: tsocks gnome-terminal
user1098135
1
tsocks youtube-dl ...- tsocks é um aplicativo inteligente, geralmente disponível em repositórios, que usa LD_PRELOADpara forçar aplicativos a rotear seu tráfego através de uma conexão SOCKS designada (especifique em qual ~/.tsocks.conf).
Zaz

Respostas:

17

O Youtube-dl não suporta um proxy SOCKS. Há uma solicitação de recurso para isso, com links para algumas propostas de trabalho.

O Youtube-dl suporta proxies HTTP prontos para uso. Para se beneficiar desse suporte, você precisará executar um proxy myserver.com. Praticamente qualquer proxy leve fará, por exemplo, tinyproxy . O proxy precisa apenas ouvir conexões locais ( Listen 127.0.0.1pol tinyproxy.conf). Se o proxy HTTP estiver atendendo na porta 8035 ( Port 8035), execute o seguinte comando ssh:

ssh -L 8035:localhost:8035 [email protected]

e defina as variáveis ​​de ambiente http_proxye https_proxy:

export http_proxy=http://localhost:8035/ https_proxy=http://localhost:8035/
youtube-dl youtube.com/watch?V=3XjwiV-6_CA
Gilles 'SO- parar de ser mau'
fonte
se eles vão usar SSH, por que precisam de tinyproxy ou vice-versa? Eu uso o túnel SSH e funciona bem.
Umair A.
O @Neutralizer SSH somente retransmite da máquina local para a máquina proxy. Algo na máquina proxy precisa decodificar a solicitação HTTP e descobrir o endereço IP da máquina servidor. Se o cliente suportar SOCKS, o SSH poderá fazer o trabalho, mas o youtube-dl não suportará SOCKS. Se você estiver usando o proxy para um servidor específico, poderá usar o SSH sozinho e pedir para encaminhar diretamente para esse servidor, mas isso só funcionará se todas as solicitações precisarem ser encaminhadas para o mesmo endereço IP e porta.
Gilles 'SO- stop be evil'
Para depuração, é bom executar o comando ssh com -ve pular a sessão interativa que também se pode adicionar -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"
ambíguo
fonte
simples e funciona para mim.
21415 Kevin Kevin Tong
5
adicione -Npara pular a sessão ssh interativo
fikovnik
5

O youtube-dl funciona bem com proxychains no ubuntu. Certifique-se de fazer o tunelamento via linha de comando.

ssh -D 8081 ubuntu@yourSSHserver

Em seguida, instale proxychains no host local e não no servidor ssh ao qual está conectado.

sudo apt-get install proxychains

edite seu arquivo de configuração proxychains

sudo nano /etc/proxychains.conf

edite o número da porta na última linha

socks4  127.0.0.1 8081

Nota: estou usando proxychains na porta 8081

adicione apenas proxychains ao início do comando ao usar o youtube-dl

proxychains ./youtube-dl http://thesite.com/yourvideo.hmtl 
Saeed AlFalasi
fonte
proxychains é uma ferramenta interessante
2 8
2

Você pode usar Delegate ,

É um servidor SOCKS e / ou cliente que pode ouvir como proxy HTTP.

Baixe a versão mais recente do delegado e extraia-a.

Primeiro, execute seu comando ssh:

ssh -D 9150 [email protected]

Em seguida, execute o arquivo delegado binário com estas opções para ter um proxy HTTP como um cliente SOCKS:

$ ./dg9_9_13 -P8080 SERVER=http SOCKS=127.0.0.1:9150 ADMIN="[email protected]"

Em seguida, execute youtube-dlcom a --proxyopção para conectar-se ao proxy HTTP escutado:

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

Desde a youtube-dlversão 2016.05.10 , você pode usar --proxypara especificar o proxy SOCKS, por exemplo

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

--proxy URLUse o proxy HTTP / HTTPS / SOCKS especificado. Para habilitar o proxy SOCKS experimental, especifique um esquema adequado. Por exemplo socks5://127.0.0.1:1080/.

kenorb
fonte
0

Se você procura vídeos do YouTube, pode tentar cclive, o que parece oferecer suporte a proxies. E também pode fazer outros sites de streaming.

peterph
fonte