如何在终端中使用socks代理执行命令,例如youtube-dl?

如何在终端中使用socks代理执行命令,例如youtube-dl?

我通过运行以下命令连接到远程 ssh 服务器:

ssh -D 12345 [email protected]

这将创建一个袜子代理,我可以将其与 Firefox 一起使用来绕过我所在国家/地区的审查制度。但是,我无法在命令行中利用它。

假设我的国家/地区阻止访问 YouTube。如何使用 ssh 连接来运行命令,例如:

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

不被政府封杀?如何为所有终端命令设置袜子代理?

答案1

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"

答案2

Youtube-dl 不支持 SOCKS 代理。有一个功能要求为此,附有几个工作提案的链接。

Youtube-dl 开箱即用地支持 HTTP 代理。要受益于此支持,您需要在 上运行代理myserver.com。例如,几乎任何轻量级代理都可以小代理。代理只需要监听本地连接(Listen 127.0.0.1in tinyproxy.conf)。如果 HTTP 代理正在侦听端口 8035 ( Port 8035),请运行以下 ssh 命令:

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

并设置环境变量http_proxyhttps_proxy

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

答案3

youtube-dl 与 ubuntu 上的代理链配合良好。确保通过命令行进行隧道传输。

ssh -D 8081 ubuntu@yourSSHserver

接下来在您的本地主机上安装 proxychains,而不是您连接的 ssh 服务器。

sudo apt-get install proxychains

编辑你的 proxychains 配置文件

sudo nano /etc/proxychains.conf

编辑最后一行的端口号

socks4  127.0.0.1 8081

注意:我在端口 8081 上使用代理链

然后在使用 youtube-dl 时将 proxychains 添加到命令的开头

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

答案4

自从youtube-dl版本2016.05.10,您可以使用--proxy指定 SOCKS 代理,例如

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

--proxy URL使用指定的 HTTP/HTTPS/SOCKS 代理。要启用实验性 SOCKS 代理,请指定适当的方案。例如socks5://127.0.0.1:1080/

相关内容