![将请求和响应重新路由到 VPN 后面的服务器](https://linux22.com/image/38338/%E5%B0%86%E8%AF%B7%E6%B1%82%E5%92%8C%E5%93%8D%E5%BA%94%E9%87%8D%E6%96%B0%E8%B7%AF%E7%94%B1%E5%88%B0%20VPN%20%E5%90%8E%E9%9D%A2%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我的情况如下:我有一台服务器 (A),设置了与第三方服务器 (B) 的 VPN 连接。我有一组其他服务器(C、D、E...),它们与我的 VPN 连接服务器 (A) 共享相同的专用网络。
第三方服务器(B)提供可通过HTTP访问的RESTful API。例如,AI 可以从服务器请求一些 URL:
$ curl http://<server-B-vpn-ip-address>/path/to/whatever
我将收到包含适当数据的 JSON 响应。
我希望能够通过调用服务器 A 从任何服务器(C、D、E...)访问服务器 B 的 API。例如:
$ curl http://<server-A-private-ip-address>/path/to/whatever
然后,服务器 A 应该将该请求转发给服务器 B,并且它应该将 JSON 响应返回给最初请求它的服务器。
我已经研究了几种使用 iptables 解决此问题的可能方法,但没有成功,但老实说,我不知道在这种情况下适合这项工作的工具是什么。有人有什么想法吗?
答案1
我最终通过在服务器 A 上实现反向代理来解决这个问题,该代理在将请求转发到服务器 B 之前修改了请求标头。