我在本地运行virtualbox
并且我已经像这样使用了端口转发
0.0.0.0:7000 -> 0.0.0.0:7000
这样我才能做到
curl http://localhost:7000
从主机到vm,能够与vm中运行的应用程序通信并侦听端口7000
。
有可能反过来吗?我想设置一个前进的端口
curl http://localhost:6000
来自我的虚拟机,能够与在主机上运行的应用程序进行通信并侦听端口6000
。
我正在使用NAT
。
我已经了解桥接网络以及使用我的主机的网络IP。我无法使用它们。我感兴趣的只是以上内容。
Exclaimer:
上述限制的原因是因为我dinghy
与docker
和docker-machine
一起使用。如果我将网络更改为NAT
之外的其他设置,则设置将中断。此外,我不能使用除localhost
之外的其他内容,因为这些是应用程序的默认设置,我需要它们进行通信,就好像它们在主机上运行一样。
答案 0 :(得分:1)
可能的选择:
使用ssh -R设置SSH隧道,请参阅https://unix.stackexchange.com/questions/46235/how-does-reverse-ssh-tunneling-work
在vm上设置Nginx或Apache反向代理以将流量转发到主机。
强制VM认为localhost是您的主机IP,方法是将其添加到/ etc / hosts文件中(这可能会破坏可能依赖于localhost为127.0.0.1的其他服务)