![如何重定向 URL 同时通过 HTTPS 更改源和目标 IP 地址?](https://linux22.com/image/771397/%E5%A6%82%E4%BD%95%E9%87%8D%E5%AE%9A%E5%90%91%20URL%20%E5%90%8C%E6%97%B6%E9%80%9A%E8%BF%87%20HTTPS%20%E6%9B%B4%E6%94%B9%E6%BA%90%E5%92%8C%E7%9B%AE%E2%80%8B%E2%80%8B%E6%A0%87%20IP%20%E5%9C%B0%E5%9D%80%EF%BC%9F.png)
我有一个 SaaS 服务,它公开一个 URL(假设(https://mylink.foo.com),仅可从某些白名单 IP 访问。但是,我们现在需要上述 URL 可供这些白名单 IP 之外的受众访问。我曾考虑过实现另一个公共云服务器作为 IaaS,充当枢纽,更改源 IP 和目标 IP,并将请求重定向到我的 SaaS 提供商(它与 IaaS 不同),在这种情况下,唯一的白名单 IP 将是枢纽的公共 IP 地址。
此外,由于正确的 URL 会指向无法从白名单中 IP 访问的原始服务器,因此我正在考虑从同一个数据透视表中发布一个 HTTP 服务器,以公开第二个 URL(https://accesslink.foo.com) 将被重写为原始 URL 以便于访问。
根据提出的这一方案,它将包括:
- Linux 枢纽充当防火墙/NAT 设备,重写源/目标 IP 地址。Iptables 将用于此目的。
- (也许?)另一个主机充当 HTTP 反向代理,重写进入服务器的请求的 URL。这里使用带有 mod_rewrite 或 nginx 的 HTTP 服务器。
我的顾虑和疑问是:
- 我的整个实现想法是否可行?对于此类问题,还有其他更简单、更简单的解决方案吗?考虑到原始 URL 是通过 HTTPS 而不是 HTTP 公开的,是否可以进行重写?
如果您不介意分享我的描述中可能未涉及的其他实施问题/挑战,请随时分享它们。
答案1
我不明白你为什么需要iptables
来这里。
只需安装一个服务器作为反向代理,将该服务器的 IP 列入白名单 IP 中。最终用户将连接到该服务器,该服务器将反向代理连接到最终目的地。
反向代理从其自己的 IP 地址打开到代理服务器 IP 地址的连接,因此您不需要对 IP 地址进行任何额外的技巧。