我在以下配置下有4台服务器:
服务器1和3(分别为Web、邮件服务器):NIC1:公共网络,连接到因特网
NIC2:专用网络,服务器之间的通信。
服务器2和4 (DB和备份服务器):
NIC:专用网络,服务器之间的通信。
我试图找到一种方法,通过公共网络上连接的两台服务器中的一台,将apt (仅)的流量从服务器2和4路由到internet,这样我就不必仅仅为了apt而将这两台服务器连接到公共网络。有什么办法可以做到吗?
非常感谢。
发布于 2012-08-05 15:56:29
使用安装在服务器1或3上的代理服务器,配置为允许从专用网络服务器连接到sources.list中的站点。更重要的是,如果您使用了像squid或approx这样的缓存代理,那么您在下载服务器共有的包时将占用更少的带宽。
对于像鱿鱼这样的常规网络代理,您可以在运行apt之前设置$http_proxy环境变量,也可以编辑您的apt.conf文件(如果您正在使用Debian挤压,看起来配置在/etc/apt/apt.conf.d/中被拆分成不同的文件,添加一个新文件)并进行设置
Acquire::http::Proxy "http://user:pass@yourproxyaddress:proxyport";如果使用ftp镜像和具有ftp功能的代理,请用ftp替换http。
如果使用a,则编辑客户端的sources.list以指向您的大约服务器,而不是原始镜像,而不是在shell或apt.conf中设置代理。
如果您不想安装代理,可以使用ssh的端口转发几种方式之一:
1:改变服务器2/4's sources.list使用http://localhost:8080/作为后视镜。如果您有多个镜像主机,则需要为每个镜像主机选择不同的端口(如8081)。在服务器2/4上,在GatewayPorts中启用sshd_config,然后使用
ssh -R 127.0.0.1:8080:http.us.debian.org:80 server2如果有多个镜像要隧道到,则使用多个-R命令(如-R 127.0.0.1:8081:security.debian.org:80)。只要这个ssh连接保持打开,就可以使用apt。
2:使用ssh的“动态”SOCKS代理和tsocks为apt提供SOCKS支持。要做到这一点,您必须使用以下方法“向后”从server2到server1
ssh -D 8080 server1在一个终端中,然后在另一个终端运行tsocks apt-get update等。您将在/etc/tsocks.conf中设置服务器和端口信息,tsocks“包装”程序将在apt中转换正常的http连接,以使用ssh提供的socks代理。这样,您就不会对sources.list进行任何更改。
https://serverfault.com/questions/414444
复制相似问题