VMware安裝centos7虛擬機及後續配置總結筆記

引言

這幾天從想搭建一個容器集羣開始,然後去官網下載了centos7,到克隆好了鏡像,卻突然發現連不上網,ping不通百度,然後就陷入了漫長的解決虛擬機聯網問題,然後又重新部署一些相關的東西,中間花費了很多時間,另外也吸取了很多的經驗,雖然到最後還是沒解決主要問題,我最後是切換了模式,但知道了很多東西,所以想在這裏記錄一下。

VMware介紹與安裝

VMware介紹

VMware的安裝就不做過多介紹了,各大公衆號還有本站也有,主要來講一講虛擬機。虛擬機有三種模式,它們分別是:

  1. 僅主機(Host Only),虛擬主機只能與宿主機聯網通信,無法訪問外網和宿主機所在局域網的其它主機。

  2. 橋接(Bridge),在橋接模式下,虛擬主機就像是宿主機所在的局域網中的一個獨立的主機,它可以訪問到在宿主機所在局域網內的主機所能訪問的任何一臺機器。不過宿主機要能擁有2個以上的IP地址,並且需要手工爲虛擬主機配置IP地址、子網掩碼,而且還要和宿主機器處於同一網段,這樣虛擬系統才能和宿主機器進行通信。如果你想利用VMware在宿主機所在局域網內新建一個虛擬服務器,爲宿主機所在局域網的其它用戶提供網絡服務,就應該選擇橋接模式

  3. NAT(網絡地址轉換模式),該模式下宿主機的物理網卡就充當了路由器或交換機的角色,默認由宿主機的VMnet8(NAT)虛擬網絡的DHCP服務器提供的,無法進行手工修改,該模式宿主機可以ping通虛擬機(但前提是將VMnet8的IP設置成和虛擬機網絡爲同一網段),虛擬機也能ping通主機,但據說不能ping通宿主機所在局域網的其它主機,但可以連接外網,注意,此模式下虛擬機連接宿主機,宿主機獲得的RemoteAddr實際上就是宿主機本身的地址,因爲虛擬機訪問外部網絡實際上是藉由宿主機完成的

  4. 當VMware爲虛擬機設置了網絡後宿主機中會有幾個虛擬的網絡連接,默認情況下,VMnet0被設置成爲Bridge模式,VMnet1被設置爲Host Only模式,而VMnet8的默認連接方式爲NAT模式(不可改)。VMnet2-VMnet7和VMnet9這七塊虛擬網卡用戶可以自定義(一般用VMware默認的即可)。

可能上面文字很多,有些是我看別人的,然後有些自己也寫了點,這都是我這幾天踩過來的坑,現在回過頭來看看,發現對上述的理解進一步加深,有了很多感想,雖然我沒有學過計算機網絡,但我儘可能在後面解釋一下。

centos安裝

這裏如果我們沒有資源,可以直接去官網下載它提供的兩個版本,雖然我感覺很一般,坑很多。

https://www.centos.org/download/

最好選擇DVD版,有接近4個g,minimal版本我下完克隆鏡像後發現缺少了太多的東西,如果是爲了熟悉Linux系統而裝那麼會學到很多東西,但我只是爲了做一個相當於中間件,所以在嘗試minimal無果後我用了DVD。

那麼下面的下載步驟我就不做過多介紹了,網上有一篇博文挺全的,我基本上是跟着這篇的步驟下載,這裏還沒有遇到什麼坑。

VMware安裝Centos7超詳細過程(圖文)

中間有一步要注意一下:

在這裏插入圖片描述
這裏需要我們填寫虛擬機名稱,默認我記得是叫VMware的虛擬機,這個最好不要帶中文,因爲下面的network需要根據這個來設置一個host name,所以要手動設置一個,我當時是一直下一步,到後面設置又把這個鏡像刪了重新來。。。怕有什麼坑,這裏還是沒有什麼大問題的。

聯網問題

這裏糾結了整整有接近一天吧,不知道哪一步出了問題,各種地址換來換去,但終是用處不大,然後我就直接換成NAT模式了,可能我中間誤刪或者誤改了什麼東西,導致ping不通,所以這裏分享一些經驗。

如果是按照我上面步驟來的話,基本上當我們啓動centos7的時候,宿主機和虛擬機就可以ping通了,開始我也以爲到這裏基本就沒有問題了,所以馬上對虛擬機進行了克隆,克隆的話很簡單,這裏提一下:

VMware 完整克隆(Full Clone)

完全克隆的虛擬機不依賴源虛擬機,是完全獨立的虛擬機,它的性能與被克隆虛擬機相同。

由於完整克隆不與父虛擬機共享虛擬磁盤,所以創建完整克隆所需的時間比鏈接克隆更長。如果涉及的文件較大,完整克隆可能需要數分鐘才能創建完成。完整克隆只複製克隆操作時的虛擬機狀態,因此無法訪問父虛擬機的快照。

VMware 鏈接克隆(Linked Clone)

依賴於源虛擬機(稱爲父虛擬機)。由於鏈接克隆是通過父虛擬機的快照創建而成,因此節省了磁盤空間,而且克隆速度非常快,但是克隆後的虛擬機性能能會有所下降。

對父虛擬機的虛擬磁盤進行的更改不會影響鏈接克隆,對鏈接克隆磁盤所做的更改也不會影響父虛擬機。但是如果父虛擬機損壞或快照點刪除,鏈接克隆的虛擬機也不能使用;如果父虛擬機移動位置,需要重新指定父虛擬機的位置,再啓動鏈接克隆虛擬機。

注意:

  1. 如果製作鏈接克隆的完整克隆,該完整克隆將成爲一個獨立的虛擬機,不需要訪問鏈接克隆或是其父虛擬機。

  2. 無法在未銷燬鏈接克隆的情況下刪除鏈接克隆快照,必須同時刪除依賴快照的克隆,才能安全地刪除該快照。

所以選擇鏈接克隆,佔用空間小,另外就是克隆速度快,基本5秒鐘能搞定。確定自己的虛擬機關閉之後,我們開始克隆虛擬機,我們選擇工具欄中的“虛擬機”,然後選擇其中的“管理”選項,選擇“克隆”。然後接着就只要跟着嚮導就行了。
在這裏插入圖片描述
然後當我準備大刀闊斧的下載相關組件的時候,發現yum根本無法安裝?

Cannot find a valid baseurl for repo: base/7/x86_64

這個錯誤首先看到的是valid baseurl,我猜到是倉庫有問題,然而還是去百度了一下,於是就看了無數錯誤帖,沒有一篇講到了點上,然後這裏的一些錯誤我就不提了(不適用於我這裏),我這裏的正確步驟爲:

# 備份系統的原鏡像文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

# 下載新的CentOS-Base.repo 到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 運行makecache生成緩存
yum clean all
yum makecache

這個也好解決,但沒有網的問題依舊:

$ ping: www.baidu.com
Name or service not known

出現這個基本證明是虛擬機有問題,我看了網上最簡單的方法是去/etc/sysconfig/network-scripts/目錄下修改ifcfg文件,這個文件每種虛擬機都有不同的序號,像上面官網的就是ifcfg-ens33,然後如果我上博文中的安裝步驟,選擇了橋接模式,那麼初始設置是這樣的:

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="50062bb9-88d0-4db7-9301-8cc151d74423"
DEVICE="ens33"
ONBOOT="yes"

很多篇博客是說虛擬機開始的ONBOOT是no,即沒有自啓動網卡,另外就是BOOTPROTO改成dhcp模式,這個是動態ip,系統會分配一個可以用的ip地址。

但我這裏默認都是這樣的,所以上述方法顯然沒用,然後中間還有一些非常古怪的我就不提了,我也去嘗試了一下,感覺要不就是把我係統搞崩,否則牽一髮而動全身。

第二種方式就是設置靜態IP地址上網了,我們在Windows中進入cmd,輸入ipconfig /all查看所有的網絡連接狀態:
在這裏插入圖片描述
這裏比較重要的就是三個畫框的地方,如果要改靜態IP,那麼我們這裏還需要算一下子網IP,避免重複:
在這裏插入圖片描述
主機ip與子網ip的運算爲與運算,具體的爲如下公式:

每個子網只有一個掩碼,但需要注意,並不是子網掩碼相同就是同一子網
子網號 = IP & 子網掩碼
主機號 = IP & 掩碼取反

那麼針對我這裏的地址就可以算:

主機與子網掩碼 地址
10.4.25.25 00001010-00000100-00011001-00011001
255.255.240.0 11111111-11111111-11110000-00000000

它們相與再轉換成十進制爲:10.4.16.0。這個就是可以用的ip地址,從第四位的0~255,還有一種簡單的方式,直接看默認網關就清楚了該段在哪裏。


然後我們就再次修改ifcfg-ens33文件爲:

BOOTPROTO="static"  # 手動分配ip
IPADDR="10.4.16.161"  # 該網卡ip地址就是你要配置的固定IP,如果你要用xshell等工具連接,這個網段最好和你自己的電腦網段一致,否則有可能用xshell連接失敗
GATEWAY="10.4.16.1"   # 網關
NETMASK="255.255.240.0"   # 子網掩碼
DNS1="8.8.8.8"    # DNS,8.8.8.8爲Google提供的免費DNS服務器的IP地址,或者改成上述本機Windows上顯示的兩個
DNS2="101.226.4.6"

輸入service network restart重啓,再去配置VMware:
在這裏插入圖片描述
這裏給篇博文,因爲之前我一怒之下卸載了一遍虛擬機,之前配置的都沒了,然後這裏就看這個吧,很詳細:

關於使用VMware搭建Linux虛擬機配置IP你應知道的一切

然後都配置好了,重新ping www.baidu.com,我發現我這邊還是沒用,於是又找了半天問題,改了防火牆,改了軟連接等等,最終我將VMware改成了nat模式,終極方案,終是成功。
在這裏插入圖片描述

總結

踩的坑有點多,中間這些解決方案肯定是都有用的,我也是按着步驟一步步進行深化,但到底有多少關聯就不太清楚了,下一篇我應該會寫K8S的配置問題,但發現聯想的筆記本實在是太卡了,我就不說一天至少幾十次的內存泄漏了。。。沒脾氣,要換了,到時候再說,等裏面東西壞了之後。嗯,就這樣。

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