之前用惯了vmware和parallels desktop,网络配置十分智能,基本不用自己配置。由于版权原因,工作电脑上换了免费的virtual box用,四五年都完全在虚拟机里干活的本菜鸡居然在虚拟机配置上疯狂踩坑,真的是令人哭笑不得。。
配置的目标:虚拟机可访问外网,主机可ssh虚拟机,不能使用桥接(办公网都懂得)。
踩坑过程:
1)用了默认网络配置,创建好了虚拟机,开启了sshd,就是能ping不能ssh。查了资料若干,怎么看怎么不符合常理。
2)关了虚拟机,不小心又ping了一下,居然能ping通!?从而发现默认生成的ip太常用了,和内网大服务器冲突了,ping通的是大服务器。(vmware的默认网段192.168.x.0/24中的x都是随机的,而vbox的内置NAT配置10.0.2.0/24中,直接用了0这种重要网段......)
3)找不到内置NAT网卡在哪里配置,一阵莫名其妙。然后发现应该使用自定义NAT网卡,配置为192.168.x.0/24网段。
4)机器可以正常访问外网,但主机不能ssh虚机。搜了一下,NAT只能让虚机连外网,还需额外配置一个Host-Only网卡来让主机连接虚机。(vmware中vmnet8就是nat,vmnet1就是host-only,都是默认配置。)
5)想要给虚拟机配置Host-Only网卡,发现“界面名称”没有可选选项。查了一下是主机没有vbox虚卡,需要创建。全局设定中又只能创建NAT网卡,没有Host-Only网卡,又是一阵莫名其妙。
6)终于在菜单栏找到Host-Only网卡配置,配好,胜利在望。(好像老版本两种网卡是在一起配置的,不知道为什么新版放到了完全不同的入口。。)
7)给虚拟机配好第二个网卡,网络配置成功。总耗时两到三小时,又快乐又崩溃。
正确配置过程梳理:
一共就三个步骤:
① 创建一个自定义的NAT网卡,用于虚拟机连外网
② 创建一个自定义的Host-Only网卡,用于宿主机连虚拟机
③ 配置虚拟机网络
Step 1: 创建自定义NAT网卡
不像vmware,有默认配置好的两个网卡vmnet1和vmnet8,vbox的全局网络配置是空空如也的,没有网卡。这么说其实也不准确。在虚拟机的网络配置中可以看到,有两个NAT网络,很是迷惑。
其实“网络地址转换(NAT)”是一个内置的、不可修改的NAT网卡,默认为10.0.2.0/24网段,并开启了DHCP,不提供相关配置信息,在NAT网卡列表中也看不到。而“NAT网络”是由用户手动配置的网卡,在 VB管理器 -> 工具 -> 全局设定 -> 网络中管理。
配置很简单,不多说了,尽量使用办公网不使用的网段。例如我司使用的是10和172,那就配成192。
Step 2: 创建自定义Host-Only网卡
不知道为啥子,vbox的全局设定中只能设置NAT,并没有Host-Only网卡。
其实在菜单栏 -> 管理 -> 主机网络管理器。配置同样简单。
Step 3:配置虚拟机网络
在虚拟机设置中选择网络,一个网卡选择自定义的NAT网络网卡,另一个选择自定义的Host-Only网络网卡。
Step 4: 重启虚拟机即可。
要说难,其实根本也不难。没想到用了这么多年虚拟机的老司机居然翻了车。一方面是自己确实对网络非常不熟悉,另一方面也怪vbox的各种设计真的相当反人类。这么一件小事折腾了两三个小时,就像初用ubuntu时不会装中文输入法的自己一样。很神奇的是网上居然也没查到相关的文章。因此自己记录下来,希望能对大家有所帮助。