将流量重定向到另一个 IP 和端口

将流量重定向到另一个 IP 和端口

我有一台具有随机虚拟 IP 的虚拟机。我可以使用以下命令行检索其 IP:

VM_IP=$(some command)

我想要得到的是可以像这样重定向我的本地流量的东西:

  • http://MY_MACHINE:8080http://VM_IP:80
  • https://MY_MACHINE:4443https://VM_IP:443

我尝试使用 iptables,但现有条目太多,我不想破坏某些东西。我还启用了net.ipv4.ip_forward

问题主要在于VM_IP每天可以改变一次(因为硬件关闭)。

答案1

您的问题太广泛,无法提供现成的解决方案,但您需要遵循以下粗略步骤:

  • 安装反向代理在你的机器上,例如nginx
  • 重新启动时设置VM_IP系统的环境变量
  • 在反向代理配置中使用该环境变量,它可以将您机器的端口 8080 映射到虚拟机的端口 80,对于端口 4443 和 443 也是如此。
    • 您可以使用envsubst用环境变量中的值替换虚拟机 IP
    • 如果你使用docker compose,你可以使用那个设置虚拟机 IP。
    • 如果你使用docker,并且你的虚拟机也是一个docker容器,你可以考虑jwilder/nginx-proxy图像以便更轻松地设置这一切。

相关内容