使用 vagrant + virtualbox 搭建的虚拟机需要桥接网络供其他机器连接。
目前我使用的虚拟机是使用 vagrant + virtualbox 搭建的。
vagrant创建虚拟机会默认创建192.168.56.x网段的适配网络,也就是虚拟机的ip得设置在192.168.56.x这个网段。
这是我用vagrant的Vagrantfile。
1 | Vagrant.configure("2") do |config| |
vagrant up
启动后,会默认创建两个网卡,一个是网络地址转换(NAT)
,另一个是仅主机网络
,在virtualbox中可以看到,右键虚拟机->设置->网络
。
比如说现在我的电脑主机的ip是192.168.2.x,虚拟机的网络是192.168.56.101。
此时主机和虚拟机之间是可以直接互连的,比如我在虚拟机中搭建mysql,redis等,本地主机都是可以直接连上的,只需要虚拟机暴露端口和关闭防火墙就行了。
但是如果此时,局域网中有其他机器也在192.168.2.x网段,就连不上192.168.56.x的机器了,因为他们不在一个网段。
这时需要设置桥接网络,需要设置虚拟机也在192.168.2.x网段内。
以下是设置步骤:
正常搭建的ip地址为192.168.56.101的虚拟机,可以先用xshell连接,然后修改网络配置文件:
1 | # 我这里的文件是ifcfg-eth1,根据自己的来,可能名字不同 |
修改ip地址,添加网关地址,dns等。
1 | # VAGRANT-BEGIN |
重启网络服务
1 | systemctl restart network.service |
在virtualbox中添加网络
右键虚拟机->设置->网络,设置网卡1配置为桥接,网卡2的适配网络为上面添加的网络
到电脑网络设置那里,网络适配器配置那,设置下192.168.2.x网络的网关为192.168.2.1。
设置好后,重启虚拟机,使用xshell连接192.168.2.101,看是否连接成功。