当前位置: 首页 > news >正文

ubuntu22.04上安装win10虚拟机,并采用noVNC+frp,让远程通过web访问桌面

ubuntu22.04上安装win10虚拟机,并采用noVNC+frp,让远程通过web访问桌面

    • 一.相关知识
    • 二.操作步骤
      • 1.准备工作
        • A.安装ubuntu22.04
        • B.安装必须的软件包
        • C.为root用户设置密码[jack],并允许ssh登录
        • D.打开MobaXterm[支持X11Forwarding],通过ssh用root帐号登录ubuntu22.04,确认是否支持KVM,配置pci passthrough
      • 2.安装KVM
      • 3.准备依赖
      • 4.创建虚机
      • 5.将ubuntu22.04物理机上的目录映射进虚机
        • A.物理机上的配置过程
        • B.在虚机中安装virtiofs驱动,并启动服务,将物理机上的目录映射进虚机
      • 6.虚机中安装UltraVNC Server
      • 7.远程控制
        • A.方式一
        • B.方式二

演示视频:

ubuntu22.04上安装win10虚拟机

一.相关知识

  • ubuntu22如何安装kvm
  • kvm如何创建win10虚机
  • 如何通过noVNC连接虚机
  • ubuntu22如何实现端口转发
  • 如何在虚机与宿主机之间共享存储

二.操作步骤

1.准备工作

A.安装ubuntu22.04
  • 镜像下载
  • 在BIOS中开启VT-d
  • 默认安装
B.安装必须的软件包
sudo apt update
sudo apt install net-tools -y
sudo apt install openssh-server -y
sudo apt install vim -y
ifconfig # 获取IP
C.为root用户设置密码[jack],并允许ssh登录
export passwd=jack && printf "${passwd}\n${passwd}\n"  | sudo passwd root 
sudo sed -i "s/#PermitRootLogin.*/PermitRootLogin=yes/g" /etc/ssh/sshd_config
sudo systemctl restart sshd
D.打开MobaXterm[支持X11Forwarding],通过ssh用root帐号登录ubuntu22.04,确认是否支持KVM,配置pci passthrough
  • 运行xclock,确认可能显示界面
  • 确认是否支持KVM
    sudo apt install cpu-checker -y
    kvm-ok
    
    输出
    INFO: /dev/kvm exists
    KVM acceleration can be used
    
  • 开启pci passthrough
    sudo sed -i "s/GRUB_CMDLINE_LINUX=.*/GRUB_CMDLINE_LINUX=\"intel_iommu=on iommu=pt\"/g" /etc/default/grub
    sudo cat /etc/default/grub | grep -w "GRUB_CMDLINE_LINUX"
    
    输出
    GRUB_CMDLINE_LINUX="intel_iommu=on iommu=pt"
    
  • 重新创建引导
    sudo apt install grub-common -y#EFI模式
    sudo grub-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg#BIOS模式
    grub-mkconfig -o /boot/grub/grub.cfg#确认是否添加增加成功
    sudo cat /boot/efi/EFI/ubuntu/grub.cfg | grep "intel_iommu"
    
  • 重启系统:sudo reboot
  • 再次确认kernel启动参数是否添加成功
    sudo cat /proc/cmdline  | grep "intel_iommu"
    

2.安装KVM

sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients \bridge-utils virt-manager libvirt-daemon-config-network
sudo systemctl enable --now libvirtd
sudo systemctl start libvirtd
sudo virsh net-autostart default
sudo ifconfig virbr0

3.准备依赖

  • A.创建相关目录
# 磁盘镜像存储位置
sudo mkdir -p /var/lib/libvirt/images# ISO镜像存储位置
sudo mkdir -p /var/lib/libvirt/boot/# 创建虚机与宿主机之间的共享目录
sudo mkdir -p /home/kvm_share_data
sudo chmod 777 -R /home/kvm_share_data
  • B.下载KVM/QEMU Windows guest drivers[virtio-win]
wget -O /var/lib/libvirt/boot/virtio-win-0.1.266.iso \https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.266-1/virtio-win-0.1.266.iso
  • C.准备win10系统镜像

    • 在PC机上下载MediaCreationTool
    • 运行MediaCreationTool,下载Windows.iso安装镜像
    • 将Windows.iso拷贝到ubuntu22.04的/var/lib/libvirt/boot/目录下
  • D.下载UltraVNC Server

wget -O /home/kvm_share_data/UltraVNC_1_3_81_X64_Setup.exe \https://www.uvnc.eu/download/1381/UltraVNC_1_3_81_X64_Setup.exe

4.创建虚机

  • A.创建虚机
# 删除旧的虚机和镜像
virsh destroy win10
virsh undefine win10
sudo rm -f /var/lib/libvirt/images/win10.qcow2
virt-install \--virt-type=kvm \--name win10 \--ram 10240 \--vcpus=4 \--check path_in_use=off \--console pty,target_type=serial\--connect qemu:///system \--os-variant=win10 \--cdrom=/var/lib/libvirt/boot/Windows.iso \--disk path=/var/lib/libvirt/boot/virtio-win-0.1.266.iso,device=cdrom \--network=bridge=virbr0,model=virtio \--graphics vnc \--disk path=/var/lib/libvirt/images/win10.qcow2,size=20,bus=virtio,format=qcow2
  • B.系统安装
    • 选择Windows 10专业版本
    • 选择自定义安装
    • 点击加载驱动->浏览
    • 展开CD驱动器 virtio-win-0.1.266
    • 选择amd64/w10 目录,点击确定,之后点击下一步,安装Red Hat VirtIO SCSI controller驱动
    • 驱动安装成功后,可以显示磁盘,点击新建,应用,创建主分区,点击下一步,开始安装
  • C.安装virtio-win-gt-x64.exe
  • D.安装virtio-win-guest-tools.exe

5.将ubuntu22.04物理机上的目录映射进虚机

A.物理机上的配置过程
  • 关闭虚机
virsh shutdown win10
  • 编辑虚机
virsh edit win10
  • 分别在"domain"和"devices"部分添加以下代码:
<memoryBacking> <source type="memfd"/> <access mode="shared"/> 
</memoryBacking><filesystem type="mount" accessmode="passthrough"><driver type="virtiofs"/> <source dir="/home/kvm_share_data"/><target dir="kvm_share"/><address type="pci" domain="0x0000" bus="0x07" slot="0x00" function="0x0"/>
</filesystem>

/home/kvm_share_data
kvm_share:共享名

  • 启动虚拟
virsh start win10
  • 显示控制台
virt-viewer
B.在虚机中安装virtiofs驱动,并启动服务,将物理机上的目录映射进虚机
  • 下载链接
  • 安装winfsp
  • 打开任务管理器,选择服务Tab,找到VirtioFsSvc服务,开启该服务
  • 打开"我的电脑",可以看到名为kvm_share的磁盘

6.虚机中安装UltraVNC Server

  • 下载链接
  • 或使用共享目录中下载好的文件
  • 只选择UltraVNC Server
  • Select Additional Tasks界面中,全部选中
  • 右击任务栏上的图标,点击Admin Property,配置VNC Password
  • 点击Apply,完成配置
  • 获取虚机的IP,并记录

7.远程控制

A.方式一
  • 开启端口转发,将宿主机上的5901端口转发到虚机里的UltraVNC Server端口【5900】

    sudo apt install ncat -y
    sudo ncat --sh-exec "ncat 192.168.122.220 5900" -l 5901 --keep-open
    
  • 在windows PC机上,下载UltraVNC_1_3_81_X64_Setup.exe,安装UltraVNC Viewer

  • 通过UltraVNC Viewer,连接到ubuntu22.04的5901端口,远程控制win10虚机

B.方式二
  • 在ubuntu22.04宿主机上搭建noVNC,通过WEB控制虚机
    apt install -y git python3-pip
    pip3 install websockify
    git clone https://github.com/novnc/noVNC.git
    ./noVNC/utils/novnc_proxy --listen 10.22.4.111:6080 --vnc 192.168.122.220:5900
    
  • 在windows PC机上,打开浏览器,输入以下URL,即可通过WEB控制win10虚机
    http://10.22.4.111:6080/vnc.html?host=10.22.4.111&port=6080
    
  • 内网穿透参考 [可选] 如何通过frp内网穿透工具访问内网里的NVR、IPC等嵌入式设备

http://www.mrgr.cn/news/81448.html

相关文章:

  • VS2022+QT6.7 窗口置灰(遮罩)
  • java栈--数据结构
  • 美国辅料查询之FDA批准药用辅料数据库(IID数据库)
  • 硬件模块常使用的外部中断及中断优先级
  • 【全网首发】台湾省模型数据“去水印“说明(3Dtiles和osgb格式),全台湾省的模型数据,全域无水印AI处理,支持所有模型格式
  • springboot481基于springboot社区老人健康信息管理系统(论文+源码)_kaic
  • pip离线批量安装时报错No matching distribution found for【解决方案】
  • 【ES6复习笔记】箭头函数(5)
  • vulnhub靶场(Os-hacknos-3)
  • 【ES6复习笔记】模板字符串(3)
  • 【C++】设计模式
  • FreeSql
  • 【Rust自学】7.1. Package、Crate和定义Module
  • 【ES6复习笔记】函数参数的默认值(6)
  • 【Rust自学】6.4. 简单的控制流-if let
  • 【ES6复习笔记】let 和 const 命令(1)
  • 【ES6复习笔记】Promise对象详解(12)
  • 重温设计模式--5、职责链模式
  • 实现 QTreeWidget 中子节点勾选状态的递归更新功能只影响跟节点的状态父节点状态不受影响
  • 单片机:实现可调时钟(附带源码)
  • MarkItDown的使用(将Word、Excel、PDF等转换为Markdown格式)
  • Python|Pyppeteer实现自动化获取reCaptcha验证码图片以及提示词(29)
  • echarts地图可视化展示
  • RSICV国产芯片之CHV208
  • Datawhale-AI活动2024.12.24
  • Linux大数据方向shell