从零实战:如何用 oneclickvirt/pve 一键开设第一台 NAT 虚拟机(含端口转发配置)
从零实战如何用 oneclickvirt/pve 一键开设第一台 NAT 虚拟机含端口转发配置【免费下载链接】pve用于 Proxmox VE 的多架构一键服务器部署支持批量或单独开设虚拟机内置内外网端口转发和NAT兼容 ARM64 与 AMD64 架构 One-click server deployment for Proxmox VE, supporting bulk or individual VM provisioning with built-in internal/external port forwarding. Compatible with both ARM64 and AMD64 architectures.项目地址: https://gitcode.com/gh_mirrors/pve1/pve想在一台物理机上快速开出多台带公网入口的虚拟服务器这个针对 Proxmox VE 的一键部署项目就是为此而生的NAT 虚拟机一键开设方案。你只需要跑一条命令就能完成虚拟机创建、内网 NAT 组网、端口转发配置全程无需手动改网桥、敲 iptables。本文会带你从零开始完成 PVE 安装、NAT 网络搭建并成功开设出第一台可以 SSH 登录的 NAT 虚拟机同时讲透端口转发的映射规则新手也能轻松上手。 这个项目能做什么PVE 一键部署与 NAT 虚拟机oneclickvirt/pve 是一套专为 Proxmox VE 打造的自动化部署工具集核心价值有三点一键安装 PVE在全新 Debian 系统上自动完成 Proxmox VE 安装与网络初始化全程可无人值守。批量开设虚拟机/容器支持 KVM 虚拟机与 LXC 容器可单独创建也可通过环境变量批量开鸡。内置 NAT 与端口转发自动创建 vmbr0外网桥 vmbr1内网 NAT 桥并把宿主机的指定公网端口自动 DNAT 到虚拟机内网端口。多架构兼容ARM64 与 AMD64 架构都能跑ARM 设备如 RK3588 开发板同样适用。所有操作脚本都集中在项目的 scripts 目录下文会逐一用到。✅ 准备工作安装前的环境检查清单在开始之前请确认你的服务器满足以下条件检查项要求操作系统Debian 10/11/12全新系统最佳架构x86_64 / ARM64aarch64虚拟化支持 KVM 硬件加速ls /dev/kvm有输出磁盘建议 ≥ 20G 可用空间内存建议 ≥ 2G每开一台虚拟机再叠加网络拥有公网 IPv4最好有 IPv6 子网如果 CPU 不支持 KVM脚本会自动降级为 QEMU 软件模拟TCG模式性能会打折扣但流程依然可以跑通。 第一步克隆项目并一键安装 PVE首先把项目克隆到服务器git clone https://link.gitcode.com/i/ba253b6bb3c4bd816320d58f6e05a498 cd pve/scripts安装 PVE 的核心脚本是 install_pve.sh直接执行即可bash install_pve.sh脚本会自动完成更换软件源国内机器可加CNtrue使用国内镜像源→ 安装 Proxmox VE 核心组件 → 检测物理网口 → 配置主桥接网卡。整个过程较长耐心等待即可。如果你希望全自动无人值守安装可以用环境变量跳过所有交互确认export noninteractivetrue CNtrue PVE_HOSTNAMEmypve PVE_MAIN_INTERFACEenp3s0 bash install_pve.sh其中PVE_MAIN_INTERFACE用来指定主网口PVE_HOSTNAME设定主机名CNtrue走国内镜像加速非常适合国内服务器或批量初始化场景。 第二步初始化 NAT 网络内外网桥接 转发规则安装完 PVE 后需要先初始化 NAT 组网环境这一步由 build_nat_network.sh 完成bash build_nat_network.sh脚本会自动完成以下工作创建vmbr0外网桥绑定物理网卡与公网 IP创建vmbr1内网 NAT 桥网段为172.16.1.0/24网关172.16.1.1写入 MASQUERADE 规则让内网虚拟机共享宿主机公网出口上网若检测到 IPv6 子网还会配置vmbr2与 ndpresponder 服务支持独立 IPv6 地址分配。网络拓扑大致如下公网 IP ── vmbr0外网桥── NAT ── vmbr1172.16.1.0/24 │ ├── 虚拟机1 172.16.1.102 ├── 虚拟机2 172.16.1.103 └── 虚拟机3 172.16.1.104注意NAT 网络只需要初始化一次。之后每次开设虚拟机脚本都会自动把端口转发规则写入防火墙优先 nftables兼容 iptables无需重复操作。️ 第三步一条命令开设第一台 NAT 虚拟机NAT 网络就绪后就能用 buildvm.sh 一键开虚拟机了。它的参数格式如下bash buildvm.sh VMID 用户名 密码 CPU核数 内存 硬盘 SSH端口 80端口 443端口 外网端口起 外网端口止 系统 存储盘 独立IPV6下面这条命令会开一台Debian 11 系统、1 核 512M 内存、5G 硬盘的 NAT 虚拟机bash buildvm.sh 102 test1 1234567 1 512 5 40001 40002 40003 50000 50025 debian11 local N各参数含义如下表参数示例值说明VMID102虚拟机编号必须在 100~256 之间且不能与已有 VM/CT 冲突用户名test1登录虚拟机的用户名root 之外的普通用户密码1234567登录密码CPU 核数1分配的核心数内存512内存大小MB硬盘5硬盘大小GBSSH 端口40001宿主机公网端口 → 虚拟机 22 端口80 端口40002宿主机公网端口 → 虚拟机 80 端口填 0 表示不转发443 端口40003宿主机公网端口 → 虚拟机 443 端口填 0 表示不转发外网端口起50000端口范围起点填 0 表示不开启外网端口止50025端口范围终点系统debian11支持 debian10/11/12、ubuntu18/20/22、centos7、almalinux、rockylinux、alpinelinux、fedora 等存储盘localPVE 存储名称pvesm status可查看独立IPV6NY 表示分配独立 IPv6N 表示仅 NAT 上网脚本会自动下载系统镜像qemu 镜像来自项目的自修补镜像源、导入磁盘、配置 cloud-init、启动虚拟机全程约 5~15 分钟取决于镜像下载速度。开设 LXC 容器也一样简单如果你更偏好轻量级容器而不是虚拟机可以用 buildct.shbash buildct.sh 102 1234567 1 512 5 20001 20002 20003 30000 30025 debian11 local N参数顺序与 buildvm.sh 基本一致CTID 密码 CPU 内存 硬盘 SSH端口 80端口 443端口 端口起 端口止 系统 存储 独立IPV6开出来的容器同样走 NAT 上网。 第四步端口转发配置详解外网如何访问虚拟机端口转发是整个 NAT 方案里最核心的部分它让你用宿主机公网 IP 指定端口就能访问内网虚拟机原理是防火墙的 DNAT 规则。以刚才的buildvm.sh 102 ...为例脚本自动生成的转发映射如下宿主机公网入口转发目标虚拟机内网用途服务器IP:40001172.16.1.102:22SSH 登录服务器IP:40002172.16.1.102:80HTTP 网站服务器IP:40003172.16.1.102:443HTTPS 网站服务器IP:50000~50025172.16.1.102:50000~50025自定义服务端口段TCPUDP 双协议这段逻辑对应脚本源码中的setup_port_forwarding()函数它通过 default_vm_config.sh 中的_fw_add_dnat/_fw_add_dnat_range写入 nftables或 iptables规则单端口映射dnat 宿主机端口 → 虚拟机IP:22/80/443端口段映射50000-50025 → 172.16.1.102:50000-50025同时覆盖 TCP 与 UDP登录虚拟机验证在任意能上网的机器上执行ssh test1服务器公网IP -p 40001输入密码1234567即可进入虚拟机。进入后可以curl ifconfig.me验证 NAT 上网是否正常——你会看到出口 IP 是宿主机公网 IP这正是 NAT 的效果。 第五步批量开设 NAT 虚拟机无交互模式需要一次性开多台项目支持通过环境变量批量创建配合noninteractivetrue即可全自动执行。以一次性开 5 台 Debian 11 NAT 虚拟机为例export noninteractivetrue PVE_CREATE_COUNT5 PVE_CREATE_CPU1 PVE_CREATE_MEMORY512 \ PVE_CREATE_DISK5 PVE_CREATE_STORAGElocal \ PVE_CREATE_SYSTEMdebian11 PVE_CREATE_IPV6n bash install_pve.sh常用批量环境变量环境变量作用PVE_CREATE_COUNT批量创建的虚拟机数量PVE_CREATE_CPU/PVE_CREATE_MEMORY/PVE_CREATE_DISK每台的 CPU / 内存 / 硬盘PVE_CREATE_STORAGE存储池名称PVE_CREATE_SYSTEM系统镜像如 debian11PVE_CREATE_IPV6是否分配独立 IPv6y/n每台虚拟机的 SSH、80、443 端口会自动递增分配创建完成后会输出包含用户名、密码、端口映射的完整信息方便批量记录分发。️ 常见问题排查Q1VMID 提示已存在VMID 需在 100~256 之间且未被占用换个编号即可。Q2虚拟机开机后 SSH 连不上先确认宿主机防火墙放行了对应端口nft list ruleset或iptables -t nat -L -n查看 DNAT 规则再确认端口映射没有冲突。Q3想删掉某台虚拟机用 pve_delete.sh 一条命令搞定支持多个编号或all全删bash pve_delete.sh 102 bash pve_delete.sh 102 103 104 # 删除多台 bash pve_delete.sh all # 全部删除Q4ARM64 机器能开虚拟机吗可以。ARM 架构会自动使用 OVMF BIOS 与对应架构镜像如 ubuntu cloudimg-arm64、debian generic-arm64镜像准备逻辑见 default_vm_config.sh 的prepare_arm_image()。Q5CPU 型号想改成可迁移的 kvm64执行echo kvm64 /usr/local/bin/cpu_type后再开虚拟机即可。 总结从安装 PVE、初始化 NAT 网络到一键开设带端口转发的 NAT 虚拟机整个流程只需三条命令bash install_pve.sh # ① 一键安装 PVE bash build_nat_network.sh # ② 初始化 NAT 组网 bash buildvm.sh 102 test1 1234567 1 512 5 40001 40002 40003 50000 50025 debian11 local N # ③ 开设 NAT 虚拟机得益于脚本内置的端口转发自动配置和批量创建能力即使你是虚拟化新手也能在半小时内拥有一套可对外提供服务的 NAT 虚拟机集群。无论是个人折腾、VPS 商家开小鸡还是 ARM 开发板组建家庭服务器这套 PVE 一键部署方案都值得一试。开始动手吧你的第一台 NAT 虚拟机就在这条命令之后【免费下载链接】pve用于 Proxmox VE 的多架构一键服务器部署支持批量或单独开设虚拟机内置内外网端口转发和NAT兼容 ARM64 与 AMD64 架构 One-click server deployment for Proxmox VE, supporting bulk or individual VM provisioning with built-in internal/external port forwarding. Compatible with both ARM64 and AMD64 architectures.项目地址: https://gitcode.com/gh_mirrors/pve1/pve创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考