我有一台运行 Debian Linux 的 Vagrant VirtualBox VM。我想从 VM 内部连接到我的私有网络上的另一台主机(例如192.168.25.111
)。
我的虚拟机内部的网络如下所示:
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
我发现了很多关于如何允许连接的信息在到虚拟机,但没有关于如何从虚拟机连接的信息出去到网络上的主机。
答案1
好的,我找到了答案。这其实很简单。只需设置一个桥接网络适配器。这将允许您的虚拟机位于本地网络上并与外界通信。
Vagrant.configure(2) do |config|
config.vm.network "public_network", use_dhcp_assigned_default_route: true
end
这反映在我的netstat
,显示一个新的适配器(eth1):
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.10.8 0.0.0.0 UG 0 0 0 eth1
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
摘自这里:https://www.vagrantup.com/docs/networking/public_network.html
就我而言,我还必须设置 VPN 才能连接到我需要的服务器,但使用桥接网络也是可能的。