上一篇《VirtualBox中安裝CentOS7過程記錄》中講述瞭如何安裝VirtualBox和在VirtualBox中安裝CentOS7,可是限於篇幅有不少問題沒有展開,在本篇將展開介紹VirtualBox和CentOS的設置問題。linux
VDI: Virtual Disk Image,這是VirtualBox默認使用的虛擬機文件類型。vim
VMDK:這是VMware默認使用的虛擬機文件類型。centos
VHD:這是微軟出品虛擬機軟件默認使用的虛擬機文件類型。安全
在建立虛擬機時選擇哪種看我的偏好了,不過我通常偏好VMDK,由於預研成功的時候我能夠將vmdk文件交給虛擬化管理直接加載到公司的虛擬機資源池中。固然,建立以後也是能夠經過VirtualBox提供的VBoxManage.exe在三種格式之間轉換,這個文件位於VirtualBox的安裝目錄下。服務器
默認狀況下建立的虛擬機只使用了1核,有時候在宿主機硬件比較好的狀況下爲了有更好的體驗,能夠設置多核多線程,本人電腦是4核8線程,所以最大可設置爲4,以下圖所示:微信
點擊「網絡」選項時會看到以下界面:網絡
在界面中有四個比較重要的設置:多線程
鏈接方式。框架
界面名稱。學習
控制芯片。
混雜模式。
虛擬機網絡鏈接方式
VirtualBox支持7種接入方式:
網絡地址轉換NAT – Network Address Translation (NAT)
橋接網卡 – Bridged networking
內部網絡 – Internal networking
僅主機(Host-Only)適配器 – Host-only networking。
通用驅動 – Generic networking
VirtualBox的網絡鏈接類型設置界面以下:
這幾種網絡鏈接類型的簡單對好比下:
虛擬機網絡鏈接界面名稱
這裏其實當前宿主機上的網卡。在橋接模式下,Virtualbox會使用主機中單獨的一個驅動來處理網絡數據。從網絡數據中過濾出虛擬機的數據。所以在橋接模式下,必定要選擇當前正在使用的網卡。
虛擬機網絡鏈接控制芯片
在VirtualBox中界面名稱有以下幾種:
AMD PCNet PCI II (Am79C970A);
AMD PCNet FAST III (Am79C973, the default):
Intel PRO/1000 MT Desktop (82540EM);
Intel PRO/1000 T Server (82543GC);
Intel PRO/1000 MT Server (82545EM);
Paravirtualized network adapter (virtio-net)
AMD PCNet FAST III (Am79C973)是默認推薦的,由於它幾乎被全部的操做系統支持,甚至是GNU GRUB boot manager都支持。Intel PRO系列是爲了支持那些再也不被操做系統提供驅動的系統,如Windows Vista。Intel PRO/1000 MT Desktop 支持Windows Vista及以後的Windows系統,Intel PRO/1000 T Server能夠在無需安裝驅動的狀況下被Windows XP識別,Intel PRO/1000 MT Server支持從其餘平臺上導入的OVF格式文件。
Paravirtualized network adapter (virtio-net)比較特殊,若是你選擇了Paravirtualized network adapter (virtio-net),那麼則須要本身保證,有對應的,特殊的軟件接口,去實現對應的網絡處理的。
虛擬機網絡鏈接混雜模式選擇
混雜模式(英語:promiscuous mode)是電腦網絡中的術語。是指一臺機器的網卡可以接收全部通過它的數據流,而不論其目的地址是不是它。
通常計算機網卡都工做在非混雜模式下,此時網卡只接受來自網絡端口的目的地址指向本身的數據。當網卡工做在混雜模式下時,網卡未來自接口的全部數據都捕獲並交給相應的驅動程序。
所有容許:全部數據(不論其目的地址是不是本身)都分別發送到虛擬機和主機。
容許虛擬電腦:全部數據(不論其目的地址是不是本身)僅發送到虛擬機。
拒絕:虛擬機和主機都僅接收目的地址是本身的數據。
根據VirtualBox的描述,在橋接模式下虛擬機會直接從宿主機接收到的數據包中過濾屬於發送到本身的數據包,爲了保證虛擬機可以接收到屬於本身的數據包,這裏建議選擇所有容許。
注意:在宿主機使用WIFI鏈接到網絡時,因爲大部分無線網卡不支持混雜模式,因此在宿主機使用無線鏈接到網絡時可能沒法上網。網上看過一些人的文章說是經過lookback來實現,本人嘗試過幾回都沒有成功,不知道問題出在哪裏。
使用橋接模式後,在學習機上建議作以下配置
關閉SELINUX
SELinux是一個安全體系結構,它經過LSM(Linux Security Modules)框架被集成到Linux Kernel 2.6.x中。它是NSA (United States National Security Agency)和SELinux社區的聯合項目。在生產環境中根據須要來決定是否關閉,在學習環境中建議仍是關閉掉。在CentOS7中這個設置在/etc/sysconfig/selinux文件中,能夠經過vim之類的軟件將「SELINUX=enforcing」改成」 SELINUX=disabled」。
關閉防火牆
在CentOS中也有相似Windows中的防火牆,在CentOS7以前默認用的iptables,在CentOS7以後默認用firewall,能夠執行systemctl disable firewalld來禁用防火牆。不然,在默認狀況下,即便你安裝了Apache或Nginx或Tomcat之類的服務器軟件,你會發如今其它終端上你任然沒法訪問對應的端口,由於默認狀況下防火牆開啓且開通了較少的端口(如22端口,用SSH鏈接)。
注意:上面用於關閉SELIUNX和關閉防火牆的辦法僅適合學習Linux服務器相關知識的學習用機上,生產環境用機上仍是老老實實配置吧。
設置CentOS7的IP
根據本人的經歷,在CentOS7下默認網絡IP配置文件名可能有變化,能夠經過查看/etc/sysconfig/network-scripts目錄下的文件:
命令以下:
ls -lh /etc/sysconfig/network-scripts
在本人虛擬機上效果以下:
這個配置文件通常以「ifcfg-enp」開頭的文件,在本人的虛擬機上爲「ifcfg-enp0s3」,能夠經過vim來進行編輯。由於本人家裏架設有路由器,爲方便操做因此VirtualBox使用了橋接模式,路由器IP地址爲12.168.60.1,因此CentOS的靜態IP地址也是在192.168.60網段(採用靜態IP的緣由是可不但願每次經過SSH登陸到CentOS7的時候還要先看一下它的動態IP)。
下圖是本人在上一篇中講到在VirtualBox安裝CentOS7時默認狀況下/etc/sysconfig/network-scripts/ifcfg-enp0s3的內容:
這是另外一個能夠正常訪問虛擬網絡的CentOS上的配置信息:
與上圖相比主要有以下區別:
「BOOTPROTO=dhcp」改成「BOOTPROTO=static」,表示由動態分配IP地址改成固定IP地址(否則每次IP地址變化了,還得改SSH客戶端設置裏的IP地址,至關麻煩);
「ONBOOT=no」改成「ONBOOT=yes」,表示系統啓動後自動鏈接到現有網絡;
新增「IPADDR=192.168.60.148」,因爲將獲取IP模式從動態模式改成固定IP,因此須要指定固定IP地址。注意:實際IP地址請根據當前網段設定來設置。
新增「PREFIX=24」,表示子網掩碼。咱們知道IP4是由4個字節表示,爲方便識別在使用時會將其轉換爲10禁止,如192.168.1.1,而每一個字節是8bit,這裏的24表示若是網段中另外一個IP的b前24bit與其嚴格匹配,那麼這兩個IP就是在同一個子網段中,在配置Windows網絡時表達一樣含義的子網掩碼爲:255.255.255.0。
新增「GATEWAY=192.168.60.1」,表示網關地址。注意:實際IP地址請根據當前網段設定來設置,本人將家裏路由器設置成192.168.60網段,而不是路由器默認的192.168.1網段。
CentOS7的域名解析服務器設置信息保存在/etc/resolv.conf文件中,能夠經過vim /etc/resolv.conf來修改,下圖是本人當前虛擬機裏的域名解析設置:
域名解析服務器的查找原則和通常程序中事件處理規則一致:若是就近的規則定義能處理,那麼就由就近的處理程序處理,不然就冒泡給上一級處理程序。在宿主機和虛擬機中均未使用DNS服務,雖然設置了192.168.1.1和192.168.60.1爲DNS服務器,可是對於外部域名它們是沒有辦法解析的,就會嘗試向上尋找能夠解析外部域名的DNS服務器。爲保險起見,仍是建議將本市所在的電信運營商提供的DNS添加進去。
設置主機名
CentOS的主機名設置存放在/etc/hostname中,能夠經過vim /etc/hostname來修改,以下:
[root@centos7 ~]# vim /etc/hostname
centos7
和Windows中圖形用戶界面設置不一樣,經過上面的方式更改了虛擬機的IP配置以後,須要重啓網絡才能生效,重啓網絡的命令爲:
systemctl restart network.service
在VirtualBox中能夠支持多個網卡的,通常狀況下可能用處不大,但在某些狀況下這個仍是有用的,好比本人如今的狀況:家裏拉了一根電信寬帶,爲方便全家人手機上網無線路由器架設在客廳,而筆記本在書房,前文說過WIFI條件下使用橋接模式時不支持混雜模式,即沒法從宿主機接收到的數據包中過濾外部網絡發送給虛擬機的數據包(宿主機和虛擬機能夠在橋接模式下通信)。此時面臨兩個選擇:1、使用NAT模式虛擬機和宿主機都可上網,但在宿主機上沒法經過SSH客戶端訪問虛擬機,使用上極大不便;2、使用Bridged networking(橋接)是宿主機能夠訪問虛擬機和上網(能夠用SSH客戶端),但虛擬機沒法上網了。
無心中發現電信寬帶的光貓爲照顧通常家庭狀況提供了兩個接入口,分別支持上網和iTV。這iTV本人曾經用了幾年,現在沒用了,因而在光貓處一根網線接到客廳無線路由器上,一根接到書房網線插槽裏並最終鏈接筆記本。這樣書房裏的筆記本能夠同時使用WIFI和有線,因而給虛擬機裏的CentOS7配置了雙網卡,這樣在虛擬機使用WIFI狀況下,宿主機和虛擬機都可上網,且宿主機可經過SSH等訪問虛擬機。
這就是在前面執行ls -lh /etc/sysconfig/network-scripts時能夠兩個網絡配置的緣由(分別是ifcfg-enp0s3和ifcfg-Wired_connection_1)。
下面是本篇全部配置的動畫演示
聲明:本文首發於本人我的微信訂閱號:zhoujinqiaoIT,其後會同時在本人的CSDN、51CTO及oschina三處博客發佈,本人會負責在此四處答疑。