我收到了一个不寻常的请求,但不确定是否有解决方案。
我的客户希望在机器A上托管一个Web应用程序,并且仅通过访问可公开访问的机器P的URL来访问它。
通常,反向代理就足够了,但是有一个额外的,可能是不必要的麻烦:我的客户端不想在机器A的防火墙上打开Web应用程序的端口-甚至不限于机器P的IP地址。但是如果机器A以某种方式进行传出连接,则它们与机器A建立与机器P的连接就可以了。
我是否可以利用任何现有软件来设置反向代理,以使机器A初始化连接-连接到机器P上绑定的端口-之后,机器P可以将传入的Web请求反向代理到机器一种?
两台机器都运行CentOS(6或7),并且我拥有完全控制权来安装在它们上找到的任何软件。唯一的限制是,我无法在机器A的面向公众的防火墙上打开任何传入端口(尽管从我的角度来看,机器P被认为是“受信任的”机器,但机器P被认为是“公共”的)。
如您所见,您使用的任何解决方案都比在机器B上打开防火墙以允许机器A糟糕得多。
您可以创建从机器B到机器A的ssh隧道,然后使用它。语法类似于(来自机器A):
ssh -R 8081:localhost:8080 user @ machineb
这将允许人们连接到machineA上的localhost:8081以连接到machineb上的端口8080。
在这种情况下,这不是一个好主意,因为您失去了对流量的可见性,从而使调试更加困难,并且不必要地通过SSH对其进行加密。
当然,还有许多其他方法可以执行相同的操作-例如,在两台计算机之间设置OpenVPN隧道。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句