@scomper

Parallels Desktop 的网络设置

2018.07.08

Mac 里安装虚拟机主要的目的还是为了兼容,处理来自 Windows 的文档和安装只提供了 Windows 版本的应用。通常我们可以把虚拟机视为一个独立的系统,以全屏的方式运行,看上去和 Windows PC 没有什么两样。然而虚拟机设置里一牵扯到网络问题,很多时候就有点纠缠:虚拟机和宿主主机的关系、和局域网其它设备之间的关系、虚拟机如何上网以及反过来主机是否能通过虚拟机上网等等。

如果再加上 Surge 和科学上网,又会组合出不同的网络场景。主机自身通过 Surge 上网,主机通过其它电脑的 Surge 网关上网,Surge 普通模式和增强模式对设置的影响。

PD 和主机的网络设置

以 Parallels Desktop 为例,首先我们看看 PD 和网络有关的设置都在哪些地方。一个是 PD 里的全局设置-偏好设置、另一个是针对具体虚拟机的配置。偏好设置的网络参数定义中,不管是共享网络(Shared)还是主机网络(Host-Only)都需要勾选「将 Mac 连接到此网络」,并设定好 DHCP 的范围。虚拟机中启用相应的网络时会基于这里的 DHCP 分配 IP。

PD 运行时,相当于为主机和虚拟机都创建了虚拟网卡,勾选 PD「偏好设置-网络」中的「在系统偏好设置中显示」,可以在 Mac 的网络设置中看到作为宿主主机被添加的网络连接和分配到的 IP。例如,选择共享网络时, Mac 的 IP 是 10.211.55.2,如果切换成 Host-Only 网络 Mac 的 IP 是 10.37.129.2。

为了了解 PD 虚拟机中选择不同的网络连接方式时,宿主主机和虚拟机在网络参数上的变化,我们还需要知道 MacBook 自己的网络环境,例如,Wi-Fi 连接分配到的 IP 是 10.0.1.131,子网掩码 255.255.255.0,网关 10.0.1.1,Mac 上还安装了 Surge 用于科学上网。

三种网络连接方式

Windows 虚拟机的网卡设定来自于「硬件 - 网络」的设置,虚拟网卡有三种网络连接方式:共享网络、主机网络、桥接网络。虚拟机如果处于运行状态,可以通过顶部的菜单切换网络连接方式。为了直观的有个比较,分别截取了网络连接的详细信息供参照。

  • 共享网络设置,选定该选项可为虚拟机启用网络地址转换 (NAT) 功能。在这样的情况下,虚拟机会共享主机电脑当前使用的网络连接,只要宿主主机能访问互联网,虚拟机也可以访问互联网。NAT 模式中,虚拟机的网卡和物理网卡的网络不在同一个网络,局域网其他主机无法访问虚拟机,而宿主机可以访问虚拟机,虚拟机可以访问局域网的所有主机、网络打印机。

  • 使用 Host-Only 网络设置,该选项允许虚拟机连接到主机以及主机上的其它虚拟机,Host-Only 网络模式下,虚拟机能访问主机的文件,但是不能直接访问互联网,是一个相对封闭的环境。例如,Windows 中运行 Web server,Mac 以客户端的形式访问虚拟机,进行网页开发和数据库方面的调试。

  • 桥接网络,该选项能够让虚拟机通过安装在宿主主机上的网络适配器访问本地网络与互联网。如此一来,虚拟机会被视作网络上的独立电脑。桥接网络模式下物理网卡和虚拟网卡在拓扑图上处于同等地位,相当于处于同一个网段。局域网的其它设备也因此可以直接访问虚拟机,虚拟机能对局域网其他设备提供 FTP、SSH、HTTP 服务。

虚拟机的科学上网

作为主机的 Mac 如果能正常访问网络,虚拟机里选择「共享网络」和「桥接网络」也都可以上网。区别是 作为主机的 Mac 如果打开 Surge,可以访问 Twitter、Google 或 GitHub,但是虚拟机可能只能访问国内的网络服务。

第一步,先确认一下 Mac 主机的网络环境和参数,Mac 上启用 Surge(设置为系统代理)后代理部分会自动设置好,主机的 IP 是 10.0.1.131,局域网其它设备如果要用它作为 HTTP 代理服务器,可以填写 10.0.1.131:8888,虚拟机如果想用它作为代理服务器,填写主机和虚拟机同一个网段被分配的 IP,如 10.211.55.2:8888。究竟填写那个可以看看下面具体的虚拟机网络连接方式。


Mac 主机的网络环境

Mac 主机上 Surge 如果再进一步启用「增强模式」又会增加什么变化呢?
虚拟机选择「共享网络」模式时,Mac 主机里启用 Surge 并激活增强模式是最简单的方式。虚拟机不需要额外的网络设置就能访问 Google,通过主机里的 Surge 控制台可以看到,虚拟机的网络访问都是 127.0.0.1:59859 形态的 TCP 访问。

如果 Mac 里 Surge 没有启用「增强模式」,虚拟机如果要访问 Google 需要添加「代理」设置,将 Mac 主机作为代理服务器,填写 PD 分配给 Mac 主机的 IP:10.211.55.2,端口填写 Surge 设置为系统代理时 Wi-Fi 网络里的代理设置。 代理访问的特点是主机 Surge 控制台会出现类似 10.211.55.3:49823 的终端访问,10.211.55.3 是 Windows 虚拟机被分配的 IP 地址。

Windows 虚拟机的网络连接如果选择的是「桥接网络」,虚拟机相当于是一台和 Mac 主机处于同一个网段的设备,代理设置里 IP 需要变成 10.0.1.131:8888。

如果宿主主机里没有安装 Surge,它自己也是基于局域网另外一台 MacBook Air(Surge 网关,增强模式)来上网,那么网络设置上有什么不同呢?

  • MacBook Air 的 IP 地址是 10.0.1.30;
  • Surge 启用,勾选「增强模式」,DNS 会自动设置为 198.18.0.2;

安装虚拟机的宿主主机需要将 IP 由 DHCP 自动分配改为手动设置(依旧可以沿用自动分配时分配的 IP 10.0.1.131),路由器填写作为 Surge 网关的 MacBook Air 的 IP 10.0.1.30,DNS 填写 198.18.0.2,其它的设置为空。

宿主主机里虚拟机又该如何设置呢?
如果虚拟机选择的是「桥接网络」,有两种选择,如果选择走 Surge 网关的方式,虚拟机和宿主主机里的填写模式一样,只是各自的 IP 不同:

  1. 网关的方式上网,修改 IP 地址为「手动」,填写一个和同网段的唯一 IP(10.0.1.*) 作为自己的 IP,路由器输入 10.0.1.30,DNS 输入 198.18.0.2;
  2. 传统的 HTTP 代理方式,用 10.0.1.30:8888 作为代理服务器地址。

如果宿主主机本身也是通过其它电脑的 Surge 网关上网,虚拟机选择的是「共享网络」,虚拟机依旧可以通过代理的方式,设定 10.0.1.30:8888 上网。有些同学可能会奇怪,虚拟机设定为「共享网络」的话,IP 是 10.211.55.3,如何能访问另一个网段里的设备呢?虚拟机里的共享网络也称之为 NAT 网络,宿主主机会完成两个网段之间的请求转换。

同理,虚拟机处于「共享网络」连接方式时,虚拟机可以以 IP 的方式添加宿主主机局域网当中的打印机。PD 的偏好设置里虽然也提供了共享打印的勾选,但是被 PD 转到虚拟端口上经常连不通,还不如直接以 TCP/IP 的方式添加打印机。

虚拟机提供网络给主机

反过来将 Windows 虚拟机的网络分享给 Mac 主机,这种需求不多见,但是遇到特定的网络环境时也很有用。例如:

  • 只提供了 Windows 驱动的 USB 上网卡;
  • 企业内部的安全网络,上网需要先用特定应用拨号(只有 Windows 版本);
  • 只有 Windows 版本的科学上网代理类应用;
  • 网络访问绑定了 MAC 地址,只能利用虚拟机克隆旧设备的 MAC 地址(虚拟机能随时生成 MAC 地址可以实现匿名访问)。

虚拟机为主机提供网络访问,需要虚拟机里有两个网卡设备,一个能上网的网卡,一个 Host-Only 的网卡和宿主的 Mac 主机通讯。利用 Windows 的网络连接共享,把外网的访问分享给其它网络连接。

下面演示的是桥接 Mac 的有线网络到虚拟机,然后通过 Windows 上网的方式。如果是 Windows 上网卡共享给 Mac 操作方式类似。

1 、首先,在 PD 的「偏好设置 - 网络」中选择 Host-Only 网络,勾选「将 Mac 连接到此网络」和「在系统偏好设置中显示」,DHCP 设置为 192.168.137.100 ~ 192.168.137.254(Windows 的网络共享默认是 192.168.137.1,所以这里需要将 DHCP 设置为同一个网段)。

  • Mac 的网络设置中,IPv4 改为手动,IP 地址从上面的 DHCP 网段中选一个唯一的即可,例如 192.168.137.200,路由器填写 192.168.137.100,这是待会打算分配给虚拟机其中一个网卡的 IP。

2、在虚拟机的配置中添加「网络」,网络 1 的源选择「雷雳以太网」,同时 Mac 的网络设置中记得将「雷雳以太网」的配置 IPv4 设为关闭,通过 PD 的桥接只提供给 Windows 使用。

3、在虚拟机关闭的状态下,才能添加网络 2,网络 2 的源选择「Host-Only」,展开网络设置下的「高级设置」,可以自定义 MAC 地址并选择网卡的驱动类型。类型可用来在 Windows 里识别和区分网络 1 和 网络 2。网络 1 这里会用来提供给 Windows 连接外网,网络 2 用来和 Mac 主机保持连接。

4、打开虚拟机,按正常的方式配置连接到「雷雳以太网」的「以太网」,直到能正常访问网络。

5、虚拟机「网络和 internet - 网络连接」里可以看到两个以太网连接,第一个对应的是「网络 1」的雷雳以太网,第二个对应的是 Host-Only 的网络 2。在连接雷雳以太网的「以太网」上右键选择「属性 - 共享」,勾选「Internet 连接共享」并确认。

6、设置 Host-Only 的以太网 2 的 IP,前面共享以太网的 internet 连接后,以太网 2 的 IP 会自动变成 192.168.137.1,将其修改为 192.168.137.100,和 第 1 步里 Mac 的 Host-Only 网络处于同一个网段。

虚拟机里的设置到这里就结束了,回到 Mac 主机里 Ping 验证一下网络的畅通情况。Ping 192.168.137.1,能 Ping 通就说明 OK。

虚拟机 Host-Only 网络中 DNS 不要设置,Mac 里可以设置 192.168.137.100 作为 DNS,或者填写 114.114.114.114 这样的公网 DNS 服务。

理清楚了虚拟机里网络 1 和网络 2 之间的关系,其它类似的 Internet 共享设置一样。都是把能访问外网的连接共享给 Host-Only 的网络,从而实现 Mac 主机通过虚拟机上网。

Comments
Write a Comment