外网访问 KVM 虚拟机
?
搭建環(huán)境:
物理機(jī): # cat /etc/redhat-release?
CentOS Linux release 7.5.1804 (Core)
虛擬機(jī): # cat /etc/redhat-release?
CentOS Linux release 7.4.1708 (Core)
KVM虛擬機(jī)連接到的是virt-manager創(chuàng)建的內(nèi)部網(wǎng)絡(luò),但是有時(shí)我們還需要能夠從外部網(wǎng)絡(luò)訪問到創(chuàng)建的虛擬機(jī) 。
虛擬機(jī)叫做客戶機(jī), 運(yùn)行虛擬機(jī)的物理機(jī)叫做宿主機(jī) 。
1,從外網(wǎng)訪問KVM?虛擬機(jī),在 /etc/sysconfig/network-scripts 目錄下,建立 ifcfg-br0 文件,并修改ifcfg-enp3s0(原主機(jī)IP配置)? 文件。
原理是:這個(gè)bridge是要將物理機(jī)的網(wǎng)口eno1和將來虛擬機(jī)的網(wǎng)口ens11連接起來。物理機(jī)的網(wǎng)口eno1就是“外網(wǎng)”地址了;因?yàn)長inux的bridge是二層的,所以這個(gè)網(wǎng)口eno1收到的包,也會(huì)被虛擬機(jī)的連在該bridge上的網(wǎng)口ens11看到。
?
2,修改 ifcfg-eno1 文件的目的在于將其和 br0 關(guān)聯(lián)起來。注意,這里的修改包括:
增加了一行? : BRIDGE=”br0”
原理:?讓br0真正地成為真正與外界交換機(jī)打交道的。換句話說,把原來的eno1變成了一個(gè)集線器(Hub),也就是bridge 。
# systemctl restart network # ifup br0 # ifconfig?
3,運(yùn)行 virt-manager ,雙擊所需要放到外網(wǎng)的虛擬機(jī),點(diǎn)擊菜單欄的燈泡進(jìn)入配置頁面:?
新增一塊網(wǎng)卡(NIC),注意,Network source選擇“Bridge br0: Host device eno1”, Device model選擇virtio 或 e1000
(切記:有時(shí)主機(jī)不斷重啟,可能導(dǎo)致虛擬主機(jī)的網(wǎng)卡上的——虛擬網(wǎng)絡(luò)接口模式變化,導(dǎo)致外網(wǎng)鏈接不上虛擬主機(jī)服務(wù))
因?yàn)槭切略鼍W(wǎng)卡,要重啟虛擬機(jī)。
?
4,在虛擬機(jī)內(nèi)確定新增網(wǎng)卡的設(shè)備名:
# ip addr? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
可以看到新增網(wǎng)卡的名字是 eth1,狀態(tài)是 down
5,??在 /etc/sysconfig/network-scripts 下新增文件 ifcfg-eth1?
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 ?/etc/sysconfig/network-scripts/ifcfg-eth1#?vim /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE="eth1" ONBOOT="yes" IPV6INIT="no" IPV4_FAILURE_FATAL="no" NM_CONTROLLED="no" TYPE="Ethernet" BOOTPROTO="static" IPADDR=192.168.0.237 PREFIX=24 GATEWAY=192.168.0.1# systemctl restart network?
?配置OK。可以從外網(wǎng)(其實(shí)也是局域網(wǎng))訪問該虛擬機(jī)啦。
5, 客戶端訪問測試:
理解的要點(diǎn):?
外界的物理交換機(jī)連接到了一臺(tái)Hub(即bridge)上,而物理機(jī)的enp3s0和虛擬機(jī)的eth1也都是接到了這個(gè)Hub上。?
于是,交換機(jī)轉(zhuǎn)發(fā)出來的報(bào)文,enp3s0和eth1都能看得到,并各自處理屬于各自的報(bào)文。
?
總結(jié)
以上是生活随笔為你收集整理的外网访问 KVM 虚拟机的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis的安装及使用
- 下一篇: 本地连接git 服务器方式:以及git连