240 lines
7.6 KiB
Markdown
240 lines
7.6 KiB
Markdown
# 安装与配置 Proxmox 9
|
||
|
||
## 环境
|
||
|
||
- 幻网 N5000
|
||
|
||
## 下载 ISO 镜像
|
||
|
||
[ISO - Proxmox Virtual Environment](https://www.proxmox.com/en/downloads/proxmox-virtual-environment/iso)
|
||
|
||
## 制作 USB 启动盘
|
||
|
||
- [Rufus](https://rufus.ie/zh)
|
||
- [Ventoy](https://www.ventoy.net/cn/index.html)
|
||
|
||
## 安装
|
||
|
||
按 ++del++ 进入启动项菜单。
|
||
|
||
选择 `Install Proxmox VE (Graphical)`。
|
||
|
||
点击 `I agree`。
|
||
|
||
选择服务器的系统盘,点击 `Options` 可以选择文件系统 `ext4`,下面进一步设置分区:
|
||
|
||
- hdsize (硬盘总容量): (保持默认)
|
||
- swapsize (虚拟内存): `4`
|
||
- maxroot (local(系统分区)最大容量): (按实际情况 `30`)
|
||
- maxvz (local-lvm(数据分区)的最大容量): (按实际情况,可不填)
|
||
- minfree (预留的未分配空间): `2`
|
||
|
||
选择所在国家、时区和键盘布局。
|
||
|
||
输入密码和邮箱地址(建议填写真实地址)。
|
||
|
||
选择 Proxmox 的管理网卡,输入主机名、IP、网关和 DNS 服务器。
|
||
|
||
检查配置内容,点击 `Install`。
|
||
|
||
## 软件源
|
||
|
||
``` bash
|
||
sudo nano /etc/apt/sources.list
|
||
```
|
||
|
||
``` title="/etc/apt/sources.list"
|
||
Types: deb
|
||
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian
|
||
Suites: trixie trixie-updates trixie-backports
|
||
Components: main contrib non-free non-free-firmware
|
||
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
||
|
||
Types: deb
|
||
URIs: https://security.debian.org/debian-security
|
||
Suites: trixie-security
|
||
Components: main contrib non-free non-free-firmware
|
||
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
||
|
||
Types: deb
|
||
URIs: https://mirrors.ustc.edu.cn/proxmox/debian/pve
|
||
Suites: trixie
|
||
Components: pve-no-subscription
|
||
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
|
||
```
|
||
|
||
## 关闭订阅提示弹窗
|
||
|
||
来源: [Proxmox VE Helper Scripts](https://community-scripts.org/categories?category=proxmox-and-virtualization&preview=post-pve-install)
|
||
|
||
``` bash
|
||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/post-pve-install.sh)"
|
||
|
||
Disabled subscription nag - Yes
|
||
```
|
||
|
||
## 存储
|
||
|
||
增加 NFS 存储以存放备份:
|
||
|
||
- ID: nas
|
||
- 服务器: `nfs-server-ip`
|
||
- Export: `/your-nfs-directory`
|
||
- 内容: 备份
|
||
|
||
## 修改 SSH 配置
|
||
|
||
参照[此处](https://blog.cattom.site/tech/Commands-for-Server-Operation-and-Maintenance/#ssh)完成。
|
||
|
||
## Tailscale
|
||
|
||
在 [Tailscale Admin](https://login.tailscale.com/admin/settings/keys) 创建 Auth Key。
|
||
|
||
``` bash
|
||
curl -fsSL https://tailscale.com/install.sh | sh
|
||
|
||
tailscale up --authkey [tailscale-auth-key]
|
||
```
|
||
|
||
## 防火墙
|
||
|
||
宿主机设置防火墙不会影响虚拟机网络。只要使用 Proxmox 自带的防火墙功能,就不会影响虚拟机的网络。
|
||
|
||
PVE 的网络是基于网桥的。宿主机的控制面板(8006端口)走的是 **INPUT** 链(进入宿主机本身的数据),而虚拟机的网络流量走的是 **FORWARD** 链(只是路过宿主机,直接转发给虚拟机)。PVE 的自带防火墙对这两部分是严格隔离管理的。
|
||
|
||
千万不要在 PVE 宿主机上安装和使用 `ufw`(Ubuntu常用的简单防火墙)!`ufw` 会强行修改底层的 iptables 规则,这会瞬间切断并破坏 `vmbr0` 网桥,导致你所有的虚拟机立刻断网。**在 PVE 上,永远只用它自带的网页端防火墙机制。**
|
||
|
||
假设你的局域网 IP 段是 `192.168.1.0/24` (或 Tailscale IP `100.64.0.0/10`)。
|
||
|
||
### 设置防火墙规则
|
||
|
||
- 在左侧导航栏点击顶部你的 **数据中心**。
|
||
- 在中间栏找到并点击 **防火墙**。
|
||
- **添加放行规则**:
|
||
- 点击上方的 **添加**
|
||
- **方向**: `in`
|
||
- **操作**: `ACCEPT`
|
||
- **源地址**: `192.168.1.0/24` (或 `100.64.0.0/10`)
|
||
- 点击 **添加**
|
||
- **添加阻断规则**:
|
||
- 再次点击 **添加**
|
||
- **方向**: `in`
|
||
- **操作**: `DROP`
|
||
- **源地址**: **留空** (留空代表所有 IP,即 `0.0.0.0/0`)
|
||
- 点击 **添加**
|
||
|
||
*注意:PVE 防火墙规则是从上往下匹配的,所以**允许内网的规则必须在拒绝所有的规则上方**,确认无误后再启用规则。*
|
||
|
||
### 启用防火墙
|
||
|
||
**在节点层级启用**:
|
||
|
||
- 点击左侧 - 你的服务器节点
|
||
- 进入 **防火墙** -> **选项**。
|
||
- 双击 **防火墙**,将其设置为 `是`。
|
||
|
||
**在数据中心层级启用**:
|
||
|
||
- 回到最顶部的 **数据中心**。
|
||
- 进入 **防火墙** -> **选项**。
|
||
- 双击 **防火墙**,将其设置为 `是`。
|
||
|
||
## LVM 存储扩容
|
||
|
||
### 将旧硬盘的数据迁移到新硬盘
|
||
|
||
下载 **Clonezilla(再生龙)** 的 ISO 镜像,并用 Rufus 将其刻录到 U 盘中,制作成启动盘。
|
||
|
||
1. 将全新的 2T NVMe SSD 装入 USB 硬盘盒,插到零刻 SEi12 的 USB 接口上。
|
||
2. 插上做好的 Clonezilla U 盘,重启设备,进入 Boot Menu,选择从 U 盘启动。
|
||
3. 进入 Clonezilla 系统后,按照提示选择:
|
||
- 选择 `device-device`(硬盘到硬盘克隆)。
|
||
- 选择 `disk to local disk`(克隆整个本地硬盘)。
|
||
- **关键步骤**:源盘(Source)选择你的旧盘(通常是内部的 NVMe),目标盘(Target)选择你的新盘(通常显示为 USB 设备),**千万别选反了!**
|
||
- 选择 `-k1` 参数(可选,但推荐):在克隆时按比例扩大分区表,或者选择默认(后续我们手动扩容,更安全)。
|
||
- 确认并开始克隆。
|
||
4. 克隆完成后,关机。把旧硬盘取下,将装新硬盘换到主板上。
|
||
5. 开机,你的 PVE 应该会和之前一模一样地完美启动。
|
||
|
||
### 扩容 LVM 存储
|
||
|
||
#### 扩展物理分区和 PV (物理卷)
|
||
|
||
1. **确定分区情况**:
|
||
|
||
``` bash
|
||
lsblk
|
||
```
|
||
|
||
2. **修复 GPT 分区表**:
|
||
|
||
``` bash
|
||
sgdisk -e /dev/nvme0n1
|
||
```
|
||
|
||
3. **扩展分区**
|
||
|
||
``` bash
|
||
cfdisk /dev/nvme0n1
|
||
```
|
||
|
||
*用上下方向键选择最大的那个分区(通常是 `/dev/nvme0n1p3`),用左右键在底部菜单选择 `[ Resize ]` (调整大小),按回车,它会自动填入最大可用容量,再按回车。然后选择 `[ Write ]` (写入),输入 `yes` 并回车。最后选择 `[ Quit ]` 退出。*
|
||
|
||
4. **刷新 LVM 的物理卷(PV)**:
|
||
|
||
``` bash
|
||
pvresize /dev/nvme0n1p3
|
||
```
|
||
|
||
#### 仅有 `local` (系统分区) 的情况下如何扩容?
|
||
|
||
如果你的硬盘所有空间都给了 `local`(即 PVE 中的 `/dev/pve/root`),那么只需要把刚刚获得的 1T 空间全部分配给它。
|
||
|
||
1. **扩展逻辑卷 (LV)**:
|
||
|
||
``` bash
|
||
lvextend -l +100%FREE /dev/pve/root
|
||
```
|
||
|
||
2. **刷新文件系统**:
|
||
|
||
``` bash
|
||
resize2fs /dev/mapper/pve-root
|
||
```
|
||
|
||
#### 在有 `local` 和 `local-lvm` 的情况下如何扩容?
|
||
|
||
如果你保留了双分区结构,那么多出来的空间,你通常有两种选择。
|
||
|
||
**方案 A: 把所有新空间全给 `local-lvm`**
|
||
|
||
`local-lvm` 的底层名称叫 `/dev/pve/data`,而且它是一个 LVM-Thin 池,**它不需要执行 `resize2fs`**,只要分配了空间立马生效。
|
||
|
||
``` bash
|
||
lvextend -l +100%FREE /dev/pve/data
|
||
```
|
||
|
||
**方案 B: 雨露均沾**
|
||
|
||
如果你觉得旧的 `local` 也不太够用了,想分一部分给它存镜像,剩下的给虚拟机,可以这么操作:
|
||
|
||
1. **先给 `local` (root) 增加 100G,并刷新文件系统**:
|
||
|
||
``` bash
|
||
lvextend -L +100G /dev/pve/root
|
||
resize2fs /dev/mapper/pve-root
|
||
```
|
||
|
||
2. **再把剩下的所有空间都给 `local-lvm` (data)**:
|
||
|
||
```bash
|
||
lvextend -l +100%FREE /dev/pve/data
|
||
```
|
||
|
||
## 参考
|
||
|
||
[Installation - Proxmox VE](https://pve.proxmox.com/wiki/Installation)
|
||
|
||
[Proxmox Beginner’s Guide: Everything You Need to Get Started - YouTube](https://www.youtube.com/watch?v=lFzWDJcRsqo)
|
||
|
||
[What are these 100.x.y.z addresses?](https://tailscale.com/docs/concepts/tailscale-ip-addresses) |