天天看點

Windows小技巧8--VMware workstation虛拟機網絡通信

Windows小技巧8--VMware workstation虛拟機網絡通信

VMware Workstation(中文名“威睿工作站”)是一款功能強大的桌面虛拟計算機軟體,提供使用者可在單一的桌面上同時運作不同的作業系統,和進行開發、測試 、部署新的應用程式的最佳解決方案。其使用過程中的網絡連接配接是一個比較重要的問題,筆者本文針對VM的網絡通信的幾種不同情況加以說明。

1、三種通信模式簡介

打開VMware的虛拟網絡編輯器,可以發現有三種網絡連接配接類型,别為橋接模式,僅主機模式,NAT模式,其對應的名稱依次為VMnet0,VMnet1,VMnet8,如下圖所示。

Windows小技巧8--VMware workstation虛拟機網絡通信

從圖中可以看到橋接對外通過本機網卡Realtec***可以實作外網通路,主機模式外部連接配接為 - 不能實作外網通路 ,NAT模式可以通過NAT來實作外網通路。

筆者桌上型電腦A通過靜态ip和本地區域網路連接配接,虛拟機B通過僅主機模式進行網絡連接配接,虛拟機C通過NAT方式進行網絡連接配接,各系統間網絡連接配接和通信情況如下表所示:

序号 主機名稱 連接配接方式 互ping狀态 外網通路
1 A 桌上型電腦靜态IP 可ping通B和C 正常
2 B 虛拟機主機模式 可ping通A和C 無法通路
3 C 虛拟機NAT模式 不能ping使用者A和B 正常

當A為靜态時候,若存在D為橋接模式,那麼網絡啟動會失敗(通常表現為2、常見問題中的1)),導緻無法虛拟機配置設定IPv4網絡,進而D無法通路外網,也無法和上述ABC通信,由于沒有IPv4導緻ABC也無法和D通信。

以下1)、2)、3)内容來源于博文 Linux虛拟機的三種網絡連接配接方式,該文總結的比較到位,筆者就不畫蛇添足了。

1)橋接:

橋接網絡是指本地實體網卡和虛拟網卡通過VMnet0虛拟交換機進行橋接,實體網卡和虛拟網卡在拓撲圖上處于同等地位,那麼實體網卡和虛拟網卡就相當于處于同一個網段,虛拟交換機就相當于一台現實網絡中的交換機,是以兩個網卡的IP位址也要設定為同一網段。是以當我們要在區域網路使用虛拟機,對區域網路其他pc提供服務時,例如提供ftp,提供ssh,提供http服務,那麼就要選擇橋接模式。

2)NAT模式

NAT模式中,就是讓虛拟機借助NAT(網絡位址轉換)功能,通過主控端器所在的網絡來通路公網。NAT模式中,虛拟機的網卡和實體網卡的網絡,不在同一個網絡,虛拟機的網卡,是在vmware提供的一個虛拟網絡。

 NAT和橋接的比較:

 (1) NAT模式和橋接模式虛拟機都可以上外網。

 (2) 由于NAT的網絡在vmware提供的一個虛拟網絡裡,是以區域網路其他主機是無法通路虛拟機的,而主控端可以通路虛拟機,虛拟機可以通路區域網路的所有主機,因為真實的區域網路相對于NAT的虛拟網絡,就是NAT的虛拟網絡的外網,不懂的人可以查查NAT的相關知識。

 (3) 橋接模式下,多個虛拟機之間可以互相通路;NAT模式下,多個虛拟機之間也可以互相通路。

如果你建一個虛拟機,隻是給自己用,不需要給區域網路其他人用,那麼可以選擇NAT,畢竟NAT模式下的虛拟系統的TCP/IP配置資訊是由VMnet8(NAT)虛拟網絡的DHCP伺服器提供的,隻要虛拟機的網路配置是DHCP,那麼你不需要進行任何其他的配置,隻需要主控端器能通路網際網路即可,就可以讓虛拟機聯網了。

3)僅主機模式

在Host-Only模式下,虛拟網絡是一個全封閉的網絡,它唯一能夠通路的就是主機。其實Host-Only網絡和NAT網絡很相似,不同的地方就是Host-Only網絡沒有NAT服務,是以虛拟網絡不能連接配接到Internet。主機和虛拟機之間的通信是通過VMware Network Adepter VMnet1虛拟網卡來實作的。Host-Only的宗旨就是建立一個與外界隔絕的内部網絡,來提高内網的安全性。這個功能或許對普通使用者來說沒有多大意義,但大型服務商會常常利用這個功能

2、常見問題

該章節主要記錄筆者使用時候遇見的一些問題,以及解決方案,後續遇到新問題都會在此處續更。

1)登入Ubuntu系統時候出現A start job is running for Raise network interfaces(xxs /5min xxs)

如下圖所示出現該問題後,系統需要等待5min 3s後才能進入系統中,進入後也無法上網且沒有配置設定ipv4位址,該問題産生的原因為網絡服務服務沒有正常啟動,直到網絡啟動最大時間到達後才啟動系統,系統啟動後也無法正常配置設定ipv4位址,導緻無法聯網,也無法和區域網路内機器互ping。

Windows小技巧8--VMware workstation虛拟機網絡通信
Windows小技巧8--VMware workstation虛拟機網絡通信

其解決方法為:将本機電腦連接配接到某個區域網路或者路由器,然後本機使用動态配置設定ip的方法即可正常給虛拟機配置設定ip,重新開機虛拟機就不會出現該問題;若本機必須使用靜态ip連接配接到外部網絡中,則可以使用nat的方法進行網絡連接配接,也可解決該問題其正常通路網絡。

注:筆者在網上看到有相當一部分博文介紹修改參數使Raise network interfaces最長時間縮短,使用參數修改的方法筆者試了一下沒有成功,且修改參數也沒有解決後續無ipv4的問題,治标不治本,筆者幾次嘗試後發現該方法可以解決上述問題。若有更好的方法還請留言,以便于互相學習。

2)橋接模式無法上網排查方法

首先檢視service中的dhcp、nat等服務是否開啟,若未開啟則手動開啟;其次檢視本機是否為靜态ip,若本機為靜态ip則使用nat方式連接配接外網。

3)本機沒有任何外網連接配接的情況下建立主機和虛拟機之間的網絡通信方法

該情況下無法正常橋接,需要使用host only方法,可為虛拟機建立靜态ip,具體方法如下:

當電腦無任何網絡的連接配接的時候,使用nat啟動時候也會出現A start job is running for Raise network interfaces(xmin xs / 5min xs)的異常,登入後發現ens33無ipv4網絡,此時可以通過配置host only實作網絡通路,并且可以使用shell登入主機。

其設定方法為:修改/etc/network/interfaces 配置檔案

auto ens33
#iface ens33 inet dhcp #将此處屏蔽,筆者伺服器預設網絡沒春節後為ens33,其它版本系統可能不完全相同,但是隻需要更改其對應的内容即可
iface ens33 inet static #新添加内容
address 169.254.78.152 #新添加内容      

修改後重新開機虛拟機,ens33就可以正常配置設定ip了,windows下可以通過ssh等工具通路虛拟機了,下圖左邊為windows下cmd的ipconfig網絡資訊,右圖為host only模式下ifconfig的網絡資訊。

Windows小技巧8--VMware workstation虛拟機網絡通信

需要注意的是此處address必須和windows下ipconfig中VMnet8(host only)的網段相同,否則無法通路。

4)VMware DHCP Service和VMware NAT Service的服務項找不到

出現該問題後,不論net還是橋接都無法動态配置設定ip,即都無法正常通信,此時隻需要恢複虛拟機預設的VMnet配置即可,方法如下:vmware菜單欄——編輯——虛拟網絡設定——(左下角)還原預設配置,還原後正常情況下vmnet0-1-8都會重新配置,如果沒喲重新配置就重新開機電腦,重新開機不成功的話就隻有重裝下VM了;筆者在win10+vm12pro上親測可用。

5)在實體機器T1将A虛拟機拷貝到其它機器T2後為虛拟機BCD,發現在區域網路内T1機器無法通路BCD

筆者将機器A機器拷貝到另外一台機器上,生成BCD三台虛拟機,設定好其靜态ip後,發現T1上無法通過shell通路BCD,而經過排查後發先BCD和A的mac位址一模一樣,導緻網絡上無法識别,進而無法通過shell通路,是以分别在/etc/network/interfaces中設BCD的mac為不同的值之後,重新開機就可以正常通路BCD了,且ABCD之間可以互通。

auto ens33

iface ens33 inet static

address 192.168.1.21  #21|22|23

netmask 255.255.255.0

gateway 192.168.1.1

hwaddress 00:0c:29:40:81:22 #21|22|23

此時ABCD機器可以互相ping同,也可以ping同區域網路内任何機器,但ping baidu.com任然報錯ping: unknown host baidu.com,随後檢視虛拟機DNS發現為空,是以添加了個8.8.8.8就可以上網了,但是8.8.8.8通路會有較大延時,是以檢視本機的DNS後将其設定為T2的DNS(T2的DNS就為路由器的ip,192.168.1.1),是以在/etc/resolv.conf中添加nameserver 192.168.1.1和nameserver 8.8.8.8(第二個可以不要) 兩個DNS,添加後可以正常通路外部網絡。

注意:由于/etc/resolv.conf在啟動時候會自動生成,為了防止重新開機時候被重新整理掉,需要将/etc/resolv.conf備份到home等目錄,然後在/etc/rc.local 中添加cp /home/yourpath/resolv.conf /etc/resolv.conf,此時重新開機後回自動更新dns。

6)  ubuntu 18.04版本後使用netplan設定靜态ip

1804版本後使用/etc/netplan/50-cloud-init.yaml檔案配置網絡,一下筆者配置的一個案例,内容如下:

$ cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        ens33:
            dhcp4: false
            addresses: [192.168.190.22/24]
            gateway4: 192.168.190.2
            macaddress: 00:0c:29:02:00:22
            nameservers: 
                addresses: [192.168.190.2,8.8.8.8]
    version: 2      

3、說明

vm版本為:VMware® Workstation 15 Pro

虛拟機為:Ubuntu 16.04 LTS

參考文獻:

​​Linux虛拟機的三種網絡連接配接方式​​

​​執行個體講解虛拟機3種網絡模式(橋接、nat、Host-only)​​

繼續閱讀