How to set up host-only virtual machines that host can access it... 問題 因為工作和學習,我經常需要移動裝有Linux系統的筆記本電腦,有時在家裡用,有時在公司里用,這兩個地方的網路都是不同的,或者有時要開會或到外面,不能連接任何的 ...
How to set up host-only virtual machines that host can access it...
問題
因為工作和學習,我經常需要移動裝有Linux系統的筆記本電腦,有時在家裡用,有時在公司里用,這兩個地方的網路都是不同的,或者有時要開會或到外面,不能連接任何的網路,所以即使虛擬機配置了NTA或者橋接網路主機不能訪問VBOX虛擬機的資源.即便在家裡和辦公司室里每次都要根據環境修改靜態IP聯網,為瞭解決這個問題,嘗試了很多方法,覺得以下的方法還可以,便整理下來,以下的案例主機為:Fedora 25,虛擬機為:CentOS 6.7.
解決方案
首先打開vobx,進入File=>Preferences=>Network設置Host-only Networks,進入這個選項如果以前沒有設置過新建一個(在Linux上這可能需要root許可權,提示沒有許可權時請使用root許可權打開vbox重試),新建一個host-only網卡,並設置IP和網關保存;
保存後主機上多了一個vboxnet0網卡;
vboxnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.56.1 netmask 255.255.255.0 broadcast 192.168.56.255
inet6 fe80::800:27ff:fe00:0 prefixlen 64 scopeid 0x20<link>
ether 0a:00:27:00:00:00 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 172 bytes 31905 (31.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
進入虛擬機settings=>NetWork,添加新的Host-only Adapter網卡,Name項選擇上面創建的host-only網卡;
重啟虛擬機,檢查新網卡adapter;
# ls /sys/class/net
eth0 eth1 eth2 lo
本例新添加的adapter為eth2;此時通過ifconfig可能看不到eth2網卡的信息,進入網卡配置目錄,複製一個已經存在的網卡配置文件並命名為ifcfg-eth2;
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth1 ifcfg-eth2
編輯該文件,設置靜態IP和網關;
DEVICE="eth2"
BOOTPROTO="static"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=192.168.56.10
NETMASK=255.255.255.0
重啟網路服務;
service network restart
再次檢查eth2網卡已經正常啟動;
eth2 Link encap:Ethernet HWaddr 08:00:27:E5:7C:79
inet addr:192.168.56.10 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fee5:7c79/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:664 errors:0 dropped:0 overruns:0 frame:0
TX packets:434 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:75195 (73.4 KiB) TX bytes:69955 (68.3 KiB)
最後在主機上通過host-only連接虛擬機正常;
$ ssh [email protected]
[email protected]'s password:
Last login: Sat May 20 09:00:45 2017 from 192.168.56.1
[root@gpdb-sandbox ~]# ifconfig
eth2 Link encap:Ethernet HWaddr 08:00:27:E5:7C:79
inet addr:192.168.56.10 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fee5:7c79/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:726 errors:0 dropped:0 overruns:0 frame:0
TX packets:475 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:83180 (81.2 KiB) TX bytes:78426 (76.5 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
可以肯定的是只要主機的host-only網卡啟用和正確配置的情況下,即使主機的其它網卡因為移動更改IP或沒有連接到任何網路,這個連接依舊可用.