可能通过另一台服务器路由HTTPstream量?

Noob问题。 我有三个远程服务器(S1,S2和S3)。 其中一个具有互联网连接(S1),另外两个(S2和S3) 只能访问S1 – 例如,我从S1设置了无密码的SSH到S2和S3。

但是这意味着我无法在S2和S3上进行更新或包pipe理。 有没有办法让S2和S3上的HTTP请求通过S1隧道传输,基本上可以访问互联网? SSH隧道是否适用? 如果是这样,是否有一个资源,将指导我一步一步如何做到这一点我的情况?

谢谢。

提供Internet(http / https)访问不能直接访问Internet的系统最简单的方法是使用代理(如squid) 。 在S1上安装代理,并configurationS2和S3使用代理(例如,通过设置http_proxy环境variables或更新应用程序的configuration文件)

鱿鱼是一个好的解决scheme,伯特·涅夫build议。 我build议的另一个select是SOCKS代理,它使用SSH隧道,正如你所build议的。 它甚至可以与某些pakagepipe理员一起工作: https ://askubuntu.com/questions/35223/syntax-for-socks-proxy-in-apt-conf

该链接是Ubuntu的,但tsocks不是特定于Ubuntu的。

以下是一个示例howto: https : //www.linode.com/docs/networking/ssh/setting-up-an-ssh-tunnel-with-your-linode-for-safe-browsing

或者只是谷歌的袜子代理ssh的“

通过代理

代理将根据客户请求进行交通redirect

优点

  • 您可以根据需要redirect您的交通(例如,匹配域名)
  • 访问日志集中在服务器1上

通过Apache

如果您在服务器1上使用Apache,则可以创build虚拟主机以将请求代理到服务器2和3

优点

  • 您可以使用不同的域名访问每个Web服务器
  • Web日志将集中在服务器1上
  • 您可以使用中央身份validation
  • 在访问服务器2和3之前,可以使用服务器1上的apache规则阻止可疑的webstream量

Incovenients

  • 要连接到ssh 2&3,您必须通过服务器1连接,然后使用ssh命令连接到服务器2&2

通过NAT

如果您使用NAT(networking转换地址),您可以设置连接到内部IP +端口的一对外部IP +端口

优点

  • 服务器就像直接连接到互联网,所以你可以访问他们只是与几个IP +端口

Incovenients

  • 每个Web服务器和每个ssh需要1个端口