一.設置virtualbox網卡
1.1 關閉虛擬機
1.2 設置添加網卡
進入設置-網絡
1.2.1 添加網卡1(NAT網絡)
這個網絡是主機通過網絡地址轉換到虛擬機,比如主機用無線網卡WLAN上網,用NAT轉換比較合適,這樣虛擬機也可以訪問外網。
1.2.2 添加網卡2(host only網絡)
這個網絡是主機通過無線網卡WLAN上外網,但是虛擬機想通過有線網卡和主機、甚至與開發板互相ping通,傳輸文件。
當然開啟host only模式前先確保windows下的virtual host only網卡有開啟,如下圖:
如果沒有請按照下圖操作:(這里是添加host only網卡)
二,配置windows和虛擬機
2.1 配置window以太網卡
剛添加了虛擬機虛擬virtual host only網卡, 那么我們反正用的WLAN上的外網,為了方便,設置windows下的以太網卡網段和virtual host only網卡保持一致。
2.2 配置虛擬機網絡
一般默認情況下,虛擬機是通過NAT共享網絡給虛擬機用的,那么此時虛擬機也是可以上網的,只是不能和外界開發板進行互相ping, 同時windows主機也不能ping虛擬機。 如下圖:
圖中可以看到兩塊網卡,enp0s3是Ubuntu默認的網卡(NAT),enp0s8是新增的網卡(host only),可以看到enp0s8還沒有分配IP地址,我們需要手工指定一下。sudo vim /etc/network/interfaces將文件內容修改為如下所示:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto enp0s8
iface enp0s8 inet static
address 192.168.56.101
netmask 255.255.255.0
再來看下網卡ip信息:
三,測試上網狀態
從測試結果上可以看到虛擬機上外網和ping windows主機都是ok的。
10.80.0.75時無線網卡的ip,
192.168.56.100是以太網卡的ip,
192.168.56.101是host only網卡的ip。
同理用Windows ping虛擬機也是ok的。
用開發板ping主機和虛擬機發現,只能ping通windows主機,無法ping通虛擬機,如下圖。這是為什么呢?
這是由於我們windows主機和開發板用的網線直連,兩個以太網卡在同一網段下,當然能夠ping通。但是虛擬機和windows主機用的確是host only網卡(NAT方式用來上外網),這樣只能保證虛擬機和Windows主機是互通的,但是卻無法被開發板訪問,我們的開發板是沒有無線網卡的,所以不能用WLAN,因此我們要想讓開發板訪問到虛擬機還得經過windows的以太網卡。
那么我們虛擬機和windows主機是host only方式,所以我們無法用到以太網卡進行虛擬機和windows主機的交互。所以我們可以采取將host only網卡橋接到以太網卡,進入 網絡-更改適配器-同時選中host only網卡和以太網卡,點擊右鍵-選擇橋接,如下圖所示:
這樣我們的虛擬機的host only網卡就可以透過以太網卡和開發板交互了,效果如下:
開發板能夠ping windows主機和虛擬機。
四,改進和優化
如果不想在windows下進行host only網卡和以太網卡橋接,也可直接把virtualbox的第2路網卡由原來的host only修改成以太網卡橋接模式,如下:
這樣需要配置虛擬機的enp0s8網卡和windows主機的以太網卡網段保持一致的。(和前面2.2操作一樣)