開發人員學Linux(2):VirtualBox中安裝CentOS7系統設置

上一篇《VirtualBox中安裝CentOS7過程記錄》中講述瞭如何安裝VirtualBox和在VirtualBox中安裝CentOS7,但是限於篇幅有很多問題沒有展開,在本篇將展開介紹VirtualBox和CentOS的設置問題。
VirtualBox支持的虛擬機文件類型
VDI: Virtual Disk Image,這是VirtualBox默認使用的虛擬機文件類型。
VMDK:這是VMware默認使用的虛擬機文件類型。
VHD:這是微軟出品虛擬機軟件默認使用的虛擬機文件類型。
在創建虛擬機時選擇哪一種看個人偏好了,不過我一般偏好VMDK,因爲預研成功的時候我可以將vmdk文件交給虛擬化管理直接加載到公司的虛擬機資源池中。當然,創建之後也是可以通過VirtualBox提供的VBoxManage.exe在三種格式之間轉換,這個文件位於VirtualBox的安裝目錄下。
VirtualBox支持的虛擬機CPU設置
默認情況下創建的虛擬機只使用了1核,有時候在宿主機硬件比較好的情況下爲了有更好的體驗,可以設置多核多線程,本人電腦是4核8線程,因此最大可設置爲4,如下圖所示:
wKioL1kkSszyFN4yAACodFqx5b0101.png-wh_50 
VirtualBox支持的虛擬機網絡接入方式
點擊“網絡”選項時會看到如下界面:
wKioL1kkSuXB_mnwAAC7wyNMLMM821.png-wh_50 
在界面中有四個比較重要的設置:
連接方式。
界面名稱。
控制芯片。
混雜模式。

虛擬機網絡連接方式
VirtualBox支持7種接入方式:
網絡地址轉換NAT – Network Address Translation (NAT)
橋接網卡 – Bridged networking
內部網絡 – Internal networking
僅主機(Host-Only)適配器 – Host-only networking。
通用驅動 – Generic networking
VirtualBox的網絡連接類型設置界面如下:
wKioL1kkSwWT7GJXAACxio1b568954.png-wh_50 
這幾種網絡連接類型的簡單對比如下:
wKioL1kkSxijwcAYAABdNWuyn4o224.png-wh_50 

虛擬機網絡連接界面名稱
這裏其實當前宿主機上的網卡。在橋接模式下,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來實現,本人嘗試過幾次都沒有成功,不知道問題出在哪裏。

CentOS7的安全設置
使用橋接模式後,在學習機上建議做如下配置
關閉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的網絡設置
設置CentOS7的IP
根據本人的經歷,在CentOS7下默認網絡IP配置文件名可能有變化,可以通過查看/etc/sysconfig/network-scripts目錄下的文件:
命令如下:
ls -lh /etc/sysconfig/network-scripts
在本人虛擬機上效果如下:
wKiom1kkS2GCb2_GAADBZoBkksE708.png-wh_50 

這個配置文件一般以“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的內容:
wKioL1kkS3jzXgDWAACrgo-m0FE239.png-wh_50 

這是另一個可以正常訪問虛擬網絡的CentOS上的配置信息:
wKiom1kkS4mwfGC3AAAtYk3Za2Y074.png-wh_50 
與上圖相比主要有如下區別:
“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的前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來修改,下圖是本人當前虛擬機裏的域名解析設置:
wKioL1kkS6aQIoYjAAAjY8inGnM560.png-wh_50 
域名解析服務器的查找原則和一般程序中事件處理規則一致:如果就近的規則定義能處理,那麼就由就近的處理程序處理,否則就冒泡給上一級處理程序。在宿主機和虛擬機中均未使用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的多網卡設置
在VirtualBox中可以支持多個網卡的,一般情況下可能用處不大,但在某些情況下這個還是有用的,比如本人現在的情況:家裏拉了一根電信寬帶,爲方便全家人手機上網無線路由器架設在客廳,而筆記本在書房,前文說過WIFI條件下使用橋接模式時不支持混雜模式,即無法從宿主機接收到的數據包中過濾外部網絡發送給虛擬機的數據包(宿主機和虛擬機可以在橋接模式下通訊)。此時面臨兩個選擇:一、使用NAT模式虛擬機和宿主機均可上網,但在宿主機上無法通過SSH客戶端訪問虛擬機,使用上極大不便;二、使用Bridged networking(橋接)是宿主機可以訪問虛擬機和上網(可以用SSH客戶端),但虛擬機無法上網了。
無意中發現電信寬帶的光貓爲照顧一般家庭情況提供了兩個接入口,分別支持上網和iTV。這iTV本人曾經用了幾年,如今沒用了,於是在光貓處一根網線接到客廳無線路由器上,一根接到書房網線插槽裏並最終連接筆記本。這樣書房裏的筆記本可以同時使用WIFI和有線,於是給虛擬機裏的CentOS7配置了雙網卡,這樣在虛擬機使用WIFI情況下,宿主機和虛擬機均可上網,且宿主機可通過SSH等訪問虛擬機。
這就是在前面執行ls -lh /etc/sysconfig/network-scripts時可以兩個網絡配置的原因(分別是ifcfg-enp0s3和ifcfg-Wired_connection_1)。
下面是本篇所有配置的動畫演示:

wKiom1kkTFXBldV0AAn5ysAd8Ak827.gif-wh_50


聲明:本文首發於本人個人微信訂閱號:zhoujinqiaoIT,其後會同時在本人的CSDN、51CTO及oschina三處博客發佈,本人會負責在此四處答疑。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章