使用私有地址访问虚拟机上的服务

使用私有地址访问虚拟机上的服务

我有这样的配置:

图像的SS 来源:https://www.lucidchart.com/publicSegments/view/5256a1e5-afb0-4c7a-96fa-35750a00527d/image.png

基本上,我必须从远程计算机访问 IP 地址为 192.168.0.20 的虚拟机上运行的服务;该服务可通过端口 80 访问,并通过浏览器运行。但是,我无法修改虚拟机管理程序(我可以通过其公共 IP 访问的物理机)上的任何防火墙配置。

答案1

您需要通过用户空间程序转发端口。

我可以推荐你socat,例如

socat TCP4-LISTEN:80,fork,reuseaddr TCP4:192.168.0.20:80

您似乎没有虚拟机管理程序的 root 权限。在这种情况下,您需要选择高于 1023 的端口来侦听虚拟机管理程序。

有关更多选项,请参阅以下问题(例如redir):https://serverfault.com/questions/252150/port-forwarding-on-linux-without-iptables

相关内容