終于有人把Vmware虛擬機三種網(wǎng)絡(luò)模式講清楚了!
時間:2023-07-15 13:30:02 | 來源:網(wǎng)站運營
時間:2023-07-15 13:30:02 來源:網(wǎng)站運營
終于有人把Vmware虛擬機三種網(wǎng)絡(luò)模式講清楚了?。?br>
本文樣式、排版由網(wǎng)絡(luò)工程師阿龍編輯,如需轉(zhuǎn)載本樣式風格、字體版權(quán),請保留此信息,以尊重小編辛苦編輯,否則后果自負。
寫這篇的原因是這個問題出現(xiàn)了好幾次,每次都要耽誤很久去重新查資料解決,所以決定記下來。
問題描述
由于公司服務器重啟導致出現(xiàn)過以下幾種情況:
1.在Xshell里連接虛擬機映射時連接失敗
2.能夠連接上虛擬機的映射地址,但git pull時報錯無法解析hostname
因為之前出現(xiàn)過1、2這兩種情況,在找了一天方法未果之后咨詢了大神朋友才解決,也因為不是自己解決的,所以對這個過程包括虛擬機的使用都并不清楚,這次重新出現(xiàn)問題2,又重新查了一遍資料,才算是對虛擬機有了一點點了解。因為有之前的問題,所以這次問題出現(xiàn)就想到是虛擬機IP問題。
問題1第一次出現(xiàn)時是因為當時虛擬機IP沒有固定,換了一個IP所以連接失敗,把本地映射地址改成新IP就好了。
問題2雖然也是IP問題,但是感覺跟問題1不太一樣,主要還是虛擬機網(wǎng)絡(luò)配置問題。
首先去虛擬機查看了IP,然后發(fā)現(xiàn)虛擬機沒有IP,原來配的IP不見了,所以按照NAT模式重新配了一遍IP,但是也沒有用,后來查資料說網(wǎng)關(guān)也需要配,都沒有什么用,所以還是按照資料的方法重新從網(wǎng)絡(luò)模式開始配置。
vmware提供了三種網(wǎng)絡(luò)工作模式:
Bridged(橋接模式)
、
NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換模式)
、
Host-Only(僅主機模式)
,模式配置可以在虛擬機左上角“編輯——虛擬網(wǎng)絡(luò)編輯器”中設(shè)置,如下圖:
可以看到三種不同模式對應的狀態(tài),其中VMnet1,VMnet8的IP都是隨機分配的,如果想要重新設(shè)置,或者在主機上看不到對應的VMnet1,VMnet8虛擬網(wǎng)卡,只需要點擊左下角的恢復默認設(shè)置,即可看到虛擬機中這兩個方式IP變了的同時,主機上的虛擬網(wǎng)卡也更新了。主機查看虛擬網(wǎng)卡設(shè)置可以到網(wǎng)絡(luò)中心設(shè)置:
從上面可以看出,主機是沒有橋接模式對應的VMnet0虛擬網(wǎng)卡的,下面介紹三種方式的區(qū)別:
一、Bridged(橋接模式)
橋接模式就是將主機網(wǎng)卡與虛擬機虛擬的網(wǎng)卡利用虛擬網(wǎng)橋進行通信。在橋接的作用下,類似于把物理主機虛擬為一個交換機,所有橋接設(shè)置的虛擬機連接到這個交換機的一個接口上,物理主機也同樣插在這個交換機當中,所以所有橋接下的網(wǎng)卡與網(wǎng)卡都是交換模式的,相互可以訪問而不干擾。在橋接模式下,虛擬機ip地址需要與主機在同一個網(wǎng)段(即地址前三個數(shù)相同),如果需要聯(lián)網(wǎng),則網(wǎng)關(guān)與DNS需要與主機網(wǎng)卡一致。
先確認一下主機的IP地址,網(wǎng)關(guān)以及DNS信息,Window+R輸入cmd進入命令窗口,輸入命令
ipconfig/all
即可查看:
也可以到網(wǎng)絡(luò)中心點擊當前連接查看,如果主機的IP是自動獲取的,在網(wǎng)絡(luò)中心看不到,只能用命令行:
在開啟虛擬機前先選擇連接模式:編輯虛擬機設(shè)置——網(wǎng)絡(luò)適配器——橋接模式
打開虛擬機后開啟命令行,輸入命令
vi /etc/sysconfig/network-scripts/ifcfg-eth0
編輯IP配置文件:
此處應將IP地址設(shè)置和主機地址在同一網(wǎng)段,網(wǎng)關(guān)地址和DNS地址和主機一樣,因為我用的是NAT模式,且自動獲取IP,所以我的文件沒有改,改完保存重啟虛擬機或者虛擬網(wǎng)卡(命令:
service network restart
如果沒用可能是權(quán)限不夠改用
sudo service network restart
)。然后可以Ping一下主機地址試試能不能通,想要看主機和虛擬機之間是否通信正常,可以在主機新建虛擬機地址的網(wǎng)絡(luò)映射,在Xshell里看能不能連接成功。
橋接模式配置簡單,如果網(wǎng)絡(luò)環(huán)境是ip資源很缺少或?qū)p管理比較嚴格的話,不建議使用橋接模式,可以使用NAT模式。
二、NAT(地址轉(zhuǎn)換模式)
NAT模式借助虛擬NAT設(shè)備和虛擬DHCP服務器,使得虛擬機可以聯(lián)網(wǎng)。結(jié)構(gòu)圖如下:
虛擬機不占用主機所在局域網(wǎng)的ip,通過使用主機的NAT功能訪問局域網(wǎng)和互聯(lián)網(wǎng),意味著虛擬機可以訪問局域網(wǎng)中的其他電腦,但是其他電腦不知道虛擬機的存在。使用這種模式時,虛擬機不需要設(shè)置靜態(tài)IP,只需要使用DHCP功能自動獲取ip即可。
這個地方讓我耽誤了很久,因為一開始想的固定IP比較方便,所以沒有設(shè)置自動獲取,結(jié)果不停換IP都不行,后來設(shè)置了自動獲取所有問題都解決了。
配置過程:首先在虛擬網(wǎng)絡(luò)編輯器里設(shè)置NAT模式里的NAT設(shè)置網(wǎng)關(guān)地址和DHCP設(shè)置虛擬機IP范圍,一般默認的設(shè)置都不用改,主要為了確保都在同一個網(wǎng)段:
然后設(shè)置主機VMnet8虛擬網(wǎng)卡的IPv4設(shè)置:
此處要把IP地址設(shè)置為虛擬機中NAT模式下設(shè)置的網(wǎng)關(guān)地址,我設(shè)置了自動獲?。ㄗ詈靡膊灰O(shè)置自動獲取,感覺會出問題),好像也是可以的,同時我的虛擬機地址也是自動獲取的(事實證明最好這個不要自動獲取,不然三天兩頭自己換IP又會出問題。。),如果想要固定IP地址,就到虛擬機里設(shè)置
/etc/sysconfig/network-scripts/ifcfg-eth0
文件中的各地址,此時設(shè)置的IP要在DHCP設(shè)置范圍內(nèi),網(wǎng)關(guān)地址也要跟主機的網(wǎng)關(guān)地址一樣,我第一次設(shè)置了跟虛擬機網(wǎng)關(guān)地址一樣,第二天就又出問題了,今天改成了主機的網(wǎng)關(guān)地址,又好了,所以等如果有問題我再來改。
在這個時候會發(fā)現(xiàn)在VMnet8的網(wǎng)絡(luò)設(shè)置里是顯示IPv4沒有網(wǎng)絡(luò)訪問權(quán)限的,也就是說虛擬機不是靠虛擬網(wǎng)卡來連網(wǎng)的,只是用來讓主機和虛擬機進行通信的。
三、Host-Only(僅主機模式)
Host-Only模式其實就是NAT模式去除了虛擬NAT設(shè)備,然后使用VMware Network Adapter VMnet1虛擬網(wǎng)卡連接VMnet1虛擬交換機來與虛擬機通信的,Host-Only模式將虛擬機與外網(wǎng)隔開,使得虛擬機成為一個獨立的系統(tǒng),只與主機相互通訊。也就是說虛擬機只能和主機通信,不能連網(wǎng)。結(jié)構(gòu)圖如下:
步驟基本和NAT一樣,設(shè)置固定IP時虛擬機IP要和VMnet1在同一網(wǎng)段,網(wǎng)關(guān)一致,DNS地址要和主機相同。
在這個過程中我出現(xiàn)的問題:主機的Xshell連接不到虛擬機:最后發(fā)現(xiàn)時VMnet8里我把IP寫成了虛擬機的IP,應該寫虛擬機的網(wǎng)關(guān)地址。
一些網(wǎng)絡(luò)常識:
1.網(wǎng)絡(luò)中對電腦的訪問是通過ip定位的。
就好像我們的身份證號,可以唯一辨識一個人。ip是用來區(qū)分網(wǎng)絡(luò)中的電腦的,因此同一網(wǎng)絡(luò)(準確講是“網(wǎng)段”)中,ip地址不能相同。如果同一網(wǎng)絡(luò)中有相同的ip存在,經(jīng)常發(fā)生無法聯(lián)網(wǎng)或者經(jīng)常掉線的情況。
2.網(wǎng)絡(luò)是分段管理的。
拿局域網(wǎng)為例,我們通常的網(wǎng)段是
http://192.168.1.xxx。我們的ip地址就是把xxx成1到254的數(shù)字。如果多臺計算機的ip的前面數(shù)字都是192.168.1,那么就叫做屬于同一個網(wǎng)段,他們之間是可以互相通信的。如果一臺機器的ip是192.168.1.100,另一臺機器的ip是192.168.3.100,正常情況下,不能互相通信的(有辦法可以搞定,我們不討論)。所以,在設(shè)置虛擬機時要考慮是否同一個網(wǎng)段。
3.怎么知道電腦的ip地址?
在windows系統(tǒng)下,在命令行中執(zhí)行
ipconfig
;在linux系統(tǒng)下,在命令行中執(zhí)行
ifconfig
即可,下文會詳述。
4.怎么判斷是否與對方能夠通信?
最簡單的方式是執(zhí)行ping命令。無論是windows還是linux,都可以在命令行中執(zhí)行
“ping 對方ip”
作者:Limyes鏈接:
https://juejin.cn/post/6844903677912694791來源:稀土掘金
關(guān)鍵詞:網(wǎng)絡(luò),模式,清楚,虛擬