Parallels 配置虚拟机网络(宿主机 ip 不固定,虚拟机 ip 固定)
最近我在 Parallels 里安装了一台 Ubuntu 的虚拟机,因为平常都是用宿主机 ssh 远程到虚拟机上使用的,所以在配置虚拟机网络这一块就首先选择了桥接模式。Parallels 里的桥接模式下,虚拟机可以和宿主机通信,可以和与宿主机同一局域网内且同一网段的其它设备通信,多个虚拟机之间也可以相互通信,也可以连接互联网,等于为虚拟机新分配了一个局域网地址,一般正常使用的话,我都是采用这种模式。但是这种模式下有一个问题,因为我用的是笔记本电脑,经常是在家和公司之间或者其它地方使用。这样当我的笔记本(宿主机)网络环境变了以后,我的虚拟机 IP 地址也会改变。虽然可以在虚拟机内设置固定 IP,但宿主机的网段一旦改变,之前虚拟机设置的固定 IP 如果和宿主机不处于同一网段下的话,还是无法实现通信。举个栗子:
比如在公司的时候,宿主机被分配到的 IP 地址是 192.168.xxx.3
这时如果采用桥接模式,虚拟机被分配到的 IP 地址是 192.168.xxx.4,这时是没问题的。
可是如果回了家,宿主机的被分配到的 IP 地址是 192.168.yyy.3
这种时候要么虚拟机不固定 IP,网段也变为了 yyy,我每次开机都需要先查看虚拟机的 IP 地址,然后才能远程连接,这样太麻烦了。固定 IP 的话,因为宿主机的网段会变,而且不固定,又无法实现通信。所以这种模式显然不适合宿主机 IP 不固定的情况。
我先来整理一下我的需求:
- 宿主机和虚拟机之间可以正常通信。
- 多个虚拟机之间可以正常通信。
- 宿主机同一局域网下且网段相同的设备可以和虚拟机之间实现通信。
- 虚拟机可以正常连接互联网。
经过一番谷歌大法后,终于找到了解决方案。
首先在 Parallels 的“偏好设置”–“网络”中,勾选在系统偏好设置中显示和启用 IPv4 DHCP,设置好起始地址和结束地址,这里可以重新设置一个网段(当然也可以点击左边网卡列表的+号新加一块网卡来设置)。勾选了在系统偏好设置中显示这个选项以后,在你的 mac 中的“系统偏好设置”–“网络”里就可以看到这块网卡,里面有本机的 IP 地址。

然后添加端口转发。

最后把虚拟机的网络配置为共享网络。

这里解释一下我们都干了什么。首先我们添加了一个全新的 192.168.8.xxx 的网段,并把虚拟机的网络配置为了共享网络模式。这种模式等于宿主机新加了一块虚拟网卡给虚拟机使用。宿主机的网卡可以实现和同局域网下且同一网段的其它设备通信,同时宿主机的虚拟网卡也可以实现宿主机与虚拟机之间通信。我们还添加了端口转发,这一项设置是为了让和宿主机处于同一局域网下且同一网段的其它设备与虚拟机产生通信。直接通信是不行的,因为这些设备与虚拟机不处于同一网段(虚拟机处于新添加的 192.168.8.xxx 网段下),所以刚才设置的端口转发就派上了用场。上图设置了访问宿主机的 IP+65532 端口号,自动转发给我的名为“Ubuntu 18.04”的虚拟机的 22 端口,这样就可以通过 ssh 来直接远程我的 Linux 虚拟机。
最后再把虚拟机的 IP 固定一下,这样每次 ssh 连接虚拟机的时候就可以使用同一个 IP 地址了。
刚才我们转发到的是虚拟机的 22 端口,当然如果想让虚拟机充当 web 服务器的角色的话,也可以再添加一个 80 端口,就可以实现局域网内的 web 访问了。(宿主机可以直接访问虚拟机的 IP 地址,和宿主机处于同一局域网且同一网段的其它设备无法直接访问,需要访问宿主机的 IP 地址+转发前的端口号)
