政府网站建设硬件选型原则/长春seo网站排名
一、安装 VNC 服务器和桌面环境
Notebook实验
常用vnc服务
VNC (Virtual Network Computing) 是一种远程桌面协议,可以让你通过网络访问服务器的图形界面。
- TurboVNC:专为图形密集型应用设计,尤其适合 3D 可视化和高分辨率图像的远程传输。与 VirtualGL 集成后,可以有效利用服务器端 GPU 进行加速,适合科学计算、CAD 和其他图形密集型的场景。
- TigerVNC:在性能和图像质量之间提供良好平衡,支持 3D 应用。适合用户希望在一般的远程桌面应用和图形应用中获得较好体验的场景。
- RealVNC:为企业和专业用户设计,提供了较为完整的远程桌面解决方案,支持多设备远程连接,并且在付费版本中提供了更多的性能优化和安全特性。
- TightVNC:其压缩算法适合低带宽连接,虽然在图形密集型应用中表现不如 TurboVNC,但对于普通办公场景,它仍然是一个简单可靠的解决方案。
- X2Go:基于 NX 协议,支持低带宽环境下的高效远程连接,尤其适合多媒体和多显示器场景,并且在低延迟和高性能的图像传输上表现优异。
常用桌面环境:
-
Xfce Desktop 是一款轻量级的桌面环境,专为资源受限的系统设计。它具有简洁、快速、可定制的特点,用户界面清爽、现代,运行时占用系统资源极少。尽管轻量化,Xfce 仍然提供了常见的工具和应用程序,如文件管理器、终端模拟器、文本编辑器、图像查看器和音频播放器等。
-
KDE,全称 K Desktop Environment,是一个开源的桌面环境。它功能丰富、可高度定制,并提供用户友好的图形界面,旨在为 Linux 和类 UNIX 操作系统用户提供先进的用户体验。
-
MATE 是一个基于传统 GNOME 2 的轻量级桌面环境,旨在保留经典的桌面体验,提供简洁易用的界面,适合喜欢传统桌面风格的用户。
-
Cinnamon 是由 Linux Mint 开发的现代化桌面环境,设计目标是提供直观、易用且吸引人的用户体验。它为用户提供了一个熟悉、高效的桌面环境,结合了强大的功能和简洁的界面。
我选择xfce桌面和TurboVNC做下面的测试。
1. 选择镜像并开机
远程服务器,使用ubuntu开机,我是在bohrium平台开机,开机界面选择镜像ubuntu:22.04-py3.10开机,当然其他镜像也可以。
2. 安装所需的依赖包
在终端中运行以下命令,确保系统包管理器是最新的,并安装图形桌面环境和 VNC 服务器所需的包:
安装TurboVNC
wget -q -O- https://packagecloud.io/dcommander/turbovnc/gpgkey | gpg --dearmor >/etc/apt/trusted.gpg.d/TurboVNC.gpg
wget https://raw.githubusercontent.com/TurboVNC/repo/main/TurboVNC.list
mv TurboVNC.list /etc/apt/sources.list.d/
apt update && apt install turbovnc -y
安装完之后加一下软链(测试安装TightVNC和TigerVNC的时候是自动加上的)
ln -s /opt/TurboVNC/bin/vncserver /usr/bin/vncserver
ln -s /opt/TurboVNC/bin/Xvnc /usr/bin/Xvnc
ln -s /opt/TurboVNC/bin/vncconnect /usr/bin/vncconnect
ln -s /opt/TurboVNC/bin/vncpasswd /usr/bin/vncpasswd
ln -s /opt/TurboVNC/bin/vncviewer /usr/bin/vncviewer
ln -s /opt/TurboVNC/bin/webserver /usr/bin/webserver
cp /opt/TurboVNC/bin/xstartup.turbovnc /usr/bin/
apt install xfce4 xfce4-goodies -y
- xfce4: 轻量级桌面环境,适合远程使用。
- xfce4-goodies: 提供一些附加工具,提升桌面体验。
3.设置环境变量并启动 VNC
由于我们以 root 用户身份操作,需要确保 USER 环境变量正确设置。执行以下命令:
export USER=root
启动 VNC 服务器,并通过交互式命令设置访问密码:
vncserver
系统会提示你输入密码,确保选择一个安全的密码。之后,还会询问是否创建只读访问用户,根据需要选择。
关闭 VNC 服务
完成密码设置后,我们可以暂时关闭 VNC 服务:
vncserver -kill :1
其中 :1 是第一个 VNC 显示编号。如果你有多个 VNC 会话,请确保指定正确的编号。
4. 修改 VNC 配置,使用 XFCE 启动桌面环境
为了让 VNC 使用我们刚安装的 XFCE 桌面环境,需要修改启动配置文件。
编辑配置文件:
使用文本编辑器(如 vi 或 vim)打开配置文件:
vim ~/.vnc/xstartup
将文件内容替换为以下内容:
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
- xrdb $HOME/.Xresources:加载用户的 X 资源配置文件。
- startxfce4 &:启动 XFCE4 桌面环境。
5. 给vnc脚本添加执行权限
修改完配置文件后,赋予它执行权限:
chmod +x ~/.vnc/xstartup
6. 启动 VNC 服务器
现在可以重新启动 VNC 服务器了:
vncserver :1
如果配置正确,VNC 服务器将启动 XFCE 桌面环境。
二、安装noVnc
noVNC 是一个基于 HTML5 的 VNC 客户端,它允许你直接通过浏览器访问 VNC 会话,无需额外的客户端软件。
参考文档:https://github.com/novnc/noVNC
1. 下载 noVNC 源文件
我们将下载 noVNC 的最新稳定版本 (1.5.0),运行以下命令:
wget https://codeload.github.com/novnc/noVNC/tar.gz/refs/tags/v1.5.0 -O noVNC-1.5.0.tar.gz
2. 解压缩下载的文件
tar -zxvf noVNC-1.5.0.tar.gz -C /root/
3. 进入 noVNC 目录
切换到 noVNC 文件夹:
cd /root/noVNC-1.5.0
生成密钥
openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem
4. 启动 noVNC 代理
通过 noVNC 代理将 VNC 服务器的内容转发到网页上。运行以下命令:
./utils/novnc_proxy --vnc localhost:5901 --listen 0.0.0.0:50001 --cert self.pem --key self.pem --ssl-only --file-only
- –vnc localhost:5901:指定 VNC 服务地址,启动时通过 :n来指定 vncserver :1就是5901,:2就是5902,当然也可以通过-rfbport来指定具体的端口号。
- –listen 0.0.0.0:50001:指定 noVNC 监听的地址和端口,50001 是访问 noVNC 的端口。
- –cert和–key可以用刚才自己生成的证书
- –ssl-only 只允许ssl连接
- –file-only 禁止文件目录展示
其他参数参考文档:https://github.com/novnc/noVNC/blob/master/utils/novnc_proxy
5. 访问 noVNC
打开浏览器,访问服务器的 50001 端口,密码为上面vnc安装时设置的密码。请求地址格式如下:
https://<服务器IP地址>:50001/vnc.html?password=123456&autoconnect=true&reconnect=true&resize=remote
将 <服务器IP地址> 替换为你服务器的实际 IP 地址,即可在浏览器中看到远程桌面登录界面。输入你之前在 vncserver 步骤中设置的密码,即可连接到桌面环境。
三、安装常用软件
1. 支持中文
在终端中安装中文语言包
打开终端,执行以下命令安装中文语言包:
apt install language-pack-zh-hans language-pack-gnome-zh-hans
安装字体
为了正确显示中文字符,通常需要安装中文字体。可以执行以下命令来安装常见的中文字体包:
apt install fonts-wqy-zenhei
apt install fonts-wqy-microhei
2. 安装 Google Chrome浏览器
首先,下载 Google Chrome 安装包:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
然后,使用 dpkg 安装下载的包:
dpkg -i google-chrome-stable_current_amd64.deb
如果有依赖问题,运行以下命令来解决依赖关系后再重新安装:
apt --fix-broken install
在桌面环境下,通过命令行运行
google-chrome --no-sandbox
3. 安装OVITO
apt update
安装Qt所需的依赖库,包括libxcb相关的库。
apt install -y libxcb1 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render0 libxcb-render-util0 libxcb-shape0 libxcb-shm0 libxcb-sync1 libxcb-xfixes0 libxcb-xinerama0 libxcb-xkb1 libxkbcommon-x11-0 libxcb-cursor0
确保安装了其他必要的库,如libxkbcommon和libxkbcommon-x11。
apt install -y libxkbcommon0 libxkbcommon-x11-0
下载ovito并解压,双击安装目录下/bin/ovito,也可以创建桌面快捷方式
wget https://www.ovito.org/download/master/ovito-basic-3.10.6-x86_64.tar.xz
测试
4. 安装VESTA
wget https://jp-minerals.org/vesta/archives/testing/VESTA-gtk3-x86_64.tar.bz2
解压运行
相关文章:

Linux noVNC远程桌面(xfce)部署
一、安装 VNC 服务器和桌面环境 Notebook实验 常用vnc服务 VNC (Virtual Network Computing) 是一种远程桌面协议,可以让你通过网络访问服务器的图形界面。 TurboVNC:专为图形密集型应用设计,尤其适合 3D 可视化和高分辨率图像的远程传输…...

【网络安全】身份认证
1. 身份认证 1.1 定义 身份认证(Authentication)是确认用户身份的过程,确保只有授权的用户才能访问系统或资源。它通常涉及验证用户提供的凭证,如密码、生物特征或其他识别标志。 1.2 重要性 身份认证是信息安全的第一道防线&…...

LeetCode - #124 二叉树中的最大路径和(Top 100)
文章目录 前言1. 描述2. 示例3. 答案关于我们前言 本题为 LeetCode 前 100 高频题 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。 LeetCode 算法到目前我们已经更新到 123 期…...

Java:插入排序
目录 排序的概念 插入排序 直接插入排序 哈希排序 排序的概念 排序:所谓的排序,就是使一串记录,按照某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个…...

How FAR ARE WE FROM AGI?(ICLR AGI Workshop 2024)概览
关注B站可以观看更多实战教学视频:hallo128的个人空间 How FAR ARE WE FROM AGI?官网 How FAR ARE WE FROM AGI?(ICLR AGI Workshop 2024) 该研讨会将于2024年5月11日在奥地利维也纳以混合模式举行,作为 ICLR 2024年会议的一部…...

leetcode刷题day33|动态规划Part02(62.不同路径、63. 不同路径 II、 343.整数拆分、96.不同的二叉搜索树)
62.不同路径 机器人从(0 , 0) 位置出发,到(m - 1, n - 1)终点。 动规五部曲 1、确定dp数组(dp table)以及下标的含义 dp[i][j] :表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路…...

基于Python大数据的B站热门视频的数据分析及可视化系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…...

matlab-批处理图像质量变化并形成折线图 (PSNR)
%修改路径就能用,图片分辨率要一致 %clc;clear all;close all;tic;%清理内存 file_pathE:\test\resources\image\;% 批量图像所在的文件夹下 file_save_pathE:\test\resources\SaveImage\;% 要存储的地址 img_path_listdir(strcat(file_path,*.jpg));% 获取批量bm…...

[Doc][Ros2]ros2中Qos(Quality of Service,服务质量)介绍
在 ROS 2 中,QoS(Quality of Service,服务质量)是用于控制节点之间消息传递的可靠性、历史存储和数据持久性等方面的机制。通过 QoS 设置,用户可以更细粒度地控制消息传递的行为,确保在不同网络环境或应用场景中满足特定的通信需求。 几个常用的包: QoSProfile: 含义…...

SpringBoot日志集成-LogBack
Log4J:最早的Java日志框架之一,由Apache基金会发起,提供灵活而强大的日志记录机制JDK自带的日志框架:java.util.logging.Logg,是JDK1.4之后提供的日志API,已淘汰logback: logback一个开源的日志…...

Google BigTable架构详解
文章目录 什么是BigTable?架构图一、整体架构二、数据存储与索引存储模型 三、数据拆分与存储四、元数据管理五、读写流程 其他内容概览负载平衡其他存储和数据库选项 什么是BigTable? Bigtable是Google开发的一个高性能、可扩展的分布式存储系统,用于管理大规模…...

【python】如何切换ipynb的kernel至指定conda环境
需求介绍 打开(若无新建环境) 环境 conda env list conda activate cvml conda install ipykernel python -m ipykernel install --name cvml 以上完成后,打开jupyter 创建一个python文件 在kernel——>change kernel——>python[conda env:cvml] 参考资料…...

Linux【基础指令汇总】
目录 Linux命令的特点 1、文件管理 ls命令 cp命令 mkdir命令 mv命令 pwd命令 2、文档编辑 cat命令 echo命令 rm命令 tail命令 rmdir命令 3、系统管理 rpm命令 find命令 startx命令 uname命令 vmstat命令 4、磁盘管理 df命令 fdisk命令 lsblk命令 hdpar…...

SpringCloud-EurekaClient
创建Module pom.xml <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency> spring:application:name: provider # 应用程序的名称,…...

配置Scrapy项目
配置Scrapy项目是一个涉及多个步骤的过程,在上一篇博客中已经写了安装Scrapy、创建Scrapy项目的步骤。 接下来应该定义Item类、编写爬虫程序以及配置settings.py文件等。以下是一个详细的配置Scrapy项目的步骤: 一、定义Item类 在项目目录下…...

航顺芯片HK32MCU受邀出席汽车芯片国产化与技术创新闭门研讨会
[中国,北京,2024年9月21日]近日,深圳市航顺芯片技术研发有限公司(以下简称“航顺芯片”)产品总监郑增忠受邀出席由中国设备管理协会新能源汽车产业发展促进中心主办的“汽车芯片国产化与技术创新闭门研讨会”。 会上航…...

【深度学习】(6)--图像数据增强
文章目录 图像数据增强一、作用二、增强方法三、代码体现四、增强体现 总结 图像数据增强 数据增强(Data Augmentation),也称为数据增广,是一种在机器学习和深度学习中常用的技术,它通过对现有数据进行各种变换和处理…...

Vscode 远程切换Python虚拟环境
在VSCode中远程切换Python虚拟环境是一个涉及多个步骤的过程,包括安装必要的扩展、连接到远程服务器、创建或激活虚拟环境,并在VSCode中选择相应的Python解释器。以下是一个详细的步骤指南,包括代码示例,旨在帮助我们完成这一过程…...

Sqoop面试整理
Sqoop(SQL-to-Hadoop)是一个用于在Hadoop和关系型数据库之间传输数据的工具。以下是一些可能在Sqoop面试中会被问到的问题及其答案: 1. 什么是Sqoop?为什么使用它? 回答: Sqoop是一个用来在Hadoop和关系型数据库(如MySQL、Oracle、PostgreSQL等)之间高效传输大数据的工具…...

PyCharm 的安装和配置
环境要求: OS:Windows / macOS / Linux (此处使用 Windows 10 进行演示)Python:包括但不限于 Anaconda,miniconda,Python。在 Windows 下只要能找到 python.exe 即可 Download 进入 PyCharm 官网,选择对…...

【工具类:FastJsonRedisSerializer】
工具类:FastJsonRedisSerializer 依赖yml文件FastJsonRedisSerializer.java 依赖 <!-- 主要用于处理 JSON 数据的序列化和反序列化--><!-- 序列化:将对象转换为一种可以存储或传输的格式(如 JSON、XML、二进制等)…...

Spring Cloud Alibaba-(6)Spring Cloud Gateway【网关】
Spring Cloud Alibaba-(1)搭建项目环境 Spring Cloud Alibaba-(2)Nacos【服务注册与发现、配置管理】 Spring Cloud Alibaba-(3)OpenFeign【服务调用】 Spring Cloud Alibaba-(4)Sen…...

芯科科技2024年Works With开发者大会登陆上海,物联网和人工智能的变革性融合带来无限精彩
谷歌、三星等生态大厂将带来重磅演讲和圆桌讨论,亦可切身体验多样化无线技术实作 中国,北京 – 2024年9月25日 – 安全、智能无线连接技术领域的全球领导厂商Silicon Labs(亦称“芯科科技”,NASDAQ:SLAB)&a…...

华为OD机试 - 匿名信(Python/JS/C/C++ 2024 E卷 100分)
华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…...

Python习题 208:将二维列表数组转置
(编码)将以一下二维列表类型的数组 matrix 进行转置(注:不能用内置标准库及三方库)。 matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] 转置结果 [[1, 4, 7], [2, 5, 8], [3, 6, 9]] matrix = [[1, 2, 3],[4...
STM32F407HAL库输出互补PWM波以及死区时间计算
互补PWM波配置 STM32F407VET6的高级定时器TIM1、TIM8可以生成互补的PWM波,用HAL库配置非常方便。 我们使用高级定时器TIM1,选择一个通道(我这里选择通道二),然后选择PWM Generation CH2 CH2N。这里N的意思是互补&…...

matlab-对比两张图片的RGB分量的差值并形成直方图
%对比两张图片的RGB分量的差值并形成直方图,改个路径就能用,图片分辨率要一致 close all; clear all; clc; I1imread(E:\test\resources\image\1.jpg); I2imread(E:\test\resources\image\2.jpg); R1I1(:,:,1); G1I1(:,:,2); B1I1(:,:,3); R2I2(:,:,1…...

SpringBoot集成Matlab软件实战
在项目中处理矩阵等复杂数据结构的时候,可以用Matlab程序来运行,其优点是很多的。 专用工具箱和强大的矩阵运算能力:MATLAB 拥有强大的数学工具箱和优化工具箱,适合处理大规模矩阵运算以及水文模型的率定。MATLAB 的 Optimization…...

Java---异常及处理
一.异常 1.概念 程序的非正常执行。高级语言都有异常处理机制(C,Java) 2.一般处理异常的方法 Scanner sc new Scanner(System.in);System.out.println("请输入一个数字:");String s sc.nextLine();if (s.matches("[0-9]&qu…...

【开源免费】基于SpringBoot+Vue.JS网上购物商城(JAVA毕业设计)
本文项目编号 T 041 ,文末自助获取源码 \color{red}{T041,文末自助获取源码} T041,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 用例设计 六、核…...