rsync使用socks5代理的正确方法

在服务器开启了IP白名单等情况下,我们有时需要通过代理来连接服务器,而rsync自然也会遇到这个问题。某篇博客中提到使用环境变量RSYNC_PROXY来指定socks5代理,这其实是错误的,RSYNC_PROXY指定的是http代理。

然而,RSYNC_PROXY只支持rsync服务模式,而很多时候我们用rsync时都是用SSH这样的远程Shell程序来进行同步(如果服务器上没有运行rsync的后台服务,基本就是使用SSH同步方式,详细可参见这篇文章),这种情况下该如何使用代理呢?

当然是有方法的:

rsync -avuz -e 'ssh -p 22 -o "ProxyCommand=nc -x 127.0.0.1:1080 %h %p"' root@hostname:/remote_dir /local_dir

其中127.0.0.1:1080就是socks5代理地址。如果报了nc不支持-x参数的问题,说明你的netcat版本不对,需要安装netcat-openbsd

原文地址:https://www.cnblogs.com/qjfoidnh/p/14957037.html