PVE (Proxmox VE) 一键虚拟化项目 | 开源、易于使用的服务器虚拟化项目

1. 项目地址

一键虚拟化项目 | 开源、易于使用的服务器虚拟化项目 (spiritlhl.net)

2. 系统与硬件配置要求

建议debian在使用前尽量使用最新的稳定版本的系统

不要在动态IP的服务器上使用本套脚本(重启机器后自动切换本机IP的服务器暂不支持,重启机器后IP不自动切换的支持)

本项目的一键安装脚本只适配Debian系统,非Debian无法通过APT源安装,官方只给了Debian的镜像,其他系统只能使用ISO安装,或使用自定义分区和常见问题分区中的其他方式解决问题。

  • 系统要求:Debian 8+

    建议debian12而不是debian11,debian11在部分独立服务器上有网络重启的BUG。

  • 硬件要求:2核2G内存x86_64``arm架构服务器硬盘至少20G

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

  • 如果硬件或系统需求不满足,可使用incus批量开LXC容器跳转

如果使用IPV6隧道进行宿主机的IPV6子网附加,务必在PVE安装成功但网关未自动设置时在对应文件添加内容,不要在一开始(未安装PVE)就进行IPV6隧道的添加。

2.1 开设虚拟内存(SWAP)

内存开点swap免得机器炸了

单位换算:输入 1024 产生 1G SWAP-虚拟内存,虚拟内存占用硬盘空间,当实际内存不够用时将自动使用虚拟内存做内存使用,但随之带来IO高占用以及CPU性能占用

建议只开实际内存大小两倍大小的虚拟内存

国际

curl -L https://raw.githubusercontent.com/spiritLHLS/addswap/main/addswap.sh -o addswap.sh && chmod +x addswap.sh && bash addswap.sh

国内

curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritLHLS/addswap/main/addswap.sh -o addswap.sh && chmod +x addswap.sh && bash addswap.sh

2.2 检测环境

  • 本项目相关脚本执行前务必执行本脚本检测环境,如果不符合安装PVE的要求则无法使用后续的脚本
  • 检测本机IPV6的网络配置情况(有无IPV6都可安装,只是查询一下罢了)
  • 检测硬件配置是否满足最低要求
  • 检测硬件环境是否可嵌套虚拟化KVM类型的服务器
  • 检测系统环境是否可嵌套虚拟化KVM类型的服务器
  • 不可嵌套虚拟化KVM类型的服务器也可以开LXC虚拟化的服务器,但不推荐安装PVE,不如使用incus

国际

bash <(wget -qO- --no-check-certificate https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/check_kernal.sh)

国内

bash <(wget -qO- --no-check-certificate https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/check_kernal.sh)

如果你需要更新IPV6信息再查询,那么执行以下命令后再查询

rm -rf /usr/local/bin/pve_ipv6*
rm -rf /usr/local/bin/pve_check_ipv6*
rm -rf /usr/local/bin/pve_last_ipv6*

3. PVE主体安装

安装过程中遇到选项不会选的可无脑按回车,本项目所有脚本内置国内外IP自动判断,使用的是不同的安装源与配置文件,有使用CDN加速镜像下载

低配置的宿主机,建议所有内容安装完毕后,查看自定义分区的内容,进行内存调优,减少内存占用。

3.1 一键安装PVE

建议debian12,实测部分独立服务器的debian11系统会出现一重启网络就失联的情况,debian12没有这种问题

  • 安装的是当下apt源最新的PVE
  • 比如debian10则是pve6.4,debian11则是pve7.x,debian12则是pve8.x
  • /etc/hosts文件修改(修正商家hostname设置错误以及新增PVE所需的内容)
  • /etc/cloud/cloud.cfg文件修改(避免覆写已修改的hostname等配置)
  • /etc/network/interfaces文件修改(修复auto、dhcp类型为static、增加vmbr0网关)
  • 检测是否为中国IP,如果为中国IP使用清华镜像源,否则使用官方源,同时处理apt的源和对应的nameserver,避免断网
  • 创建vmbr0(独立IP网关),宿主机允许addr和gateway为内网IP或外网IP,已自动识别
  • vmbr0创建支持开设纯IPV4、纯IPV6、双栈虚拟机,自动识别IPV4地址和IPV6地址,自动识别对应的IP区间
  • 安装PVE开虚拟机需要的必备工具包
  • x86_64的替换apt源中的企业订阅为社区源,arm的使用第三方修复的补丁构建的源
  • 打印查询Linux系统内核和PVE内核是否已安装
  • 设置DNS检测8.8.8.8的开机自启添加DNS的systemd服务
  • 新增PVE的APT源链接后,下载PVE并打印输出登陆信息

所有修改过的文件均已设置为只读模式,避免重启后文件被覆写

如需修改请使用chattr -i 文件路径`取消只读锁定,修改完毕请执行`chattr +i 文件路径进行只读锁定

执行过程中会提示重启系统一次,重启后务必等待起码20秒确保系统未再次自动重启

因为原始环境可能缺失ifupdown``ifupdown2环境,有加载自安装的守护进程进行安装,安装后会再次自动重启系统,等待20秒未自重启确保这个安装已运行完毕

若宿主机本身存在SLAAC分配的IPV6地址,将可选择是否使用最大的IPV6子网范围,默认回车不使用最大的IPV6子网范围仅使用本机IPV6,若后续需要给虚拟机/容器附加独立的IPV6地址,该选项务必选择y.

国际

curl -L https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/install_pve.sh -o install_pve.sh && chmod +x install_pve.sh && bash install_pve.sh

国内

curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/install_pve.sh -o install_pve.sh && chmod +x install_pve.sh && bash install_pve.sh

bash install_pve.sh

安装成功后打开网页可能提示不安全,点击高级或更多选项,坚持访问即可

登录的信息是你SSH的账户和密码

3.2 预配置环境

  • 创建资源池mypool(local)
  • 移除订阅弹窗
  • 尝试开启硬件直通
  • 对AppArmor模块检测和自动安装
  • 重启系统前推荐挂上nezha探针方便在后台不通过SSH使用命令行,避免SSH可能因为商家奇葩的预设可能导致重启后root密码丢失
  • 执行reboot前需要等待后台任务执行完毕,一些宿主机的系统apt命令执行很慢,得等一会才能执行完毕,当然大部分的机器没这么烂

国际

bash <(wget -qO- --no-check-certificate https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/build_backend.sh)

国内

bash <(wget -qO- --no-check-certificate https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/build_backend.sh)

3.3 自动配置宿主机的网关

使用前请保证重启过服务器且此时PVE能正常使用WEB端再执行,重启机器后不要立即执行此命令,待WEB端启动成功后至少等1分钟再执行本命令

这一步是最容易造成SSH断开的,原因是未等待PVE内核启动就修改网络会造成设置冲突,所以至少等几分钟待内核启动也就是WEB端启动成功后再执行

在执行本命令前如果宿主机需要附加IPV6隧道的地址,请查看incus的自定义分区部分的内容附加到对应文件中,但请忽略它的初始环境修改部分的内容

  • 如果vmbr0未创建,则自动创建,逻辑同主体安装一致
  • 创建vmbr1(NAT网关),支持开设NAT的IPV6网络的NAT的IPV4的服务器
  • 创建vmbr2(独立IPV6网关),使用ndppd解决宿主机对IPV6地址进行MAC校验的问题,支持开设带独立IPV6网络的服务器
  • 想查看完整设置可以执行cat /etc/network/interfaces查看,如需修改网关需要修改该文件,web端已经无法修改
  • 加载iptables并设置回源且允许NAT端口转发

简单的说,vmbr0`负责v4的独立IP,`vmbr1`负责复杂v4/v6的NAT,`vmbr2负责v6的独立IP

开独立IPV4的虚拟机时使用的vmbr0,gateway同宿主机,IPV4/CIDR使用同一网段的地址和相同的子网掩码,使用宿主机未绑定的IPV4地址做IPV4/CIDR,当然如果后续使用本套脚本无需关注这点细枝末节的东西

开NAT的IPV4的虚拟机时使用vmbr1,gateway使用172.16.1.1`,IPV4/CIDR使用`172.16.1.x/24,这里的x不能是1,当然如果后续使用本套脚本无需关注这点细枝末节的东西

国际

bash <(wget -qO- --no-check-certificate https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/build_nat_network.sh)

国内

bash <(wget -qO- --no-check-certificate https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/build_nat_network.sh)

这一步是可能需要你执行成功几分钟后重启系统,详见脚本最后执行完毕的提示,但重启可以保证部分隐藏设置加载成功,有条件务必重启一次服务器

4. KVM虚拟化

4.1 SSH登录说明

KVM虚拟化开设出的虚拟机,默认生成的用户名不是root`,你需要执行`sudo -i切换为root用户

默认支持用户名root`登录,默认的root密码是`password``oneclickvirt,你也可以先试试

登录SSH切换为root权限后,一定要修改root密码,可以使用以下命令修改

国际

bash <(curl -sSL https://raw.githubusercontent.com/fscarmen/tools/main/root.sh) [PASSWORD]

国内

bash <(curl -sSL https://cdn.spiritlhl.net/https://raw.githubusercontent.com/fscarmen/tools/main/root.sh) [PASSWORD]

4.2 部分注意事项

执行本项目的检测环境的命令,展示如下

PVE (Proxmox VE) 一键虚拟化项目 | 开源、易于使用的服务器虚拟化项目

查询如上的只需使用下面的一键脚本自动创建虚拟机即可,无需手动再修改WEB端设置

PVE (Proxmox VE) 一键虚拟化项目 | 开源、易于使用的服务器虚拟化项目

查询如上的在使用后续脚本创建了虚拟机后,可能需要手动修改WEB端设置,需要关闭对应每个虚拟机的硬件嵌套虚拟化,如下图

PVE (Proxmox VE) 一键虚拟化项目 | 开源、易于使用的服务器虚拟化项目

先停止虚拟机再修改,修改完后再开机才能使用NOVNC,不关闭可能导致这个虚拟机有BUG无法使用

如果强行安装PVE开KVM,启动不了的也可以关闭这个选项试试能不能启动虚拟机

::tip
开设虚拟机前请使用screen挂起执行,避免开设时间过长,SSH不稳定导致中间执行中断

::

4.3 开设带IPV6地址的KVM虚拟机的注意事项

由于长期闲置IPV6不使用可能导致NDP广播缓存失效重置,一般闲置50分钟左右就会出现IPV6不可用的情况,俗称“IPV6断流”,此时需要设置一个定时任务

echo '*/1 * * * * curl -m 6 -s ipv6.ip.sb || curl -m 6 -s ipv6.ip.sb' | crontab -

在开设出的虚拟机中执行上述命令,可保证IPV6网络一直被使用,不会失效断流

4.4 开设KVM虚拟机可使用的镜像

  • 已预安装开启cloudinit
  • 开启SSH登陆
  • 预设置SSH监听V4和V6的22端口
  • 开启允许密码验证登陆
  • 开启允许root登陆
  • 部分预安装Qemu-guest-agent

目前可使用的镜像名字的列表为

https://github.com/oneclickvirt/kvm_images/blob/main/list.text

以及

https://github.com/oneclickvirt/pve_kvm_images

仓库的Release中存储的每日修补镜像

4.5 单独开设NAT的KVM虚拟化的虚拟机

  • 自动开设NAT服务器,默认使用Debian10镜像,因为该镜像占用最小
  • 可在命令中自定义需要使用的镜像,这里有给出配置好的镜像,镜像自带空间设置是2~10G硬盘,日常使用至少10G以上即可,除非某些镜像开不起来再增加硬盘大小
  • 可在命令中指定存储盘位置,默认不指定时为local盘即系统盘,可指定为PVE中显示的挂载盘
  • 自定义内存大小推荐512MB内存
  • 自动进行内外网端口映射,含22,80,443端口以及其他25个内外网端口号一样的端口
  • 生成后需要等待一段时间虚拟机内部的cloud-init配置好网络以及登陆信息,大概需要5分钟
  • 虚拟机的相关信息将会存储到WEB端对应VM的NOTES中,可在WEB端查看
  • 如果宿主机自带IPV6子网将自动附加上IPV6网络,但无公网IPV6地址
  • 可选择是否开启独立IPV6,需要宿主机至少有一个/104的子网,最好是/64的子网

4.5.1 使用方法

  • 系统支持:
    • x86_64架构的详见 跳转 中列出的系统,使用时只需写文件名字,不需要.qcow2尾缀
    • arm架构的详见 跳转 中列出的系统,使用时只需要写系统名字+系统版本号,如ubuntu20、ubutnu22这种

注意这里的用户名不能是纯数字,会造成cloudinit出问题,最好是纯英文或英文开头

下载脚本

国际

curl -L https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/buildvm.sh -o buildvm.sh && chmod +x buildvm.sh

国内

curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/buildvm.sh -o buildvm.sh && chmod +x buildvm.sh

各参数含义

./buildvm.sh VMID 用户名 密码 CPU核数 内存 硬盘 SSH端口 80端口 443端口 外网端口起 外网端口止 系统 存储盘 独立IPV6地址(留空默认N)

注意这里的密码最好仅英文与数字混合,且以英文开头,避免密码在设置过程中因为特殊字符被转义而设置失败

4.5.2 测试示例

./buildvm.sh 102 test1 oneclick123 1 512 10 40001 40002 40003 50000 50025 debian11 local N

开设完毕可执行cat vm102查看信息,或到WEB端对应VM的NOTES中查看

以下为开设的示例VM的信息:

属性
VMID 102
SSH登录的用户名 test1
SSH登录的密码 oneclick123
CPU核数 1
内存大小 512MB
磁盘大小 10G
SSH端口 40001
80端口 40002
443端口 40003
内外网映射端口一致的区间 50000到50025
系统 debian11
宿主机的存储盘 local
绑定独立IPV6(留空默认N) N

4.6 删除指定虚拟机

  • 停止VM
  • 删除VM
  • 删除端口映射
  • 重启网络
  • 删除log文件

下载脚本

国际

curl -L https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/pve_delete.sh -o pve_delete.sh && chmod +x pve_delete.sh

国内

curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/pve_delete.sh -o pve_delete.sh && chmod +x pve_delete.sh

使用方法

可以删除对应VMID的虚拟机,这里用上文中的示例102做演示

./pve_delete.sh 102

实际删除数量不固定,空格分隔每个VMID即可,可一次性删除多个

4.7 批量开设NAT的KVM虚拟化的虚拟机

初次使用前需要保证当前PVE纯净且宿主机未进行过任何端口映射,否则设置冲突可能出现BUG

开设前请使用screen挂起执行,避免批量开设时间过长,SSH不稳定导致中间执行中断

  • 可多次运行批量生成VM
  • 自动开设NAT服务器,选项留空默认使用debian11镜像,可自定义使用镜像名字,支持的系统名字详见上文支持的镜像列表
  • 自动进行内外网端口映射,含22,80,443端口以及其他25个内外网端口号一样的端口
  • 生成后需要等待一段时间虚拟机内部的cloudinit配置好网络以及登陆信息,大概需要5分钟,每个虚拟机创建之间有间隔等待60秒避免突发性能不足
  • 默认批量开设的虚拟机网络配置为:22,80,443端口及一个25个端口区间的内外网映射
  • 可自定义批量开设的核心数,内存大小,硬盘大小,使用宿主机哪个存储盘,记得自己计算好空闲资源开设
  • 虚拟机的相关信息将会存储到WEB端对应VM的NOTES中,可在WEB端查看
  • 如果宿主机自带IPV6子网将自动附加上IPV6网络,但无公网IPV6地址
  • 可选择是否开启独立IPV6,需要宿主机至少有一个/104的子网,最好是一个/64子网

国际

curl -L https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/create_vm.sh -o create_vm.sh && chmod +x create_vm.sh && bash create_vm.sh

国内

curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/create_vm.sh -o create_vm.sh && chmod +x create_vm.sh && bash create_vm.sh

开设完毕可执行cat vmlog查看信息,或到WEB端对应VM的NOTES中查看

4.8 删除所有虚拟机

  • 删除所有VM
  • 删除所有nat的端口映射
  • 重启网络
  • 删除log文件
for vmid in $(qm list | awk '{if(NR>1) print $1}'); do qm stop $vmid; qm destroy $vmid; rm -rf /var/lib/vz/images/$vmid*; done
iptables -t nat -F
iptables -t filter -F
service networking restart
systemctl restart networking.service
systemctl restart ndpresponder.service
iptables-save | awk '{if($1=="COMMIT"){delete x}}$1=="-A"?!x[$0]++:1' | iptables-restore
iptables-save > /etc/iptables/rules.v4
rm -rf vmlog
rm -rf vm*

PVE修改VM配置前都得停机先,再修改配置,修改完再启动,免得出现配置重载错误

4.9 开设独立IPV4地址的虚拟机

三个脚本,各取所需,各有优缺点。

前两个脚本不需要额外的IPV4地址事先绑定到vmbr0接口上,开设的虚拟机将直接绑定额外的IPV4地址。

最后一个脚本需要额外的IPV4地址事先绑定到vmbr0接口上,开设的虚拟机将做NAT全端口映射内网IPV4地址,不直接绑定额外的IPV4地址。

4.9.1 自动选择宿主机同一子网内的额外IPV4地址开设虚拟机

使用前需要保证当前宿主机的IP段带了至少2个IP,且有空余的IP未配置,该空余的IP未绑定宿主机。

此时附加的IPV4地址是宿主机目前的IPV4地址顺位后面的地址,
比如目前宿主机地址是1.1.1.32`然后`1.1.1.33`已经有虚拟机了,那么本脚本附加IP地址为`1.1.1.34

  • 自动检测可用的IP区间,通过ping检测空余可使用的IP,选取其中之一绑定到虚拟机上
  • 如果宿主机自带IPV6子网将可选择是否附加上IPV6地址
  • 系统的相关信息将会存储到对应的虚拟机的NOTE中,可在WEB端查看
  • 自动附加的IPV4地址与宿主机的IPV4地址是在同一个子网内的(IP地址前缀相同)
  • 在虚拟机内外进出流量都走绑定的额外IPV4的地址

4.9.1.1 使用方法

下载脚本

国际

curl -L https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/buildvm_extra_ip.sh -o buildvm_extra_ip.sh && chmod +x buildvm_extra_ip.sh

国内

curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/buildvm_extra_ip.sh -o buildvm_extra_ip.sh && chmod +x buildvm_extra_ip.sh

各参数含义

./buildvm_extra_ip.sh VMID 用户名 密码 CPU核数 内存大小以MB计算 硬盘大小以GB计算 系统 存储盘 独立IPV6(默认为N)

注意这里的密码最好仅英文与数字混合,且以英文开头,避免密码在设置过程中因为特殊字符被转义而设置失败

4.9.1.2 测试示例

./buildvm_extra_ip.sh 152 test1 oneclick123 1 1024 10 debian12 local N

上述命令意义为开设一个带独立IPV4地址的虚拟机

属性
VMID 152
用户名 test1
密码 oneclick123
CPU 1核
内存 1024MB
硬盘 10G
系统 debian12
存储盘 local盘
IPV6附加 默认不附加

4.10 手动指定额外IPV4地址开设虚拟机

  • 需要手动在命令中指定IPV4地址,且带上子网长度
  • 如果宿主机自带IPV6子网将可选择是否附加上IPV6地址
  • 如果商家有给IPV4地址和子网长度,请仔细比对,按照下面示例的命令写参数
  • 系统的相关信息将会存储到对应的虚拟机的NOTE中,可在WEB端查看
  • 可选择是否开启独立IPV6,需要宿主机至少有一个/104的子网,最好是一个/64子网
  • 手动附加的IPV4地址与宿主机的IPV4地址是在不同子网内的(IP地址前缀不同),将使用宿主机IP地址做网关
  • 手动附加的IPV4地址与宿主机的IPV4地址是在同一个子网内的(IP地址前缀相同),将使用宿主机的网关做网关
  • 可选择是否指定虚拟机的MAC地址
  • 在虚拟机内外进出流量都走绑定的额外IPV4的地址

不同子网内的IP地址,如果附加时不指定MAC地址,那么路由器无法识别源 MAC 地址,流量将被标记为“滥用”,并“可能”导致服务器被阻止。
(如果使用Hetzner的独立服务器务建议提供附加IPV4地址对应的MAC地址防止被报告滥用)

4.10.1 使用方法

下载脚本

国际

curl -L https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/buildvm_manual_ip.sh -o buildvm_manual_ip.sh && chmod +x buildvm_manual_ip.sh

国内

curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/buildvm_manual_ip.sh -o buildvm_manual_ip.sh && chmod +x buildvm_manual_ip.sh

各参数含义

./buildvm_manual_ip.sh VMID 用户名 密码 CPU核数 内存大小以MB计算 硬盘大小以GB计算 系统 存储盘 IPV4地址 独立IPV6(默认为N) MAC地址(不提供时将不指定虚拟机的MAC地址)

注意这里的密码最好仅英文与数字混合,且以英文开头,避免密码在设置过程中因为特殊字符被转义而设置失败

4.10.2 测试示例

./buildvm_manual_ip.sh 152 test1 oneclick123 1 1024 10 debian12 local a.b.c.d/24 N

上述命令意义为开设一个带独立IPV4地址的虚拟机

属性
VMID 152
用户名 test1
密码 oneclick123
CPU 1核
内存 1024MB
硬盘 10G
系统 debian12
存储盘 local盘 (系统盘)
IPV4地址 a.b.c.d
子网 /24 子网
IPV6
MAC地址

4.11 宿主机手动附加额外IPV4地址后再指定IPV4地址开设虚拟机

  • 需要自己在/etc/network/interfaces`中给`vmbr0`添加额外的IPV4地址(注意`chattr -i`解锁文件修改后再`chattr +i加锁回去)
  • 其他功能类似开设NAT的KVM虚拟机,只不过这里映射不再是部分端口映射,也不再是映射到宿主机的IPV4地址上,而是全端口一一映射到额外的IPV4地址上
  • 在虚拟机外进入虚拟机的流量走绑定的额外IPV4的地址,在虚拟机内发出的流量走原有的宿主机的IPV4地址

务必保证开设前你能使用额外的IPV4地址通过SSH登录宿主机,但curl ip.sb却仍显示原来的宿主机IPV4地址

4.11.1 使用方法

下载脚本

国际

curl -L https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/buildvm_fullnat_ip.sh -o buildvm_fullnat_ip.sh && chmod +x buildvm_fullnat_ip.sh

国内

curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/buildvm_fullnat_ip.sh -o buildvm_fullnat_ip.sh && chmod +x buildvm_fullnat_ip.sh

各参数含义

./buildvm_fullnat_ip.sh VMID 用户名 密码 CPU核数 内存大小以MB计算 硬盘大小以GB计算 系统 存储盘 IPV4地址 独立IPV6(默认为N)

注意这里的密码最好仅英文与数字混合,且以英文开头,避免密码在设置过程中因为特殊字符被转义而设置失败

4.11.2 测试示例

./buildvm_fullnat_ip.sh 152 test1 oneclick123 1 1024 10 debian12 local a.b.c.d N

上述命令意义为开设一个带独立IPV4地址的虚拟机

属性
VMID 152
用户名 test1
密码 oneclick123
CPU 1核
内存 1024MB
硬盘 10G
系统 debian12
存储盘 local盘 (系统盘)
IPV4地址 a.b.c.d
IPV6

4.11.3 进出流量都走绑定的IPV4地址

执行

line="-A POSTROUTING -s 172.16.1.0\/24 -o vmbr0 -j MASQUERADE"
sed -i "\|$line|d" /etc/iptables/rules.v4
service netfilter-persistent restart

即可,但这会导致宿主机丧失开设非独立IPV4地址的NAT的虚拟机/容器的能力,慎重执行

执行后你只能开设独立IPV4地址的虚拟机了。

5. 开设纯IPV6地址的虚拟机

前提是宿主机给的是IPV6子网而不是单独一个IPV6地址,且宿主机未开启MAC地址校验

5.1 自动选择IPV6地址无需手动指定

  • 纯IPV6指绑定的公共IPV6地址,实际虚拟机仍旧有宿主机的IPV4网络但无外网IPV4端口
  • 自动检测可用的IPV6区间,对应虚拟机编号的V6地址绑定到虚拟机上
  • 系统的相关信息将会存储到对应的虚拟机的NOTE中,可在WEB端查看

5.1.1 使用方法

下载脚本

国际

curl -L https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/buildvm_onlyv6.sh -o buildvm_onlyv6.sh && chmod +x buildvm_onlyv6.sh

国内

curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/buildvm_onlyv6.sh -o buildvm_onlyv6.sh && chmod +x buildvm_onlyv6.sh

各参数含义

./buildvm_onlyv6.sh VMID 用户名 密码 CPU核数 内存大小以MB计算 硬盘大小以GB计算 系统 存储盘

注意这里的密码最好仅英文与数字混合,且以英文开头,避免密码在设置过程中因为特殊字符被转义而设置失败

5.1.2 创建示例

./buildvm_onlyv6.sh 152 test1 oneclick123 1 1024 10 debian12 local

上述命令意义为开设一个纯IPV6地址的虚拟机

参数
VMID 152
用户名 test1
密码 oneclick123
CPU 1核
内存 1024MB
硬盘 10G
系统 debian12
存储盘 local

5.2 删除vm152示例

qm stop 152
qm destroy 152
systemctl restart ndpresponder.service
rm -rf vm152
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
虚拟化

ProxmoxVE(PVE) 将img文件转成硬盘并修改硬盘大小并启动

2024-6-17 23:18:06

Linux

1Panel面板三方应用商店

2024-9-1 21:32:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
搜索