PVE相关的各种一键脚本(Various one-click scripts related to PVE)(一键安装PVE)(One-click installation of PVE)(一键开设KVM或LXC虚拟化的NAT服务器-自带内外网端口转发)(含ARM和X86_64)
Find a file
2023-04-11 21:02:36 +08:00
back Update README.md 2023-04-11 12:08:41 +08:00
gpg
build_backend.sh Update build_backend.sh 2023-04-04 12:21:38 +08:00
build_nat_network.sh Update build_nat_network.sh 2023-04-10 14:56:29 +08:00
buildvm.sh Update buildvm.sh 2023-04-11 13:03:59 +08:00
check-dns.service Create check-dns.service 2023-04-04 19:49:36 +08:00
check-dns.sh Create check-dns.sh 2023-04-04 19:45:04 +08:00
check_kernal.sh Update check_kernal.sh 2023-02-26 20:51:02 +08:00
create_vm.sh Update create_vm.sh 2023-04-11 16:54:08 +08:00
install_pve.sh Update install_pve.sh 2023-04-04 21:14:34 +08:00
License
README.md Update README.md 2023-04-11 21:02:36 +08:00

PVE

前言

建议debian在使用前尽量使用最新的系统

非debian11可使用 debian一键升级 来升级系统

当然不使用最新的debian系统也没问题只不过得不到官方支持

请确保使用前机器可以重装系统不保证本套脚本不造成任何BUG!!!

如果服务器是VPS而不是独服可能会出现各种各样的BUG请做好部署失败重装服务器的准备!!!

配置与系统要求

只适配Debian系统(非Debian无法通过APT源安装官方只给了Debian的镜像其他系统只能使用ISO安装)

系统要求Debian 8+

最低的硬件要求2核2G内存x86_64架构服务器硬盘至少20G

PS: 如果硬件需求不满足可使用LXD批量开LXC的跳转

可开KVM的硬件要求VM-X或AMD-V支持-(部分VPS和全部独服支持)

遇到选项不会选的可无脑回车安装所有脚本内置国内外IP自动判断使用的是不同的安装源与配置文件

检测硬件环境

  • 本仓库脚本执行前务必执行本脚本检测环境如果不符合安装PVE的要求则无法使用后续的脚本
  • 检测硬件环境是否可嵌套虚拟化KVM类型的服务器
  • 检测系统环境是否可嵌套虚拟化KVM类型的服务器
  • 不可嵌套虚拟化KVM类型的服务器也可以开LXC虚拟化的服务器
bash <(wget -qO- --no-check-certificate https://raw.githubusercontent.com/spiritLHLS/pve/main/check_kernal.sh)

PVE基础安装(一键安装PVE)

  • 安装的是当下apt源最新的PVE
  • 比如debian10则是pve6.4debian11则是pve7.x
  • /etc/hosts文件修改(修正商家hostname设置错误以及新增PVE所需的内容)
  • 已设置/etc/hosts为只读模式,避免重启后文件被覆写,如需修改请使用chattr -i /etc/hosts取消只读锁定,修改完毕请执行chattr +i /etc/hosts只读锁定
  • 检测是否为中国IP如果为中国IP使用清华镜像源否则使用官方源
  • 安装PVE开虚拟机需要的必备工具包
  • 替换apt源中的企业订阅为社区源
  • 打印查询Linux系统内核和PVE内核是否已安装
  • 查询网络配置是否为dhcp配置的V4网络如果是则转换为静态地址避免重启后dhcp失效已设置为只读模式如需修改请使用chattr -i /etc/network/interfaces.d/50-cloud-init取消只读锁定,修改完毕请执行chattr +i /etc/network/interfaces.d/50-cloud-init只读锁定
  • 检测/etc/resolv.conf是否为空,为空则设置检测8.8.8.8的开机自启添加DNS的systemd服务
  • 新增PVE的APT源链接后下载PVE并打印输出登陆信息
  • 配置完毕需要重启系统加载新内核
curl -L https://raw.githubusercontent.com/spiritLHLS/pve/main/install_pve.sh -o install_pve.sh && chmod +x install_pve.sh && bash install_pve.sh
  • 安装过程中可能会退出安装需要手动修复apt源如下图所示修复完毕后再次执行本脚本

图片

图片

预配置环境

  • 创建资源池mypool
  • 检测AppArmor模块并试图安装
bash <(wget -qO- --no-check-certificate https://raw.githubusercontent.com/spiritLHLS/pve/main/build_backend.sh)

自动配置IPV4的NAT网关

  • 使用前请保证重启过服务器且PVE能正常使用WEB端再执行
  • 创建vmbr0
  • 创建vmbr1(NAT网关)
  • 开NAT虚拟机时网关IPV4使用172.16.1.1IPV4/CIDR使用172.16.1.x/24这里的x不能是1
  • 可能需要web端手动点应用配置按钮应用一下
  • 想查看完整设置可以执行cat /etc/network/interfaces查看
  • 加载iptables并设置回源且允许NAT端口转发
bash <(wget -qO- --no-check-certificate https://raw.githubusercontent.com/spiritLHLS/pve/main/build_nat_network.sh)

一键生成KVM虚拟化的NAT服务器

使用前记得执行本仓库的第一个个命令,那个检测硬件环境的命令,展示如下

图片

查询如上的只需使用下面的一键脚本自动创建虚拟机即可

图片

查询如上的在使用后续脚本创建了虚拟机后,记得关闭对应每个虚拟机的硬件嵌套虚拟化,如下图

图片

关闭后重启对应的虚拟机才能使用NOVNC不关闭可能导致这个虚拟机有BUG无法使用

单独生成KVM虚拟化的VM

  • 自动开设NAT服务器默认使用Debian10镜像因为该镜像占用最小
  • 可在命令中自定义需要使用的镜像这里有给出配置好的镜像镜像自带空间是2G硬盘所以最少需要在命令中设置硬盘到3G
  • 自定义内存大小推荐512MB内存需要注意的是母鸡内存记得开点swap免得机器炸了开SWAP点我跳转
  • 自动进行内外网端口映射含2280443端口以及其他25个内外网端口号一样的端口
  • 生成后需要等待一段时间虚拟机内部的cloudinit配置好网络以及登陆信息大概需要5分钟
curl -L https://raw.githubusercontent.com/spiritLHLS/pve/main/buildvm.sh -o buildvm.sh && chmod +x buildvm.sh

使用方法

  • 系统支持:详见 跳转 中列出的系统,使用时只需写文件名字,不需要.qcow2尾缀
./buildvm.sh VMID 用户名 密码 CPU核数 内存 硬盘 SSH端口 80端口 443端口 外网端口起 外网端口止 系统

示例

测试开一个NAT服务器

以下示例开设VMID为102的虚拟机用户名是test1密码是1234567CPU是1核内存是512MB硬盘是5GSSH端口是4000180端口是40002443端口是40003

同时内外网映射端口一致的区间是50000到50025系统使用的是ubuntu20

./buildvm.sh 102 test1 1234567 1 512 5 40001 40002 40003 50000 50025 ubuntu20

开设完毕可执行

cat vm102

查看信息

删除示例

  • 删除端口映射删除测试机器
qm stop 102
qm destroy 102
iptables -t nat -F
iptables -t filter -F
service networking restart
systemctl restart networking.service
rm -rf vm102

相关qcow2镜像

  • 已预安装开启cloudinit开启SSH登陆预设值SSH监听V4和V6的22端口开启允许密码验证登陆开启允许ROOT登陆

https://github.com/spiritLHLS/Images/releases/tag/v1.0

批量开设NAT的KVM虚拟化的VM

  • 初次使用前需要保证当前PVE未有任何虚拟机未有进行任何端口映射否则可能出现BUG
  • 可多次运行批量生成VM但需要注意的是母鸡内存记得开点swap免得机器炸了开SWAP点我跳转
  • 自动开设NAT服务器默认使用Debian10镜像因为该镜像占用最小
  • 自动进行内外网端口映射含2280443端口以及其他25个内外网端口号一样的端口
  • 生成后需要等待一段时间虚拟机内部的cloudinit配置好网络以及登陆信息大概需要5分钟
  • 默认批量开设的虚拟机配置为1核512MB内存5G硬盘2280443端口及一个25个端口区间的内外网映射
curl -L https://raw.githubusercontent.com/spiritLHLS/pve/main/create_vm.sh -o create_vm.sh && chmod +x create_vm.sh && bash create_vm.sh

开设完毕可执行

cat vmlog

查看信息

致谢

https://blog.ilolicon.com/archives/615

https://github.com/Ella-Alinda/somescripts/blob/main/nat.sh

https://pve.proxmox.com/pve-docs/qm.1.html

https://down.idc.wiki/Image/realServer-Template/

感谢 @Ella-Alinda 提供的PVE指导

友链

VPS融合怪测评脚本

https://github.com/spiritLHLS/ecs