關(guān)于Hyper-V網(wǎng)絡(luò)設(shè)置經(jīng)驗(yàn)總結(jié)(Default Switch/固定IP/SSH)
關(guān)于Hyper-V網(wǎng)絡(luò)設(shè)置經(jīng)驗(yàn)總結(jié)(Default Switch/固定IP/SSH)
背景
最近想在本機(jī)WIN10上創(chuàng)建幾個(gè)Centos用于做幾個(gè)試驗(yàn),在VMWare、VirtualBox和Hyper-V中選擇了Hyper-V,原因是VMWare免費(fèi)版不能商用(在公司里最好不要用);Windows的Docker據(jù)說從VirtualBox也換成了Hyper-V,所以也不用VirtualBox(我不用界面,所以要求也不高)。
需求
我對(duì)虛機(jī)網(wǎng)絡(luò)的基本需求是:
可以通過本機(jī)SSH工具(如Putty或XShell)連接虛機(jī)(所以虛機(jī)最好有固定IP);
虛機(jī)可以上外網(wǎng),用于執(zhí)行yum下載軟件之類的操作。
試了網(wǎng)上幾種方法都不理想,最后自己想到了一種還比較滿意的方案,所以總結(jié)記錄一下。
遇到的問題
1、Default Switch(默認(rèn)網(wǎng)絡(luò))無法設(shè)置固定IP
Hyper-V自帶一個(gè)不能刪除的Default Switch虛擬交換機(jī),虛擬機(jī)使用該網(wǎng)絡(luò)可以自動(dòng)獲取IP直接上網(wǎng)。但這個(gè)網(wǎng)絡(luò)的網(wǎng)關(guān)地址每次重啟后都會(huì)改變,所以你無法在虛擬機(jī)上設(shè)置固定IP用于宿主機(jī)SSH訪問。
微軟官方說明:每次主機(jī)重啟后Hyper-V會(huì)自動(dòng)找一個(gè)未使用的網(wǎng)絡(luò)然后修改Default Switch的網(wǎng)絡(luò)地址。
2、自己創(chuàng)建虛擬交換機(jī)設(shè)置Internet連接共享
網(wǎng)上搜了一把,有一種方式是自己在Default Switch之外創(chuàng)建一個(gè)新的虛擬交換機(jī),然后在Windows網(wǎng)絡(luò)適配器界面里選擇當(dāng)前上網(wǎng)的網(wǎng)卡,在其屬性里設(shè)置Internet連接共享,里面選擇新建的虛擬交換機(jī)(IP將自動(dòng)固定在192.168.137.x網(wǎng)段)。但這種方法不適合我這種一會(huì)用有線LAN上網(wǎng)一會(huì)用無線WLAN上網(wǎng)的情況,因?yàn)槊看味夹枰匦略O(shè)置Internet連接共享很麻煩。
3、命令行自己創(chuàng)建虛擬交換機(jī)及NAT
這是國(guó)外網(wǎng)站資料里比較常見的方案,即參考https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/setup-nat-network 用命令行創(chuàng)建虛擬交換機(jī),并為其設(shè)置一個(gè)內(nèi)網(wǎng)網(wǎng)段,然后為這個(gè)網(wǎng)段設(shè)置NAT,最后在虛擬機(jī)里設(shè)置靜態(tài)IP以及DNS。這個(gè)方法確實(shí)可以達(dá)到我的目的,但是缺點(diǎn)是DNS需要手動(dòng)設(shè)置(比如用阿里的223.6.6.6),不像用Default Switch那樣可以自動(dòng)根據(jù)當(dāng)前的聯(lián)網(wǎng)情況使用當(dāng)前的DNS。可用但不完美。
解決方法
最后靈光一閃用雙網(wǎng)卡方案解決了問題。大概方案是用虛擬機(jī)第一塊網(wǎng)卡連接Default Switch自動(dòng)獲得IP和DNS上外網(wǎng),用第二塊網(wǎng)卡設(shè)置內(nèi)部固定IP地址用于宿主機(jī)或其它虛擬機(jī)SSH連接。具體操作步驟如下:
1、創(chuàng)建內(nèi)部虛擬交換網(wǎng)絡(luò)
通過Hyper-V管理器的“虛擬交換機(jī)管理”界面創(chuàng)建一個(gè)新的虛擬交換機(jī)(假設(shè)名字為MyPrivateNet,類型為“內(nèi)部”):
2、設(shè)置內(nèi)部使用的虛擬交換機(jī)的地址
然后到Windows的“網(wǎng)絡(luò)連接”里把vEthernet(MyPrivateNet)的IP設(shè)為固定IP,比如192.168.218.1。這樣設(shè)置也決定了192.168.218.x就是以后虛擬機(jī)的網(wǎng)段:(網(wǎng)段也可自己隨心設(shè)置)
3、為虛擬機(jī)添加新網(wǎng)卡
在虛擬機(jī)上新增加一個(gè)網(wǎng)卡,加上原來的網(wǎng)卡,虛擬機(jī)就有兩塊網(wǎng)卡。然后將第一塊網(wǎng)絡(luò)適配器的虛擬交換機(jī)選為Default Switch,第二塊選擇前面新建的MyPrivateNet:
4、虛擬機(jī)內(nèi)設(shè)置兩塊網(wǎng)卡的網(wǎng)絡(luò)配置
配置eth0
虛擬機(jī)啟動(dòng)后編輯/etc/sysconfig/network-scripts/ifcfg-eth0,把BOOTPROTO改為dhcp,ONBOOT改為yes,如下:
BOOTPROTO=dhcp #保持不變 ... NAME=eth0 DEVICE=eth0 ONBOOT=yes #從no變?yōu)閥es
配置eth1
注意,如果你是創(chuàng)建虛擬機(jī)時(shí)就加了一個(gè)新網(wǎng)卡,則安裝Centos后里面應(yīng)該已經(jīng)有/etc/sysconfig/network-scripts/ifcfg-eth1配置文件,如果是安裝操作系統(tǒng)之后才新增網(wǎng)卡的,則可以通過以下命令從/etc/sysconfig/network-scripts/ifcfg-eth0拷貝一份修改:
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
修改重點(diǎn)是把BOOTPROTO設(shè)成static;把NAME和DEVICE改為eth1;ONBOOT還是yes;記得刪除UUID那行(不能和eth0相同)。最后就是加上IPADDR=192.168.218.2和NETMASK=255.255.255.0(注意:IP必須與MyPrivateNet一個(gè)網(wǎng)段,不需要設(shè)置GATEWAY)。
BOOTPROTO=static ... #記得刪除UUID那行 NAME=eth1 DEVICE=eth1 ONBOOT=yes IPADDR=192.168.218.2 NETMASK=255.255.255.0
重啟網(wǎng)絡(luò):(如果報(bào)錯(cuò)就重啟虛擬機(jī))
/etc/init.d/network restart
然后就可以從宿主機(jī)ssh到該虛擬機(jī)了,也可以與其它同網(wǎng)段的虛擬機(jī)通訊。
為了以后自己查找方便作此記錄。困擾此問題終于從網(wǎng)上找到解決方案:
地址:https://blog.csdn.net/jasonhwang/article/details/115287437
Linux ssh 網(wǎng)絡(luò) 虛擬化
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。