PVE 虚拟机安装 Ubuntu Server V24 系统 —— 一步一步安装配置基于 Ubuntu Server 的 NodeJS 服务器详细实录1

前言

最近在基于 NodeJS V22 写一个全栈的项目,写好了,当然需要配置服务器部署啦。这个过程对于熟手来说,还是不复杂的,但是对于很多新手来说,可能稍微有点困难。所以,我把整个过程全部记录一下。

熟悉我博客的朋友知道,我一直是使用 CentoOS 操作系统的。只是由于 RedHat 的一些骚操作,我感觉还是另投别家比较好,选择服务器的操作系统,一定要选择主流的,这样在需要帮助的时候,更容易获得资料。

而现在,我选择的是 Ubuntu V24.04.2 LTS 这个版本。一定要注意的是,我们要选择 LTS 的版本,这表示,这是一个受到长期支持的版本。

下载 Ubuntu V24 Serve 系统镜像

我们可以去官方网站下载 https://ubuntu.com/download/server

Ubuntu官网下载
但是,我更推荐大家去阿里云下载,速度会更快一些。

阿里云开源镜像站: https://developer.aliyun.com/mirror/

阿里云下载 Ubuntu 镜像文件
下载好系统镜像文件备用。

上传镜像文件到 PVE
登录 PVE 管理后台,在菜单里点击 local ,在出现的子菜单里点击 IOS 镜像,然后点击 上传按钮,把我们刚刚下载的镜像给上传进去即可。

PVE 虚拟主机设置

由于我自己使用的是苹果芯片的 Mac 系统,所以在我机器上安装的虚拟主机只支持 arm 架构的系统。而我们正常在云服务商那边购买的主机,是 x86-64 的架构(也就是 amd64架构),所以,我在我本机虚拟机安装 Ubuntu 没有啥参考意义,因此,我选择在我的软路由的 PVE 系统上,安装一个 Ubuntu 的系统以供我使用。

具有我这个环境的可以参考,如果不具备我这个环境,可以使用其他的虚拟机软件来安装,没啥本质区别。

创建虚拟机

  1. 创建一个虚拟机,输入虚拟机的名称,我这边输入的是 UbuntuTest 然后点击下一步。

选择镜像文件

  1. 选择镜像文件,就是我们刚刚下载的系统镜像。
  2. 在系统界面啥都不改,直接点下一步。

磁盘界面
4. 根据实际情况,在磁盘界面,输入你希望的磁盘大小,我这边是 32G 足够使用,我们点下一步。

CPU设置界面
5. CPU 设置界面,类别,我们选择 HOST,核心我们设置为 2 核心。根据宿主机的实际配置进行微调即可。

内存设置界面

  1. 在内存设置界面里,我把内存调整为 4096 也就是4个G 的内存。
    网络设置界面

  2. 在网络设置界面,保持默认,默认配置是桥接一个虚拟网卡。我们点击下一步。

确认设置界面

最后我们在确认界面可以看到我们之前的所有配置,确认没问题,点击完成,就创建好了我们的虚拟机了。

虚拟机创建完成

Ubuntu 系统安装

在 PVE 左侧,我们点击我们刚刚创建的主机,就可以看到我们的虚拟主机概要了。我们点击子菜单的控制台,即可进入系统安装的过程。

虚拟机控制台
我们进入控制台后,点击 Start Now 开始系统安装

Ubuntu 菜单界面

进入菜单界面后,我们选择 Try or Install Ubuntu Server 项,直接回车,即可进入加载跑码阶段。

Ubuntu 语言选择界面
在跑码完成后,就进入到了 Ubuntu 语言选择界面,我们这里选择英语,然后回车。

键盘设置

键盘设置,我们也选择英语(也就是保持默认)回车。

Ubuntu 安装类型选择

在 Ubuntu 安装类型选择界面,我们选择 Ubuntu Server minimized 也就是最小化的模式进行安装。我们按 Tab 键进行焦点的切换,到 minimized 掐面的括号内,我们按空格确认,然后,继续 按Tab键 切换到 Done 上,回车。

Ubuntu 网络设置界面
然后就是 Ubuntu 网络设置界面了,这边,我们可以看到已经自动分配了一个IP,这里,我不想用这个自动分配的 IP,所以,需要编辑一下,按 Tab 键 将焦点切换到网卡上,按空格呼出菜单

网卡编辑菜单
在网卡编辑菜单,我们选择 Edit IPv4 ,按空格确认

IP设置
现在是自动获取 DHCP,我们按空格呼出菜单

IP设置菜单

进入菜单界面,我们选择 Manual,手动配置,按空格确认。

IP 网络配置
Subnet 是网段的意思,我这边网段是 192.168.8.0-255,所以我这边填写的是 192.168.8.0/24 。

有些人说着是子网掩码,不是的哈,子网掩码是 255.255.255.0 这样滴东西

IP地址和 IP网关,一眼就能看明白。

但 Name Servers 可能看不懂,这个其实是填写 DNS 服务器的IP,我这边填写了谷歌的两个DNS服务器地址。

最后那个玩意儿留空,最后 Tab 键到 Save 上,回车确认。

回头网络配置界面,我们 Tab 到 Done 上回车,进入下一个界面。

网络代理配置

下一个界面是网络代理配置,这里,我们不需要配置,直接回车进入下一个界面。

系统源地址配置

OK,这里是最坑的哈!注意!千万不要手快回车,否则,安装过程中卡死你。

这里是 系统源地址配置,默认配置的是 Ubuntu 官方的源地址,但是在国内访问官方的源的速度非常慢,所以这里一定要改成国内源的地址。

我推荐阿里云的源地址: https://mirrors.aliyun.com/ubuntu/

Tab 键到文本框,del 或 backspace 键删除原有内容,然后手动输入上面的网址,然后 Tab 键切换焦点,随后会加载阿里源的信息,速度很快。

切换到 Done 回车,进入下一步。

系统安装位置设置
然后是系统安装位置,我们这里不做调整,就是直接安装在我们一开始设置的虚拟机的硬盘上,Tab 切换焦点到 Done 回车进入下一步。

分区信息
这里是它计划的分区信息,一般情况下,不需要调整,我们直接 Done 下一步。

格式化硬盘警告

然后进入到了确认格式化硬盘的弹窗,我们方向键移动到 Continue 上回车,嘿嘿,还标红吓唬咱嘞。

账号信息设置
下一个界面是账号设置,根据自己的情况填写

专业服务选择
这里提示是否需要专业服务,我们选择 Skip for now

然后焦点在 Continue 上回车

安装 SSH
这里,是安装 SSH 界面,我们用空格键选上,然后下面可以导入 SSH KEY,这里我们先跳过,直接进入下一步。

SSH 服务特别重要,只有安装了这个服务,我们才能远程访问虚拟机。

Tab 到 Done 上按回车。

一些包的选择
这里提供一些库,可以在安装系统的同事安装进去,这里,我们不选择任何内容,Tab 到 Done 上按回车进入下一步。

安装过程

然后就进入了安装过程了,下面开始转圈圈,如果你想看看发生了什么,可以将焦点切换到 View full log 按回车查看。

安装完成

跑码结束后,就安装完成了,我们将焦点 tab 到 Reboot now 上重启系统。

系统启动跑码

重启时,会跑码,虽然看不懂,但是觉得很帅。

登录界面

然后就进入到了系统登录界面了,我们输入用户名回车,然后输出密码回车,就可以进入系统了。

输入密码时,界面不会有任何变化,不用管,只管输入,然后回车即可。

进入系统

OK,然后我们就进入系统了。这篇文章应该图片占据了巨大的篇幅,有点过长了,我们这里先关机。

# 关机命令
shutdown now

PVE 虚拟机的收尾设置

移除光盘驱动器

关机后,我们点击 硬件 的菜单,然后点击 CD/DVD 驱动器,然后点击 移除 按钮,移除光驱。

确认移除光驱
我们点击

启动顺序
去除网络启动
设置启动顺序,只保留硬盘启动即可。

小结

本文是基于 PVE 来进行安装 Ubuntu v24 server 系统的。可能大多数人用不到 PVE 系统吧,但是中间部分的 Ubuntu 安装是一样的。

明儿我继续后面的内容,计划是写如下:

《PVE虚拟机 安装 Ubuntu Server 系统》
《SSH 配置,让我们远程连上虚拟机》
《服务器软件更新,以及常用软件安装》
《配置服务器终端环境 zsh , oh my zsh, vim》
《NVM 安装 NodeJS环境,以及 PNPM 的安装》
《Nginx 和 Mysql 的安装和配置》
《pm2 服务端进程管理的使用和配置》

等等,当然,如果各位看官有想看的内容,也可以在评论区留言,我可以安排上。

如果本文对各位看官有点增益,一定要收藏点赞留言,多多关注哦!

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

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

相关文章

【JUC】深入解析 JUC 并发编程:单例模式、懒汉模式、饿汉模式、及懒汉模式线程安全问题解析和使用 volatile 解决内存可见性问题与指令重排序问题

单例模式 单例模式确保某个类在程序中只有一个实例,避免多次创建实例(禁止多次使用new)。 要实现这一点,关键在于将类的所有构造方法声明为private。 这样,在类外部无法直接访问构造方法,new操作会在编译…

2. 库的操作

2.1 创建数据库 语法: CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specification: [DEFAULT] CHARACTER SET charset_name # 字符集: 存储编码 [DEFAULT] COLLATE collation_name # 校验集: 比较/选择/读…

道可云人工智能每日资讯|北京农业人工智能与机器人研究院揭牌

道可云人工智能&元宇宙每日简报(2025年6月3日)讯,今日人工智能&元宇宙新鲜事有: 北京农业人工智能与机器人研究院揭牌 5月30日,北京市农业农村局、北京市海淀区人民政府、北京市农林科学院共同主办北京农业人…

【JSON-to-Video】设置背景视频片断

目录 设置bgVideo字段 1. 设置bgVideo.videoList字段 2. 设置randomPlay字段 3. 设置complete字段 4. 调用API,制作视频 欢迎来到JSON转视频系列教程。今天要教大家如何添加背景视频片断,在视频制作中,巧妙运用背景视频,能为…

星闪开发之Server-Client 指令交互控制红灯亮灭案例解析(SLE_LED详解)

系列文章目录 星闪开发之Server-Client 指令交互控制红灯亮灭的全流程解析(SLE_LED详解) 文章目录 系列文章目录前言一、项目地址二、客户端1.SLE_LED_Client\inc\SLE_LED_Client.h2.SLE_LED_Client\src\SLE_LED_Client.c头文件与依赖管理宏定义与全局变…

Linux shell练习题

Shell 1. 判断~/bigdata.txt 是否存在,若已存在则打印出”该文件已存在“,如不存在,则输出打印:”该文件不存在“ if [ -f ./bigdata.txt ];then echo "文件存在" else echo "文件不存在" fi2. 判断~/bigd…

Linux基本指令(三)

接上之前的文章,咱继续分享Linux的基本指令,Linux指令比较多,很难全部记住需要做笔记对常用的指令进行记录,方便以后复习查找,做笔记也可以对知识理解更加深刻。 目录 时间相关指令 date显示 时间戳 cal指令 ​编…

WebRTC中sdp多媒体会话协议报文详细解读

sdp介绍 在WebRTC(Web实时通信)中,SDP(Session Description Protocol)是用来描述和协商多媒体会话的协议。它定义了会话的参数和媒体流的信息,如音视频编码格式、传输方式、网络地址等。SDP是WebRTC中一个…

【MySQL】 约束

一、约束的定义 MySQL 约束是用于限制表中数据的规则,确保数据的 准确性 和 一致性 。约束可以在创建表时定义,也可以在表创建后通过修改表结构添加。 二、常见的约束类型 2.1 NOT NULL 非空约束 加了非空约束的列不能为 NULL 值,如果可以…

【.net core】【watercloud】树形组件combotree导入及调用

源码下载:combotree: 基于layui及zTree的树下拉框组件 链接中提供了组件的基本使用方法 框架修改内容 1.文件导入(路径可更具自身情况自行设定) 解压后将文件夹放在图示路径下,修改文件夹名称为combotree 2.设置路径(设置layu…

ES101系列07 | 分布式系统和分页

本篇文章主要讲解 ElasticSearch 中分布式系统的概念,包括节点、分片和并发控制等,同时还会提到分页遍历和深度遍历问题的解决方案。 节点 节点是一个 ElasticSearch 示例 其本质就是一个 Java 进程一个机器上可以运行多个示例但生产环境推荐只运行一个…

CppCon 2015 学习:3D Face Tracking and Reconstruction using Modern C++

1. 3D面部追踪和重建是什么? 3D面部追踪(3D Face Tracking): 实时检测并追踪人脸在三维空间中的位置和姿态(如转头、点头、表情变化等),通常基于摄像头捕获的视频帧。3D面部重建(3D…

代码中的问题及解决方法

目录 YOLOX1. AttributeError: VOCDetection object has no attribute cache2. ValueError: operands could not be broadcast together with shapes (8,5) (0,)3. windows远程查看服务器的tensorboard4. AttributeError: int object has no attribute numel YOLOX 1. Attribu…

【JVM】Java类加载机制

【JVM】Java类加载机制 什么是类加载? 在 Java 的世界里,每一个类或接口在经过编译后,都会生成对应的 .class 字节码文件。 所谓类加载机制,就是 JVM 将这些 .class 文件中的二进制数据加载到内存中,并对其进行校验…

vue的监听属性watch的详解

文章目录 1. 监听属性 watch2. 常规用法3. 监听对象和route变化4. 使用场景 1. 监听属性 watch watch 是一个对象,键是需要观察的表达式,用于观察 Vue 实例上的一个表达式或者一个函数计算结果的变化。回调函数的参数是新值和旧值。值也可以是方法名&am…

如何在 Ubuntu 24.04 服务器上安装 Apache Solr

Apache Solr 是一个免费、开源的搜索平台,广泛应用于实时索引。其强大的可扩展性和容错能力使其在高流量互联网场景下表现优异。 Solr 基于 Java 开发,提供了分布式索引、复制、负载均衡及自动故障转移和恢复等功能。 本教程将指导您如何在 Ubuntu 24.…

Linux内核中TCP三次握手的实现机制详解

TCP三次握手是建立可靠网络连接的核心过程,其在内核中的实现涉及复杂的协议栈协作。本文将深入分析Linux内核中三次握手的实现机制,涵盖客户端与服务端的分工、关键函数调用、协议号验证及数据包处理流程。 一、三次握手的整体流程 三次握手分为三个阶段,客户端与服务端通过…

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…

优化 Spring Boot API 性能:利用 GZIP 压缩处理大型有效载荷

引言 在构建需要处理和传输大量数据的API服务时,响应时间是一个关键的性能指标。一个常见的场景是,即使后端逻辑和数据库查询已得到充分优化,当API端点返回大型数据集(例如,数千条记录的列表)时&#xff0…

【WPF】WPF 项目实战:构建一个可增删、排序的光源类型管理界面(含源码)

💡WPF 项目实战:构建一个可增删、排序的光源类型管理界面(含源码) 在实际的图像处理项目中,我们经常需要对“光源类型”进行筛选或管理。今天我们来一步步构建一个实用的 WPF 界面,实现以下功能&#xff1…