1.安装KVM 

  grep -Ei 'vmx|svm' /proc/cpuinfo|more  #查看硬件是否支持虚拟化

yum install -y virt-* libvirt qemu-img  #安装KVM虚拟机

lsmod | grep kvm  #是否支持kvm模块

systemctl enable libvirtd  #系统启动时自动启动kvm服务

systemctl start libvirtd  #启动kvm服务

常用操作:

virsh list --all  #查看本机创建的kvm虚拟机列表

virsh start 虚拟机名  #启动

virsh shutdown 虚拟机名  #关闭

virsh autostart 虚拟机名  #配置开机自启动虚拟机

默认虚拟机存储位置:  /var/lib/libvirt/images/

2.安装Cockpit运维工具

yum install cockpit  #安装 cockpit

systemctl enable --now cockpit.socket  #开机自启动cockpit

yum install cockpit-machines  #安装软件包使cockpit支持WEB管理

firewall-cmd --add-service=cockpit --permanent  #打开防火墙与cockpit相关的策略
  firewall-cmd --reload

访问: 使用9090端口通过浏览器访问 开始创建kvm虚拟机吧

3.在kvm中新建的虚拟机使用NAT网络时, 把虚拟机端口映射到宿主机上,使通过公网可访问虚拟机端口
  添加相应的iptables策略:
    添加filter 表的forward链
    iptables -I FORWARD -m state -d 192.168.122.0/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT
    添加nat 表的prerouting链, 例: 公网2538端口映射到虚拟机192.168.122.199的22端口
    iptables -t nat -I PREROUTING -p tcp --dport 2538 -j DNAT --to-destination 192.168.122.199:22

查看一下策略还在不在
     iptables -L -n -t nat|grep 2538
=========================================================================

正常工作:
iptables -I FORWARD -d 0.0.0.0/0 -j ACCEPT
firewall-cmd --zone=public --add-forward-port=port=2538:proto=tcp:toport=22:toaddr=192.168.122.199

不正常工作:
firewall-cmd --permanent --zone=public --direct --add-rule ipv4 filter FORWARD 0 -d 0.0.0.0/0 -j ACCEPT
firewall-cmd --permanent --zone=public --add-forward-port=port=2538:proto=tcp:toport=22:toaddr=192.168.122.199

4.命令方式创建虚拟机:

命令创建虚拟机: 名称为ubuntu-01,4G内存,2个CPU,50G的qcow2格式磁盘,网络为桥接口virbr0
virt-install --name ubuntu-01 --memory 4096 --vcpus 2 --cdrom=/data/ubuntu-20.10.iso --disk size=50 --network=bridge:virbr0,model=virtio

命令行连接虚拟机:
virsh console --domain ubuntu-01 --force

centos8.5安装kvm及kvm虚拟机的端口映射问题的更多相关文章

  1. Linux安装VritualBox实现虚拟机win2003端口映射 支持远程

    1. 使用VNC登录到Linux系统 2. 安装VritualBox 找到VritualBox的软件包 这里的是run格式的 可以直接在终端运行  需要几分钟时间 3.VritualBox新建虚拟机 ...

  2. 虚拟机kali端口映射外网vps

    前言:我们常用的kali系统一般都是在虚拟机里面运行,这样在真实环境中外网是访问不到你的kali攻击机的,这时候我们就需要给kali映射一个外网vps. 一.在vps启动frp 服务端 安装frp并解 ...

  3. 详解VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射

    本文以VirtualBox为例 如果出现主机无法ping通虚拟机的情况,请首先确认虚拟机防火墙已关闭. 一.NAT模式 特点: 1.如果主机可以上网,虚拟机可以上网 2.虚拟机之间不能ping通 3. ...

  4. VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射

    一.NAT模式 特点: 1.如果主机可以上网,虚拟机可以上网 2.虚拟机之间不能ping通 3.虚拟机可以ping通主机(此时ping虚拟机的网关,即是ping主机) 4.主机不能ping通虚拟机 应 ...

  5. Python 3 虚拟机端口映射 VMware

    编程语言(以Python 3 为例子) 编程语言最开始就是机器语言(低级语言,计算机能认识:0101... 最底层的指令代码),学习很困难.现在用机器语言的很少,芯片厂商的技术人员来编程之外:发展下来 ...

  6. 在CentOS6的上安装Windows2012R2的KVM虚拟机

    在CentOS6的上安装Windows2012R2的KVM虚拟机 1:上传cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso下载驱 ...

  7. KVM下windows虚拟机使用virtio驱动

    KVM下windows虚拟机默认disk使用的是Qemu IDE硬盘,网卡默认是rtl8139网卡.为了使kvm主机在相同的配置下,有更好的效率,可以将网卡和磁盘替换成virtio的驱动. windo ...

  8. CentOS 7 安装配置KVM 通过KVM安装CentOS系统

    搭建环境 : CentOS 7 [root@KVM ~]# systemctl stop firewalld [root@KVM ~]# systemctl disable firewalld [ro ...

  9. kvm创建新虚拟机

    安装图形化管理界面yum install virt-manager -y 安装好之后 新建虚拟机,我使用的方法是使用ISO镜像文件安装 选择镜像 设置内存 如此,一步一步走下去即可,不再截图 创建好之 ...

  10. kvm虚拟机最佳实践系列2-创建KVM及KVM优化

    创建KVM及KVM优化 把KVM优化与KVM创建放在一起,是因为我们创建的KVM是要用在生产环境中,所以基础优化工作是必备的. 创建KVM 创建系统盘, 大小: 操作系统通常都不到10G,所以系统盘2 ...

随机推荐

  1. opencv-python 批量更改图像分辨率并且保留图像原有的透明度

    opencv-python环境安装:https://www.cnblogs.com/technicist/p/17138657.html 案例代码(批量压缩图像分辨率为原来的一半,例如2400*139 ...

  2. win10bug可导致系统崩溃

    1.使用浏览器访问访问路径:\\.\globalroot\device\condrv\kernelconnect会立刻导致系统崩溃.会影响Windows10 1709及以上版本 2.使用以下代码保存成 ...

  3. [PHP]流程控制的替代语法:endif/endwhile/endfor使用介绍

    我们经常在wordpress一类博客程序的模板里面看到很多奇怪的PHP语法,比如: 代码如下: <?php if(empty($GET_['a'])): ?> <font color ...

  4. js计算时间为刚刚、几分钟前、几小时前、几天前··

    //dateTimeStamp是一个时间毫秒,注意时间戳是秒的形式,在这个毫秒的基础上除以1000,就是十位数的时间戳.13位数的都是时间毫秒.     function timeago(dateTi ...

  5. 浅谈flume

    flume做日志收集的工具,将数据源导入到指定目标中.flume之间可以相互连接组件    source:如何从数据源中取数据,可以认为是两种主动source(主动取数据)和被动source(推给so ...

  6. kail 系统更新

    原文链接:https://blog.csdn.net/aiming66/article/details/123203495

  7. mysql 当年所有月份列表

    -- 不依赖任何表,只是用mysql自带函数方法select concat((select year(now())),'-01') as `date`union select concat((sele ...

  8. laravel-hash表的简单使用

  9. PageHelper大致逻辑

    简单涉及以下几个类: PageHelper   PageMethod  PageParam PageInterceptor  implement Interceptor PageHelperAutoC ...

  10. nginx通过参数代理到其他站点

    http { include mime.types; default_type application/octet-stream; resolver 8.8.8.8; ##Nginx0.6.18以后的 ...