我正在 Mac OS X 上安装 macports,并使用 rsync 协议从存储库中获取二进制文件。不幸的是,似乎无法通过我的机器直接连接访问存储库。因此,我运行了一个本地代理程序(支持 http、https、ftp 和 socks),现在试图找出如何通过我的代理重定向 rsync 连接。有谁知道这个吗?谢谢,
答案1
man rsync
是你的朋友。
您可以通过将环境变量 RSYNC_PROXY 设置为指向您的 Web 代理的主机名:端口对来通过 Web 代理建立连接。请注意,您的 Web 代理的配置必须支持与端口 873 的代理连接。
因此假设您的代理在端口 3128 上,RSYNC_PROXY=localhost:3128
应该可以执行您需要的操作。
答案2
如果你使用乌贼对于您的 Web 代理,请将两个中心行添加到 squid.conf(大多数 Unix 系统上为 /etc/squid/squid.conf,或 MacPorts 中的 /opt/local/etc/squid/squid.conf):
acl SSL_ports port 443
acl SSL_ports port 873 # ADD THIS FOR RSYNC ACCESS
acl Safe_ports port 873 # ADD THIS FOR RSYNC ACCESS
acl CONNECT method CONNECT
然后,从 shell(如果此方法有效,您可以考虑永久设置它)输入:
export RSYNC_PROXY=proxyhost:proxyport
如果您的代理需要密码:
export RSYNC_PROXY=username:password@proxyhost:proxyport
如果上述方法无法设置,您也可以尝试此方法。它要求您通过以下方式访问远程控制到可以充当代理的服务器。
export RSYNC_CONNECT_PROG='ssh tunnelhost nc %H 873'
ssh 服务器必须安装“netcat”,几乎所有服务器都安装有。如果没有,可以使用类似下面的命令进行安装:
Debian / Ubuntu:
apt-get install netcat
centos/红帽
yum install nc