我有一台具有随机虚拟 IP 的虚拟机。我可以使用以下命令行检索其 IP:
VM_IP=$(some command)
我想要得到的是可以像这样重定向我的本地流量的东西:
http://MY_MACHINE:8080
到http://VM_IP:80
https://MY_MACHINE:4443
到https://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图像以便更轻松地设置这一切。
- 您可以使用