我的家庭网络上的 Windows 10 机器上运行着一个配置了 Vagrant 的虚拟机。我已成功配置 Vagrant 公共桥接网络设置,因此我可以从该网络上的其他机器(而不仅仅是主机)访问该客户虚拟机。例如,我在笔记本电脑上工作,并且能够毫无问题地通过 SSH 连接到客户虚拟机 IP。
这一切都很顺利,直到我尝试从网络外部访问它时才尝试。我的路由器支持 VPN 连接,因此我进行了设置,并且我能够使用私有 IP 访问网络上的所有其他设备(例如,我在 VM 之外运行的某些本地 Web 服务器是可以访问的)。我可以访问 Windows 10 主机,但当我尝试访问客户 VM IP 时,它会挂起。
我认为可能是 VPN 将我置于单独的子网中(例如,客户虚拟机 IP 为,192.168.29.125
而在 VPN 上,我的笔记本电脑被分配了类似192.168.0.35
)。有人知道如何允许通过 VPN 连接在网络上的设备访问桥接网络客户虚拟机吗?我可以访问主机,但不能访问在该主机上运行的客户虚拟机。
相关 Vagrantfile
# Set up shared folders for local syncing
override.vm.network 'private_network', :ip => IP_ADDRESS[:rails]
# Windows and accessible on the network
override.vm.network 'public_network'
答案1
如果其他人发现这个问题,我最终通过在主机上引导连接并在 Vagrant 文件中启用端口转发来解决这个问题。
例如,我希望 SSH 和我们的应用程序 SSL 端口打开(22 和 3443)。
我的主机 IP 类似于 192.168.29.125
我的 Vagrant 获得了一个类似 192.168.29.130 的 IP
我之前尝试过通过 VPN 连接到 192.168.29.130 的这些端口,但总是超时。我添加了以下几行:
config.vm.network "forwarded_port", guest: 22, host: 22
config.vm.network "forwarded_port", guest: 3443, host: 3443
然后我将连接导向主机 PC,主机 PC 随后将这些连接转发到虚拟机。因此,它不再被转发到 192.168.29.130ssh [email protected]
ssh [email protected]