vncserver远程管理kvm虚拟机

news2024/11/14 17:45:05

一、安装KVM

检查服务器是否支持虚拟化(vmx为interl平台、svm是AMD平台):

grep -E -o 'vmx|svm' /proc/cpuinfo

安装KVM所需软件包:

yum groupinstall kvm

或者:

yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager libvirt libvirt-python python-virtinst bridge-utils

检查是否安装成功:

lsmod |grep kvm

二、Centos安装vncserver

VNC管理KVM示意图:

配置软件仓库:

rm -rf /etc/yum.repos.d/*

cat > /etc/yum.repos.d/repo.repo <<END
[baseos]
name=baseos
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/8/BaseOS/x86_64/os/
gpgcheck=0
[appstream]
name=appstream
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/8/AppStream/x86_64/os/
gpgcheck=0
END

安装图形界面:

yum -y group install "Server With GUI"

也可以安装桌面环境:

yum groupinstall Desktop -y

更新系统:

rm -rf /etc/yum.repos.d/*

cat > /etc/yum.repos.d/repo.repo <<END
[baseos]
name=baseos
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/8/BaseOS/x86_64/os/
gpgcheck=0
[appstream]
name=appstream
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/8/AppStream/x86_64/os/
gpgcheck=0
END

yum -y update

重启系统:

reboot

安装 tigervnc-server和字体编译器(防止远程出现乱码):

yum -y install tigervnc-server fontforge

设置yyds用户的vnc密码,yyds用户:

vncpasswd

有时不配服务器起不来,重新加载服务唤醒配置文件:

vncserver

设置systemd文件:

vim /etc/systemd/system/vncserver@.service

[Unit]
Description=Remote Desktop VNC Service
After=syslog.target network.target
[Service]
Type=forking
WorkingDirectory=/home/yyds
User=yyds
Group=yyds
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver -autokill %i
ExecStop=/usr/bin/vncserver -kill %i
[Install]
WantedBy=multi-user.target

启动服务:

systemctl daemon-reload
systemctl enable vncserver@:20.service --now

关闭Selinu、防火墙放行:

firewall-cmd --add-port=5920/tcp
firewall-cmd --add-port=5920/tcp --per

更改默认登陆用户和远程分辨率:

vi /etc/sysconfig/vncservers   

VNCSERVERS="1:root"
VNCSERVERARGS[2]="-geometry 1024X768 -nolisten tcp -localhost"

三、Ubuntu安装vncserver

更新软件仓库缓存:

apt update -y

安装轻量级图形界面:

apt -y install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

安装 tigervnc-server:

apt -y install tigervnc-standalone-server tigervnc-common

配置vnc使用xfce图形:

想要图形连接,需要配置xfce,想让哪个用户使用vnc,就在哪个用户的家目录下创建配置文件。

vim ~yyds/.vnc/xstartup

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4

chmod +x ~yyds/.vnc/xstartup

测试vnc服务:

#yyds用户做如下操作
vncpasswd
vncserver :30 -localhost no

#kill掉vnc进程
vncserver -kill :30

:30就是设置5930作为vnc服务的端口,vnc是明文传输,为了安全考虑只会监听本地的localhost,所以设置-localhost no监听所有端口,可以让其他IP进行访问。

 VNC访问ubuntu虚拟机:

显示的图形界面是xfce轻量级图形界面,不是ubuntu本身的图形界面。

要显示ubuntu原来的图形,安装 GNOME 图形界面。

如果要重启ubuntu,需要自己设置systemd文件,让5930端口自启动:

vim /etc/systemd/system/vncserver@.service

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
User=yyds
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i  -alwaysshared -fg -localhost no
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

启动服务:

systemctl daemon-reload
systemctl enable vncserver@30.service --now

四、配置桥口 

主要用于KVM虚拟机中安装虚拟机,可以和真是机互通并可出外网。

创建桥口br0:

cp /etc/sysconfig/network-script/ifcfg-eth0 /etc/sysconfig/network-script/ifcfg-br0    

vi /etc/sysconfig/network-script/ifcfg-br0
DEVICE="br0"
BOOTPROTO="static"
#HWADDR="………………"   #前面加井号注释掉MAC地址,因为是eth0上拷贝的
ONBOOT="yes"
TYPE="Bridge"
IPADDR=X.X.X.X
NETMASK=X.X.X.X
GATEWAY=X.X.X.X


vi /etc/sysconfig/network-script/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="………………"    #默认
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=X.X.X.X
NETMASK=X.X.X.X
GATEWAY=X.X.X.X
BRIDGE="br0"

vi /etc/sysconfig/network-script/ifcfg-eth1
DEVICE="eth1
BOOTPROTO="static"
HWADDR="………………"  #默认
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=X.X.X.X
NETMASK=X.X.X.X
BRIDGE="br0"

创建脚本将下面的命令添加进去: 

vi bradd.sh                         

#!/bin/bash
brctl addbr br0           #添加网桥br0
brctl addif br0 eth0      #添加eth0 到br0中
brctl addif br0 eth1      #添加eth1 到br0中
service network restart  
service libvirtd restart

chmod 755 addbr.sh         #给bradd.sh赋予执行权限
nohup ./addbr.sh &         #在后台执行脚本中的指令

最后关闭NetworkManager,完成后再addbr.sh。

所属目录下找到nohup.out   这里面记录了操作日志,可帮助判断哪步执行失败。

五、配置远程连接

[root@localhost ~]# brctl show

bridge name bridge id STP enabled interfaces
virbr0 8000.5254009a0ee3 yes virbr0-nic

[root@localhost ~]# ifconfig virbr0
virbr0: flags=4163 mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:9a:0e:e3 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

把虚拟网卡添加到虚拟网桥中:

[root@localhost ~]# yum -y install bridge-utils
[root@localhost ~]# brctl addbr br0
[root@localhost ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000000000000 no
virbr0 8000.5254009a0ee3 yes virbr0-nic
[root@localhost ~]# brctl addif br0 ens33

执行此步后,会导致xshell与宿主机断开连接,以下操作在宿主机完成。

在虚拟机上删除ens33上面的IP地址,将br0上面添加上固定IP地址:

[root@localhost ~]# ip addr del dev ens33 10.0.0.41/24
[root@localhost ~]# ifconfig br0 10.0.0.41/24 up
[root@localhost ~]# route add default gw 10.0.0.254
[root@localhost ~]# route -n

连接xshell查看是否生效:

此时宿主机的IP:10.0.0.41已经绑定到br0网卡;但是服务器重启后就不能生效了。

通过配置文件配置桥接设备永久生效,为kvm宿主机创建虚拟网卡,并将物理网卡作为桥设备。

[root@localhost ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

 

配置DNS:

[root@localhost ~]# vi /etc/resolv.conf
[root@localhost ~]# nameserver 223.5.5.5
[root@localhost ~]# ifup eth0

一般生产环境不能安装图形界面,远程访问没有安装GUI的Linux虚拟机上的图形服务,需要使用Xming配置图形转发,在windows的GUI上显示没有安装GUI的Linux图形界面,需要以下操作:

  • 在windows安装xming或Xmanager;
  • 连接linux配置DISPLAY环境变量;
  • 调用图形;

如果一个系统安装了图形界面X Server和firefox浏览器,那么进到这个系统的控制台或者远程桌面,就可以在命令行上输入firefox命令调出firefox的图形。

 

DISPLAY指定windows地址,后面0:0是Xming设置的number。 

xming把no GUI的Linux Firefox浏览器显示出来了。

因为我的主机是服务器,没有图形化界面,想要用virt-manager图形化安装虚拟机,还需要安装x-window。

[root@localhost ~]# grep X11Forwarding /etc/ssh/sshd_config --colour
X11Forwarding yes

[root@localhost ~]# yum install -y xorg-x11-font-utils.x86_64 xorg-x11-server-utils.x86_64 xorg-x11-utils.x86_64 xorg-x11-xauth.x86_64 xorg-x11-xinit.x86_64 xorg-x11-drv-ati-firmware
[root@localhost ~]# yum install virt-manager libvirt libvirt-Python python-virtinst libvirt-client virt-viewer qemu-kvm mesa-libglapi -y

[root@localhost ~]# yum install libXdmcp libXmu libxkbfile xkeyboard-config xorg-x11-xauth xorg-x11-xkb-utils -y
[root@localhost ~]#  systemctl restart libvirtd.service
[root@localhost ~]#  systemctl enable libvirtd.service

安装好Xming后,打开xshell,在连接属性的tunneing中,勾选Forwarding X11 connection to 选项,可以正常打开virt-manager的图形界面。

启动virt-manager:

断开xshell会话,重新连接,输入命令:virt-maager,就可以自动弹出kvm管理软件。

[root@localhost ~]# virt-manager

出现乱码,安装以下包:

[root@localhost ~]# yum -y install dejavn-sans-mono-fonts

 

如果ping不通外网,启动一下网卡,看看行不行,记得看一下你网卡的配置文件是否正确(桥接模式是否正确)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/67814.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据链路层-点对点PPP(point-to-point protocal)

点对点协议ppp是目前使用最广泛的点对点数据链路层协议 用户通过连接运营商的isp&#xff0c;用的就是pppoe协议pppoe ppp over ethernet ppp协议为点对点数据链路层协议的数据报提供了一个标准方法 封装成帧链路控制协议LCP&#xff0c;主要用于建立&#xff0c;配置&#xf…

【面试题】JSON.stringify 和fast-json-stringify有什么区别

前言 相信大家对JSON.stringify并不陌生&#xff0c;通常在很多场景下都会用到这个API&#xff0c;最常见的就是HTTP请求中的数据传输&#xff0c; 因为HTTP 协议是一个文本协议&#xff0c;传输的格式都是字符串&#xff0c;但我们在代码中常常操作的是 JSON 格式的数据&…

Flink系列之Flink中Window原理及实践

title: Flink系列 一、Flink Window 概述 官网链接&#xff1a; https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/dev/datastream/operators/windows/ 摘取一段话&#xff1a; Windows are at the heart of processing infinite streams. Windows split …

基于蒙特卡洛法的规模化电动车有序充放电及负荷预测(PythonMatlab实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f389;作者研究&#xff1a;&#x1f3c5;&#x1f3c5;&#x1f3c5;主要研究方向是电力系统和智能算法、机器学…

刷爆力扣之三个数的最大乘积

刷爆力扣之三个数的最大乘积 HELLO&#xff0c;各位看官大大好&#xff0c;我是阿呆 &#x1f648;&#x1f648;&#x1f648; 今天阿呆继续记录下力扣刷题过程&#xff0c;收录在专栏算法中 &#x1f61c;&#x1f61c;&#x1f61c; 该专栏按照不同类别标签进行刷题&#x…

运维实战100:CDH5.16.2升级至CDH6.3.2

本期来分享一个cdh企业运维实战案例 背景 为适应公司业务发展需求&#xff0c;提高相关大数据组件版本&#xff0c;解决开发中的一些技术问题和代码优化&#xff0c;需要将现有集群CDH版本由5.x版本升级为6.3.x版本&#xff0c;也是为了适配如Flink、Doris等一些计算引擎。由…

ArcGIS Pro从0到1入门实战教程 书籍淘宝线上销售,免费下载数据和视频

网址&#xff1a;https://m.tb.cn/h.USz9rbD?tkcu0Vd2cABAV 购书后五星好评&#xff0c;加下面微信&#xff0c;截图发给我们&#xff1a;送Python电子书&#xff0c;下面是我们的微信 关注翎树文化&#xff0c;获得更多好书信息 翎树文化 翎树文化致力于图书出版|科技文化|视…

leetcode:1203. 项目管理【双topo:组间topo + 组内topo】

目录题目截图题目分析ac code总结题目截图 题目分析 没有第一个条件&#xff0c;就是简单topo排序有了第一个条件&#xff0c;每个小组都需要完全隔开&#xff0c;因此不同小组间也需要一个topo排step1&#xff1a;对于group为-1的自成一组step2&#xff1a;建图&#xff0c;组…

什么是信息摘要?

信息摘要就是原数据通过某个算法生成的一个固定长度的单向Hash散列值&#xff08;PS:常用来生成信息摘要的算法有MD5与SHA算法)。固定长度得意思就是不论原文内容多大&#xff0c;其生成的信息摘要都是固定长度的。单向的意思是过程不可逆&#xff0c;即只能通过原始数据生成Ha…

Mybatis用到的设计模式

虽然我们都知道有26个设计模式&#xff0c;但是大多停留在概念层面&#xff0c;真实开发中很少遇到&#xff0c;Mybatis源码中使用了大量的设计模式&#xff0c;阅读源码并观察设计模式在其中的应用&#xff0c;能够更深入的理解设计模式。 Mybatis至少遇到了以下的设计模式的…

提高组比赛分析(1)

停更n个月&#xff0c;我又来了&#xff01; 今天打了场模拟赛&#xff0c;差点就AK IOI了 废话不多说 正片开始 题目一&#xff1a;#1751. 第 T 个数 Description 给定一个 n(0<n≤10000) 个整数构成的序列&#xff0c;每个数 a[i] 都是小于 210^9 的非负整数 &#x…

[附源码]Python计算机毕业设计SSM家居购物系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

yalmip和cplex安装步骤(Matlab)

&#x1f4cb;&#x1f4cb;&#x1f4cb;本文目录如下&#xff1a;⛳️⛳️⛳️ ​ 目录 1 yalmip和cplex的安装 1.1 yalmip安装 1.2 cplex安装过程 1 yalmip和cplex的安装 链接&#xff1a;https://pan.baidu.com/s/13One78qt1uSz92zNC6Xvlg 提取码&#xff1a;bicr --来…

websocket实践与浅入浅出

websocket实践与浅入浅出websocket与http的区别&#xff1f;websocket的应用场景&#xff1f;websocket通信方式websocket协议结构分布式下IM多端同步的实现方案TIP1. 心跳2. 多端同步3. wss4. otherwebsocket与http的区别&#xff1f; Http&#xff1a;请求与响应的模式&…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java校园招聘信息管理系统64f99

这个选题的话其实有很多的&#xff0c;就看你自己能接受怎么样的&#xff0c;比如可以做网站类、系统类、小程序类、安卓app、大数据类等等&#xff0c;这个也要看你个人能力和技术问题&#xff0c;如果技术小白或者有一点点基础的话建议选择网站类和系统类的&#xff0c;如果有…

关于NDK

libc_shared.so 在目前ndk的最新版本25.1.8937393中有4个libc_shared.so&#xff0c;用Everything搜索结果如下&#xff1a; 可以看到&#xff0c;大小最小的有4M多。 对于libc库&#xff0c;官方介绍在此&#xff0c;摘取一些片段如下&#xff1a; LLVM 的 libc 是 C 标准库…

[附源码]Python计算机毕业设计Django养生药膳推荐系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

Java学习多态之向下转型

目录 语法 注意事项 一、 二、 三、 举例说明 注意事项第二条的解释 总结 向下转型&#xff1a;解决向上转型中不能调用子类特有成员的问题 语法 子类类型 引用名 &#xff08;子类类型&#xff09;父类引用&#xff1b; 注意事项 一、 只能强转父类的引用&#x…

Windows子系统WSL2 (ubuntu安装 docker、nvidia-docker)

文章目录一、准备二、安装WSL2三、安装docker nvidia-docker附录&#xff1a;WSL与linux路径映射一、准备 第一步&#xff1a;【win R】输入winver 检查你的 Windows 版本&#xff0c;验证内部版本是否低于19041, 升级系统选择Dev 渠道 第二步&#xff1a;【控制面板】>…

基于RRT算法的最优动力学路径规划(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 RRT是Steven M. LaValle和James J. Kuffner Jr.提出的一种通过随机构建Space Filling Tree实现对非凸高维空间快速搜索的算法。…