通过 VPN 接入本地网络时无法访问 VirtualBox Vagrant

通过 VPN 接入本地网络时无法访问 VirtualBox Vagrant

我的家庭网络上的 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]

相关内容