之前用virtualbox搭建虚拟机,但是网络方面配置比较繁琐,后来一个偶然的机会通过简单的设置,即可实现上网,客户机与虚拟机互相ping。
下面介绍通过hostnoly方式实现上网。
1、选中虚拟机,点击设置,网络这里选择仅主机(Host-Only)网络,如果没有entry,点击右侧加号新建,网络明细这里设置ipv4地址和网络掩码按如图所示设置,这一步很重要,后面还需要对本地网络做设置。新建完成,会在本地网络中生成VirtualBox Host-Only Ethernet Adapter #2。
2、对本地网络做设置,我这里使用的是有线网,这里直接右键本地连接->共享->Internet连接共享,选中允许其他网络用户通过此计算机的Internet连接来连接,然后选中第一步创建的VirtualBox Host-Only Network #2
3、说明一下,虚拟机网络这里无须设置nat网络。保持为空即可。
4、在网络中心->网络连接下右键VirtualBox Host-Only Network #2->ipv4->属性,设置第一步中设置给虚拟机网络的ip192.168.56.1和子网掩码255.255.255.0。
5、在windows上通过ipconfig \all查看本地连接使用的dns服务器地址,我这里有两个,我选择的是第二个10.96.1.19。
6、虚拟机设置网络信息,ip:10.0.2.10,gateway:10.0.2.2,dns1:10.96.1.19(第五步查询的本地网络的dns)
7、设置完网卡信息,重启网络,我们会发现/etc/resolv.conf中的dns服务器也发生了变化。
8、该方式设置的网络,虚拟机的ip10.0.2.10对外无法访问,需要设置网络转换,点击虚拟机右键设置,选择网络,然后点击端口转发规则,将虚拟机的22端口映射到物理机的22222端口,然后指定子系统IP:10.0.2.10,主机IP:192.168.56.1。
9、物理机上通过ssh连接虚拟机,显示通过192.168.56.1:22222来连接虚拟机10.0.2.10:22。并且可以实现上网功能。
补充:virtualbox通过host-only方式上网,有的说需要创建两种网络,一个nat,一个host-only,一个实现物理机ssh连接,一个实现上网,我通过实际操作,只用了一种网络模式。这种方式重要的一点就是:如果要让虚拟机上网,需要设置本地连接的dns给虚拟机。缺点就是需要做一个端口映射。虚拟机的ip虽然可以设置静态IP,但是对外部来讲无法通过静态IP直接访问。