loading

运维

linux-让kvm虚拟机开放服务端口

namesilo全网最便宜域名注册商,输入折扣码:nsilo20立减1美元!

前言

一直都是使用的虚拟机是kvm,而且都习惯用nat网络模式,但是有时候遇到需要测试一些服务,而且需要测试机访问kvm虚拟机里面的服务。
linux-让kvm虚拟机开放服务端口
这时候有两种解决方式,一种是使用桥接,一种是使用端口转发。我更倾向于后者,因为我的虚拟机不需要长时间提供服务,使用nat可以更好的隔离。
linux-让kvm虚拟机开放服务端口
桥接
如上图:
网桥方式配置步骤
1、编辑修改网络设备脚本文件,增加网桥设备br0

vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=static
IPADDR=192.168.123.22
NETMASK=255.255.255.0
GATEWAY=192.168.123.1
DEFROUTE=yes

上述配置将虚拟网卡配置在了192.168.123.* 网段。如果不需要静态地址,可以把配置地址的相关项屏蔽。如:

DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=dhcp

2、编辑修改网络设备脚本文件,修改网卡设备eth0

vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE=Ethernet
BOOTPROTO=none
BRIDGE="br0"
NAME="System eth0"
HWADDR=90:48:9a:1c:09:af

虚拟机机配置
虚拟机安装时注意,网络要选择用br0桥接方式。
图形化的方式:
linux-让kvm虚拟机开放服务端口
文本方式:
编辑修改虚拟机配置文件 /etc/libvirt/qemu/v1.xml,增加如下内容

<interface type='bridge'>

<mac address='52:54:00:da:c3:dc'/>

<source bridge='br0'/>

<model type='virtio'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>

</interface>

虚拟机启动后,验证网络接口是否正常:

brctl show
bridge name bridge id STP enabled interfaces
br0 8000.4437e64a62ad no eth0
vnet0

NAT
linux-让kvm虚拟机开放服务端口
默认就有nat支持,需要另外的操作,在图形操作里面直接选择nat就可以。
linux-让kvm虚拟机开放服务端口
服务端口开放
linux-让kvm虚拟机开放服务端口
1、桥接的虚拟机直接在,iptables里面开放服务访问就可以直接访问了,不需要经过宿主机的规则限制。

2、nat模式,默认所有的端口只是对虚拟机的网段开放而已,如果需要开放端口,就需要设置端口转发,可以利用一些端口转发工具,也可以直接用iptables。

例子,其中192.168.122.10是我的虚拟机,192.168.122.1是宿主机的IP,需要设置ip_forwad参数

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.122.10:80
iptables -t nat -A POSTROUTING -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.122.1
echo 1 > /proc/sys/net/ipv4/ip_forward
这样子,我直接访问我宿主机的80端口,就会转发到虚拟机里面的服务了。

(0)

本文由 podipod软库网 作者:Anonymous 发表,转载请注明来源!

关键词:, ,
全国计算机等级考试题库

热评文章

发表评论