Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ee64d1e961 | ||
|
|
636bbfb62b | ||
|
|
bb19e4f7dd | ||
|
|
b8a0db90a3 | ||
|
|
ec7034f2f1 | ||
|
|
60f0b0940c | ||
|
|
a8da3fa115 | ||
|
|
37373fbdcd | ||
|
|
e96b379620 | ||
|
|
4795c730c9 | ||
|
|
bf4d22b10b | ||
|
|
22806b5657 | ||
|
|
9f86e73f61 | ||
|
|
fdceec75ba | ||
|
|
182a939f5e | ||
|
|
b71d013431 | ||
|
|
e64d6f9b7f | ||
|
|
5c71c12916 | ||
|
|
56cf129f79 | ||
|
|
452ce84b1e | ||
|
|
4359c9f07e | ||
|
|
7d03feae01 | ||
|
|
ded81638c7 | ||
|
|
dfdc931239 | ||
|
|
4d5ca028cd | ||
|
|
a4d9985094 | ||
|
|
00fa47d9ba | ||
|
|
bbfec4df8f | ||
|
|
f92cd8ed93 | ||
|
|
5400e733d2 | ||
|
|
fd80ec7b1a | ||
|
|
6ae69e21c2 | ||
|
|
10b623cd52 | ||
|
|
e6161182e7 | ||
|
|
88891aa1f5 | ||
|
|
d3b67c178e | ||
|
|
3313d23879 | ||
|
|
5d594998e3 | ||
|
|
525ece3b7b | ||
|
|
21b1156c06 | ||
|
|
32e67f530b | ||
|
|
91998771d3 | ||
|
|
66bf4d3782 | ||
|
|
b5febddb8a | ||
|
|
b4f173b2cc | ||
|
|
2239a0f309 | ||
|
|
475e4bfccb | ||
|
|
c5fb7b4e57 | ||
|
|
90d8bccd46 | ||
|
|
cc41053e85 | ||
|
|
025d3ae558 | ||
|
|
2dc5780c17 | ||
|
|
2cc4e7a81c | ||
|
|
6e01bd7a6b | ||
|
|
6b035dd176 | ||
|
|
294d2a1473 | ||
|
|
db464c6e83 | ||
|
|
bef84818ec | ||
|
|
f5cd88087b | ||
|
|
1816de1e1c | ||
|
|
b72a110bee | ||
|
|
1081883de7 | ||
|
|
e789308ae7 | ||
|
|
79531b8431 | ||
|
|
1bc34548c2 | ||
|
|
19bb9605da | ||
|
|
c6c02fb6fc | ||
|
|
a120553cda | ||
|
|
45f67c0575 | ||
|
|
8ec0a03aef | ||
|
|
4682d5b06f | ||
|
|
9b7a9c4480 | ||
|
|
9ee5a6eab3 | ||
|
|
31185a456b | ||
|
|
512f178314 | ||
|
|
dde5487fcf | ||
|
|
7a53c915f1 | ||
|
|
91c6fc7394 | ||
|
|
d1c7e090ab | ||
|
|
81ad54cbe9 | ||
|
|
33518cec15 | ||
|
|
13976f0416 | ||
|
|
c384d28039 | ||
|
|
8da8fea50c | ||
|
|
d71720766c | ||
|
|
93d6fc0b80 | ||
|
|
f3ca708e55 | ||
|
|
41d08376da | ||
|
|
98b6d79cfe | ||
|
|
904502d9da | ||
|
|
a1eb073c74 | ||
|
|
3d2977d2a0 | ||
|
|
31b0659d75 | ||
|
|
f6430ea773 | ||
|
|
da5db050d8 | ||
|
|
5ad063bda2 | ||
|
|
05565fc0c1 | ||
|
|
09daf53713 | ||
|
|
2a4f368e9f | ||
|
|
5ec21db627 | ||
|
|
cc4a0873a1 | ||
|
|
0db7f90f28 | ||
|
|
776526006d | ||
|
|
415578e5c8 | ||
|
|
49727dc60c | ||
|
|
8e1b3fb4ae | ||
|
|
f571ec523f | ||
|
|
4484d09ba0 | ||
|
|
3c4966b3e7 | ||
|
|
febf67b7e0 | ||
|
|
4264612643 | ||
|
|
0eed6a3e3a | ||
|
|
e67966fe0d | ||
|
|
d312e5b0b3 | ||
|
|
e1fbda0150 | ||
|
|
08ffbf1e37 | ||
|
|
035e65db2c | ||
|
|
5832cfc2a3 | ||
|
|
956dc1bf48 | ||
|
|
7a2c3034c2 | ||
|
|
252580cb9e | ||
|
|
e8dbdcb201 | ||
|
|
264c5ee1c1 | ||
|
|
0e992e2b21 | ||
|
|
7305c0dc70 | ||
|
|
6d8c36bb54 | ||
|
|
9a68f1afeb | ||
|
|
0bfcd004c0 | ||
|
|
583b7aef9e | ||
|
|
3765fcb0a9 | ||
|
|
861eeeb8f3 | ||
|
|
26bfbbaf82 | ||
|
|
bc8faee58e | ||
|
|
fcb86be893 | ||
|
|
167cede538 | ||
|
|
90d5c87956 | ||
|
|
d2ec02ea8c | ||
|
|
9a86b6881e | ||
|
|
7e32a67130 | ||
|
|
72c213b963 | ||
|
|
197bc34e12 | ||
|
|
022a7dd510 | ||
|
|
1052c721f4 | ||
|
|
c231fcd1da | ||
|
|
0eb12962e1 | ||
|
|
0c51f26f82 | ||
|
|
fe4e9e1358 | ||
|
|
96b645ea3e | ||
|
|
84c061db04 | ||
|
|
1563998163 | ||
|
|
49cb54403f | ||
|
|
e2c059ca43 | ||
|
|
28efcd6176 | ||
|
|
777c11ae9d | ||
|
|
8e53115099 | ||
|
|
7799eb2831 | ||
|
|
28ad2b3bda | ||
|
|
b55242e71b | ||
|
|
9bd9b83479 | ||
|
|
8eb6867b4a | ||
|
|
de0b318dab | ||
|
|
141302b10c | ||
|
|
20f0475202 | ||
|
|
5113e66d94 | ||
|
|
90996ccb8f | ||
|
|
0e591cf3aa | ||
|
|
5dde89bb2e | ||
|
|
ede84757b6 | ||
|
|
45685ad64c | ||
|
|
9a522fccc0 | ||
|
|
37e0655dcb | ||
|
|
f74737333a | ||
|
|
cdd8aca0db | ||
|
|
a50b32e706 | ||
|
|
3bb9c27428 | ||
|
|
386a4a50b6 | ||
|
|
5c55801cb0 | ||
|
|
90c5f696e7 | ||
|
|
4795e235de | ||
|
|
65339774ce | ||
|
|
bc34401bb9 |
@@ -1,65 +0,0 @@
|
||||
## 1.虚拟化功能确认
|
||||
|
||||
进入 `Advanced` 菜单的子菜单 `CPU Configuration` :
|
||||
|
||||

|
||||
|
||||
检查 `Intel (VMX) Virtualization Technology` 选项为 `Enabled` 状态:
|
||||
|
||||

|
||||
|
||||
|
||||
## 2.CPU功耗确认
|
||||
|
||||
进入 `Advanced` 菜单的子菜单 `Power & Performance` :
|
||||
|
||||

|
||||
|
||||
进入 `CPU - Power Management Control` :
|
||||
|
||||

|
||||
|
||||
确认 `C states` 选项为 `Enabled` 状态:
|
||||
|
||||

|
||||
|
||||
再进入 `HDC Control` 菜单的子菜单 `View/Configure Turbo Options` :
|
||||
|
||||

|
||||
|
||||
确认以下内容
|
||||
- `Power Limit 1 Override` 选项:`Enabled`
|
||||
- `Power Limit 1` 选项:`15000`
|
||||
- `Power Limit 1 Time Window` 选项:为最大 `128`
|
||||
|
||||

|
||||
|
||||
|
||||
## 3.来电自启确认
|
||||
|
||||
进入 `Advanced` 菜单的子菜单 `Hardware Monitor` :
|
||||
|
||||

|
||||
|
||||
确认 `Restore AC Power Loss` 选项为 `Power On` 状态:
|
||||
|
||||

|
||||
|
||||
|
||||
## 4.设置快速启动
|
||||
|
||||
PVE 系统安装完成后,进入 `Boot` 菜单,将 `Fast Boot` 选项设置为 `Enabled` 状态:
|
||||
|
||||

|
||||
|
||||
调整系统启动顺序,将 `Proxmox` 设置为第一启动项,并关闭其他启动项内容:
|
||||
|
||||

|
||||
|
||||
最后保存 BIOS 设置 `Save Changes and Exit` :
|
||||
|
||||

|
||||
|
||||
使用键盘左右方向键选择 `yes` 并回车键执行保存:
|
||||
|
||||

|
||||
@@ -0,0 +1,76 @@
|
||||
## 1.虚拟化选项
|
||||
|
||||
进入 `Advanced` 菜单的子菜单 `CPU Configuration` :
|
||||
|
||||

|
||||
|
||||
检查 `Intel (VMX) Virtualization Technology` 选项为 `Enabled` 状态:
|
||||
|
||||

|
||||
|
||||
## 2. CPU 功耗
|
||||
|
||||
进入 `Advanced` 菜单的子菜单 `Power & Performance` :
|
||||
|
||||

|
||||
|
||||
进入 `CPU - Power Management Control` :
|
||||
|
||||

|
||||
|
||||
检查 `C states` , **默认** 选项为 `Enabled` 状态,如果遇到网卡 **无法跑满** 的情况,可以尝试将该选项关闭:
|
||||
|
||||

|
||||
|
||||
再进入 `HDC Control` 菜单的子菜单 `View/Configure Turbo Options` :
|
||||
|
||||

|
||||
|
||||
检查以下内容,适当调整以改变功耗墙:
|
||||
- `Power Limit 1 Override` 选项:`Enabled`
|
||||
- `Power Limit 1` 选项:`50000`
|
||||
- `Power Limit 1 Time Window` 选项:为最大 `128`
|
||||
|
||||

|
||||
|
||||
## 3.温控风扇
|
||||
|
||||
进入 `Advanced` 菜单的子菜单 `Hardware Monitor` :
|
||||
|
||||

|
||||
|
||||
进入 `Smart Fan Function` :
|
||||
|
||||

|
||||
|
||||
可对温控风扇参数进行调整:
|
||||
|
||||

|
||||
|
||||
## 4.来电自启
|
||||
|
||||
进入 `Chipset` 菜单的子菜单 `PCH-IO Configuration` :
|
||||
|
||||

|
||||
|
||||
确认 `State After G3` 选项为 `Power On` 状态:
|
||||
|
||||

|
||||
|
||||
## 5.快速启动
|
||||
|
||||
PVE 系统安装完成后,进入 `Boot` 菜单,将 `Fast Boot` 选项设置为 `Enabled` 状态:
|
||||
|
||||

|
||||
|
||||
调整系统启动顺序,将 `Proxmox` 设置为第一启动项,并关闭其他启动项内容:
|
||||
|
||||

|
||||
|
||||
最后保存 BIOS 设置 `Save Changes and Exit` :
|
||||
|
||||

|
||||
|
||||
使用键盘左右方向键选择 `yes` 并回车键执行保存:
|
||||
|
||||

|
||||
@@ -0,0 +1,213 @@
|
||||
## 0.前期准备
|
||||
|
||||
PVE 系统正式安装之前,需要准备 PVE 的安装镜像和一些必要的配套工具。
|
||||
|
||||
### 0.1. PVE 镜像下载
|
||||
|
||||
PVE 下载地址:https://www.proxmox.com/en/downloads
|
||||
|
||||
页面中可能有多个 PVE 的安装 ISO ,可以根据需要进行选择,目前以最新的 `Proxmox VE 8.0 ISO` 作为演示。
|
||||
|
||||

|
||||
|
||||
点击 `Proxmox VE 8.x ISO Installer` 链接。
|
||||
|
||||
下载 ISO 时请注意 `SHA256SUM` ,后续将使用该校验信息对下载下来的 ISO 进行校验,以确保 ISO 文件的完整性。
|
||||
|
||||

|
||||
|
||||
### 0.2.启动盘制作工具
|
||||
|
||||
考虑到制作 PVE 启动盘时,所使用的操作系统可能有 Windows 、macOS 、Linux ,因此这里推荐几个常用的写盘工具。
|
||||
|
||||
#### Ventoy
|
||||
|
||||
官方网站地址:https://www.ventoy.net/cn/index.html
|
||||
|
||||
强烈推荐的引导盘制作工具,优点是可以在一个 U 盘中放入复数个可引导的 ISO 文件。
|
||||
|
||||
免去了多次格式化 U 盘再写入 ISO 文件的操作,非常友好。
|
||||
|
||||
缺点是只支持 Windows 、Linux 。
|
||||
|
||||

|
||||
|
||||
#### Etcher
|
||||
|
||||
官方网站地址:https://etcher.balena.io/
|
||||
|
||||
跨平台的写盘工具,开源,写盘速度很快,缺点是该软件体积较大,下载缓慢。
|
||||
|
||||
支持 Windows 、macOS 、Linux 。
|
||||
|
||||

|
||||
|
||||
#### Rufus
|
||||
|
||||
官方网站地址:https://rufus.ie/zh/
|
||||
|
||||
轻便小巧的写盘工具,仅支持 Windows 。
|
||||
|
||||

|
||||
|
||||
### 0.3. SSH 工具
|
||||
|
||||
考虑到配置 PVE 服务器、路由器、DNS 服务器时,需要在 CLI 中输入命令,因此这里推荐几个常用的 SSH 工具。
|
||||
|
||||
#### Tabby
|
||||
|
||||
官方网站地址:https://tabby.sh
|
||||
|
||||
基于 Electron 开发的开源跨平台终端工具,内部集成了 SFTP ,可以在 Github 平台上进行下载。
|
||||
|
||||
支持 Windows 、macOS 、Linux 。
|
||||
|
||||

|
||||
|
||||
#### MobaXterm
|
||||
|
||||
官方地址:https://mobaxterm.mobatek.net
|
||||
|
||||
功能强大的 SSH 工具,仅支持 Windows 。
|
||||
|
||||

|
||||
|
||||
## 1. PVE 系统安装
|
||||
|
||||
由于机型不同,BIOS 的设置也不同,所以本文不演示具体如何将机器设置成从 U 盘启动。
|
||||
|
||||
在设置 BIOS 时需要注意以下几点:
|
||||
|
||||
- 建议暂时关闭 **安全启动**
|
||||
|
||||
- 确保打开硬件虚拟化支持
|
||||
|
||||
- 确保设备来电自动启动
|
||||
|
||||
- 对于不支持 `UEFI` 启动的设备,检查 `Legacy` 引导模式
|
||||
|
||||
- 检查 CPU 的功耗设置(可选)
|
||||
|
||||
### 1.1.设备引导
|
||||
|
||||
使用 Ventoy 进行设备引导后,出现如下画面,选择 PVE 的安装 ISO 。
|
||||
|
||||

|
||||
|
||||
使用 `Boot in normal mode` 选项进行启动,等待引导跑码完成后,即可进入 PVE 的安装界面。
|
||||
|
||||

|
||||
|
||||
### 1.2. PVE 安装选项
|
||||
|
||||
新版 PVE 安装程序支持纯键盘操作,常用快捷键如下。
|
||||
|
||||
|键盘按键|作用|说明|
|
||||
|--|--|--|
|
||||
|Esc|返回|返回上一步骤|
|
||||
|Enter|确认|确认输入,激活选项或进入下一步骤|
|
||||
|方向键|导航|用于选项选择,或切换输入焦点|
|
||||
|Tab|导航|与方向键功能类似|
|
||||
|ALT + N|下一步|进入下一步骤|
|
||||
|
||||
使用 `方向键` 选择第一项 `Install Proxmox VE (Graphical)` 图形化安装界面,按键盘 `Enter` 进入下一步骤。
|
||||
|
||||

|
||||
|
||||
设备将继续跑码,直到出现最终用户许可协议 EULA ,按键盘组合键 `ALT + N ` 进入下一步骤。
|
||||
|
||||

|
||||
|
||||
### 1.3. PVE 硬盘选项
|
||||
|
||||
此时会出现 `Target Harddisk` 选项,会显示出设备中存在的硬盘列表,可通过下拉框选择安装 PVE 的目标硬盘。
|
||||
|
||||

|
||||
|
||||
点击硬盘列表右侧的 `Options` ,对 PVE 的硬盘安装参数进行一些调整。
|
||||
|
||||
推荐将 `Filesystem` 也就是硬盘的文件系统,设置成 `xfs` 。
|
||||
|
||||

|
||||
|
||||
### 1.4. PVE 时区选项
|
||||
|
||||
此时 PVE 处于未联网的 “离线” 状态,因此不会从互联网中读取时区信息,需要手动设置时区。
|
||||
|
||||
在 `Contry` 处手动输入 `China` ,下方的 `Time zone` 将自动变更为 `Asia/Shanghai` 。
|
||||
|
||||

|
||||
|
||||
### 1.5. PVE 账户与邮箱
|
||||
|
||||
PVE 为最关键的虚拟化层,建议使用强密码,包含大小写字母、数字以及特殊符号。
|
||||
|
||||
`Email` 必须为一个 “合法” 的邮箱地址,不然系统会判定邮箱地址不合法并拒绝继续安装。
|
||||
|
||||

|
||||
|
||||
### 1.6. PVE 网络设置
|
||||
|
||||
默认情况下,PVE 会使用编号较小的第一个网口作为管理口。
|
||||
|
||||
而某些设备,其物理网口顺序与该页面显示的网口顺序 **不一致** ,因此保持默认设置即可。
|
||||
|
||||

|
||||
|
||||
FQDN 为 PVE 的域,PVE 将使用 FQDN 中的二级域名作为其主机名。
|
||||
|
||||
演示中 FQDN 为 `node01.fox.local` ,因此 PVE 的主机名为 `node01` 。
|
||||
|
||||
根据规划,PVE 的 IPv4 管理地址为 `172.16.1.254` 。
|
||||
|
||||
未来主路由的 IPv4 地址为 `172.16.1.1` ,因此均使用该地址作为 PVE 的网关地址和 DNS 地址。
|
||||
|
||||
当 PVE 安装完成后, 将使用 PVE 提供的 WEB 管理页面,进一步对该管理口的设置进行调整。
|
||||
|
||||
|参数|值|说明|
|
||||
|--|--|--|
|
||||
|Hostname (FQDN)|`node01.fox.local`|设置 PVE `域` 和 `主机名` |
|
||||
|IP Address (CIDR)|`172.16.1.254/24`|设置 PVE IPv4 地址|
|
||||
|Gateway|`172.16.1.1`|设置 PVE IPv4 网关|
|
||||
|DNS Server|`172.16.1.1`|设置 PVE IPv4 DNS |
|
||||
|
||||

|
||||
|
||||
### 1.7. PVE 参数确认
|
||||
|
||||
该页面会显示当前 PVE 的安装配置总览,确认无误后即可开始安装。
|
||||
|
||||

|
||||
|
||||
安装完成后,PVE 会告知用户登录的 `IP 地址` 和 `端口` 。
|
||||
|
||||

|
||||
|
||||
## 2. PVE 安装后检查
|
||||
|
||||
PVE 安装完成后会自动重启,等待系统重启完成会显示如下界面,并使用 `root` 账户进行登录,密码为刚才设置的管理密码。
|
||||
|
||||
**注意:Linux 操作系统,在输入密码时是不显示任何字符信息的,输入完成后输入回车即可。**
|
||||
|
||||

|
||||
|
||||
登录系统后,使用一些命令来查看一些基本信息。
|
||||
|
||||
```bash
|
||||
## 查看系统硬盘与挂载
|
||||
$ df -hT
|
||||
|
||||
$ df -hiT
|
||||
|
||||
$ cat /etc/fstab
|
||||
|
||||
## 查看系统代号
|
||||
$ cat /etc/os-release
|
||||
```
|
||||
|
||||
此处显示出 PVE 底层使用的是 Debian 的系统,代号为 `bookworm` ,该代号后续会使用到。
|
||||
|
||||

|
||||
|
||||
至此 PVE 的安装步骤已经完成。
|
||||
|
||||
@@ -0,0 +1,298 @@
|
||||
## 1.更换软件源
|
||||
|
||||
在上一篇文章 [01.PVE系统安装](./01.PVE系统安装.md) 中,从刚装好的 PVE 系统中获取了系统的一些参数。
|
||||
|
||||

|
||||
|
||||
此处显示出 PVE 底层使用的是 Debian 的系统,代号为 `bookworm` 。
|
||||
|
||||
为了后续能对 PVE 系统进行升级,需要更换其镜像仓库,也就是大家熟知的软件源。
|
||||
|
||||
由于目前处于 **“离线”** 安装状态,因此更换完软件源后,在没有网络的情况下无法对系统更新。
|
||||
|
||||
### 1.1.系统软件源
|
||||
|
||||
使用 SSH 工具登录到 PVE 服务器,首先对现有的软件源配置进行备份。
|
||||
|
||||
```bash
|
||||
## 进入系统软件源配置文件目录
|
||||
$ cd /etc/apt
|
||||
|
||||
## 查看系统默认镜像配置
|
||||
$ cat sources.list
|
||||
|
||||
## 将默认软件源配置文件进行备份
|
||||
$ cp sources.list sources.list.bak
|
||||
```
|
||||
|
||||
系统默认镜像配置记录如下。
|
||||
|
||||
```bash
|
||||
deb http://ftp.debian.org/debian bookworm main contrib
|
||||
|
||||
deb http://ftp.debian.org/debian bookworm-updates main contrib
|
||||
|
||||
# security updates
|
||||
deb http://security.debian.org bookworm-security main contrib
|
||||
```
|
||||
|
||||
这里我将使用 [中国科技大(USTC)](http://mirrors.ustc.edu.cn/help/proxmox.html) 的镜像仓库进行替换,使用如下命令。
|
||||
|
||||
**注意:该命令为两行,在输入时请逐行输入并回车执行。**
|
||||
|
||||
```bash
|
||||
## 替换系统软件仓库
|
||||
|
||||
$ sed -i 's|^deb http://ftp.debian.org|deb https://mirrors.ustc.edu.cn|g' /etc/apt/sources.list
|
||||
|
||||
$ sed -i 's|^deb http://security.debian.org|deb https://mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list
|
||||
|
||||
```
|
||||
|
||||
如果希望能更新 CPU 的 `microcode` ,则需要手动添加镜像 `non-free` 、 `non-free-firmware` 参数,完整系统源示例如下。
|
||||
|
||||
```bash
|
||||
deb https://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
|
||||
|
||||
deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
|
||||
|
||||
# security updates
|
||||
deb https://mirrors.ustc.edu.cn/debian-security/ bookworm-security main contrib non-free non-free-firmware
|
||||
```
|
||||
|
||||
### 1.2. PVE 软件源
|
||||
|
||||
默认情况下,PVE 额外启用了 2 个官方源,且为订阅收费制,因此需要替换为免费源。
|
||||
|
||||
删除 PVE 官方付费软件源,使用以下命令。
|
||||
|
||||
**注意:rm 为高风险命令,请正确使用,请勿手抖,请勿手抖。**
|
||||
|
||||
```bash
|
||||
## 删除付费软件源
|
||||
$ rm -rvf /etc/apt/sources.list.d/*.list
|
||||
```
|
||||
|
||||
创建 PVE 免费软件源。
|
||||
|
||||
**注意:该命令为三行,在输入时请逐行输入并回车执行。**
|
||||
|
||||
```bash
|
||||
## 创建 PVE 免费源
|
||||
|
||||
$ source /etc/os-release
|
||||
|
||||
$ echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy $VERSION_CODENAME no-subscription" > /etc/apt/sources.list.d/ceph-no-subscription.list
|
||||
|
||||
$ echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/pve $VERSION_CODENAME pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
|
||||
```
|
||||
|
||||
创建完成后对其进行检查。
|
||||
|
||||
```bash
|
||||
## 检查PVE免费源
|
||||
|
||||
$ cat /etc/apt/sources.list.d/ceph-no-subscription.list
|
||||
|
||||
$ cat /etc/apt/sources.list.d/pve-no-subscription.list
|
||||
```
|
||||
|
||||
如果输出结果中有 USTC 的镜像地址,则表示命令已经正确执行。
|
||||
|
||||
```bash
|
||||
#### PVE 免费软件源示例输出
|
||||
|
||||
#### Ceph
|
||||
deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription
|
||||
|
||||
#### PVE
|
||||
deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bookworm pve-no-subscription
|
||||
```
|
||||
|
||||
### 1.3. PVE CT 源
|
||||
|
||||
如果需要使用 Proxmox 网页端下载 CT Templates ,可替换 CT Templates 源。
|
||||
|
||||
由于该功能暂时未被使用,因此本文只做记录。
|
||||
|
||||
```bash
|
||||
## 替换 CT Templates 源
|
||||
|
||||
$ cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm.bak
|
||||
|
||||
$ sed -i 's|http://download.proxmox.com|https://mirrors.ustc.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
|
||||
|
||||
```
|
||||
|
||||
### 1.4.镜像同步
|
||||
|
||||
更换完成系统源之后,需要同步系统源数据。
|
||||
|
||||
考虑到 **“离线”** 安装时无法同步系统源,因此该步骤可以等到 PVE 正确连接 Internet 后再执行。
|
||||
|
||||
```bash
|
||||
## 清理软件包
|
||||
$ apt clean && apt autoclean && apt autoremove --purge
|
||||
|
||||
## 同步软件源
|
||||
$ apt update
|
||||
|
||||
## 更新系统
|
||||
$ apt dist-upgrade
|
||||
```
|
||||
|
||||
## 2.安装必要软件
|
||||
|
||||
安装软件前,同样需要让 PVE 能够访问外网。
|
||||
|
||||
安装 `iperf3` 后,系统将询问是否将其作为系统服务开机自启,选择 `no` 即可。
|
||||
|
||||
其中 `unattended-upgrades` 为系统自动更新服务,后续会对其进行配置。
|
||||
|
||||
`cpufrequtils` 为 CPU 调度器的配置工具,后续会对 CPU 调度算法进行调整。
|
||||
|
||||
```bash
|
||||
## 同步镜像仓库
|
||||
$ apt update
|
||||
|
||||
## 安装系统软件
|
||||
$ apt install htop lm-sensors unzip neovim tmux unattended-upgrades powermgmt-base
|
||||
|
||||
## 安装网络工具
|
||||
$ apt install iperf iperf3 iftop
|
||||
|
||||
## 安装 CPU 调度调整工具
|
||||
$ apt install cpufrequtils
|
||||
|
||||
## 根据 CPU 厂商安装 CPU 微码工具
|
||||
$ apt install intel-microcode (amd64-microcode)
|
||||
|
||||
## 更新 PCI 数据库
|
||||
$ update-pciids
|
||||
```
|
||||
|
||||
## 3.配置 PVE 网络
|
||||
|
||||
设置电脑的 IPv4 地址为静态地址,电脑 IPv4 地址段需要与 PVE 的地址段保持一致。
|
||||
|
||||
用网线将电脑的网口与 PVE 的管理网口,此时应该为编号最小的第一个网口,相连接。
|
||||
|
||||
访问 PVE 的 WEB 管理界面,对 PVE 的网络进行一些调整。
|
||||
|
||||
根据 **网络设备** 规划, PVE 中虚拟机规划如下。
|
||||
|
||||
|系统|作用|说明|
|
||||
|--|--|--|
|
||||
|RouterOS|主路由|PPPoE 拨号上网|
|
||||
|Debian12|Linux 服务器|内网 DNS 服务器|
|
||||
|OpenWrt|旁路由|内网插件服务|
|
||||
|
||||
根据 **内部网络地址** 规划,PVE IP 地址规划如下。
|
||||
|
||||
|地址类型|作用|值|说明|
|
||||
|--|--|--|--|
|
||||
|IPv4|管理地址|`172.16.1.254`|PVE IPv4 地址|
|
||||
||网关地址|`172.16.1.1`|PVE IPv4 网关|
|
||||
||DNS 地址|`172.16.1.1`|PVE IPv4 DNS 服务器|
|
||||
|IPv6|管理地址|`fdac::fe`|PVE IPv6 地址|
|
||||
||网关地址|`-`|IPv6 网关将使用 `LLA` 自动配置|
|
||||
||DNS 地址|`fdac::1`|PVE IPv6 DNS 服务器|
|
||||
|
||||

|
||||
|
||||
初次登录 PVE 的 WEB 管理后台,打开网络管理页面,此时只有一个 `vmbr0` 。
|
||||
|
||||
该 `vmbr0` 与列表中的第一个物理网口绑定,且在 `CIDR` 和 `网关` 处有 IP 地址参数,说明 `vmbr0` 为当前管理网口。
|
||||
|
||||

|
||||
|
||||
接下来将修改 PVE 网络配置,在修改完成前, **请不要点击 “应用配置”** ,否则会导致 PVE 无法访问。
|
||||
|
||||
在 PVE 内部网络设置完成后,将如图所示。
|
||||
|
||||

|
||||
|
||||
### 3.1.修改 vmbr0
|
||||
|
||||
鼠标双击 `vmbr0` ,进入网桥配置界面。
|
||||
|
||||
删除 `IPv4/CIDR` 和 `网关` 信息,确保 `自动启动` 为勾选状态。
|
||||
|
||||
在备注处填写 `wan` ,然后点击 `OK` 按钮。
|
||||
|
||||

|
||||
|
||||
### 3.2.创建网桥
|
||||
|
||||
点击左上角的 `创建` 按钮,选择 `Linux Bridge` :
|
||||
|
||||

|
||||
|
||||
因为 `vmbr0` 名称已被使用,因此名称填写 `vmbr1` 。
|
||||
|
||||
桥接端口填写顺序的第二个网卡名称,演示中为 `enp3s0` 。
|
||||
|
||||
确保 `自动启动` 为勾选状态,在备注处填写 `lan1` ,点击 `创建` 按钮。
|
||||
|
||||
然后,依次创建所有物理接口的内部网桥,直到最后一个网桥,即 PVE 的管理网口。
|
||||
|
||||

|
||||
|
||||
### 3.3.创建管理网口
|
||||
|
||||
在创建最后一个物理网口的网桥时,需要额外配置 `IPv4` 地址和对应的 `网关` 参数。
|
||||
|
||||

|
||||
|
||||
额外说明:
|
||||
|
||||
1. 如非特殊需求,通常情况下 PVE 系统无需使用 IPv6 网络。
|
||||
|
||||
2. 主路由未配置 ULA IPv6 网段时,例如本文演示地址 `fdac::/64` ,无需填写 `IPv6/CIDR` 参数。
|
||||
|
||||
3. 通常情况下 IPv6 无需填写 `网关` 参数,IPv6 网关将通过 LLA IPv6 地址自动配置。
|
||||
|
||||

|
||||
|
||||
在所有物理网口的 PVE 网桥创建完成后,可以点击 `应用配置` 按钮,此时页面会失去连接。
|
||||
|
||||
无需担心,只需要将电脑的网线从 PVE 物理机的第一个网口拔出,并插入到最后一个网口即可。
|
||||
|
||||
如果万一还是无法访问到 PVE,可以尝试使用网线 “拔插” 方法,挨个测试 PVE 网口的访问情况。
|
||||
|
||||
### 3.4.创建内部网桥
|
||||
|
||||
纯内部网桥,在没有内部路由系统提供额外桥接的情况下,无法直接通过物理网口进行访问。
|
||||
|
||||
只有在主路由(例如 RouterOS )安装完成并建立了内部网桥后,才可正常使用。
|
||||
|
||||
该纯内部网桥,其主要作用是通过 **主路由** 给内部其他虚拟机提供 **统一** 的网络访问接口。
|
||||
|
||||
创建纯内部网桥的方法,与创建物理网口网桥的方法基本一致,唯一区别是 `桥接端口` 参数为 **空** 即可。
|
||||
|
||||

|
||||
|
||||
当然,内部网桥的作用不仅如此,比如还可以作为内部级联路由的连接器。
|
||||
|
||||
例如,安装了 OPNsense 和 RouterOS 两个虚拟机,OPNsense 作为网关防火墙使用。
|
||||
|
||||
此时 RouterOS 作为二级路由系统,OPNsense 的 LAN 口需要与 RouterOS 的 WAN 口相连。
|
||||
|
||||
如果 OPNsense 和 RouterOS 均使用了绑定物理网口的 PVE 网桥,则需用网线在 PVE 服务器上连接两个物理网口。
|
||||
|
||||
浪费了宝贵的网线不说,还占用了网口,得不偿失。
|
||||
|
||||
而纯内部网桥则能很好的解决该问题,有了纯内部网桥,不论多少个虚拟机使用该网桥,只要 IP 地址段相同,即可相互访问。
|
||||
|
||||
## 4.配置 PVE DNS
|
||||
|
||||
在 PVE 系统的安装过程中,设置了 DNS 的 IPv4 地址 `172.16.1.1` ,但并未设置 DNS 的 IPv6 地址。
|
||||
|
||||
在 PVE 的 DNS 设置页面,手动添加 DNS IPv6 地址,即主路由 LAN 口 ULA IPv6 地址。
|
||||
|
||||
同样,若 PVE 不使用 IPv6 网络或主路由未配置 ULA IPv6 网段,本步骤可跳过。
|
||||
|
||||

|
||||
|
||||
至此,PVE 的初始化配置完成。
|
||||
|
||||
@@ -0,0 +1,548 @@
|
||||
## 0.必要条件
|
||||
|
||||
在上一篇文章 [02.PVE初始化配置](./02.PVE初始化配置.md) 中,已初始化了 PVE 系统,接下来需要对 PVE 系统进一步调整。
|
||||
|
||||
在 PVE 系统调整之前,请确认必要的软件包已经安装完成,本文后续命令均在 SSH 终端下执行。
|
||||
|
||||
```bash
|
||||
## 同步镜像仓库
|
||||
$ apt update
|
||||
|
||||
## 安装系统软件
|
||||
$ apt install htop lm-sensors unzip neovim tmux unattended-upgrades powermgmt-base
|
||||
|
||||
## 安装网络工具
|
||||
$ apt install iperf iperf3 iftop
|
||||
|
||||
## 安装 CPU 调度调整工具
|
||||
$ apt install cpufrequtils
|
||||
|
||||
## 根据 CPU 厂商安装 CPU 微码工具
|
||||
$ apt install intel-microcode (amd64-microcode)
|
||||
|
||||
## 更新 PCI 数据库
|
||||
$ update-pciids
|
||||
```
|
||||
|
||||
## 1.系统时区
|
||||
|
||||
如果在安装 PVE 系统时选错了时区,导致系统时间和北京时间不一致,可以使用以下命令修正。
|
||||
|
||||
输出结果如果和北京时间一致,则代表修改正确。
|
||||
|
||||
```bash
|
||||
## 修改系统时区
|
||||
$ timedatectl set-timezone Asia/Shanghai
|
||||
|
||||
## 检查系统时间
|
||||
$ date -R
|
||||
|
||||
#### 系统时间示例输出
|
||||
Sun, 25 Jun 2023 12:12:12 +0800
|
||||
```
|
||||
|
||||
Debian 系统常用 `systemd-timesyncd.service` 来同步时间,而 PVE 系统使用 `chrony.service` 来同步时间。
|
||||
|
||||
为了使用国内的 NTP 服务器,需要对 `chrony.service` 进行配置,执行以下命令。
|
||||
|
||||
```bash
|
||||
## 编辑 chrony 配置文件
|
||||
$ nano /etc/chrony/chrony.conf
|
||||
```
|
||||
|
||||
在编辑器对话框中,将 `pool 2.debian.pool.ntp.org iburst` “注释” 掉,并添加国内的 NTP 服务器。
|
||||
|
||||
```bash
|
||||
## chrony 配置项
|
||||
|
||||
# Use Debian vendor zone.
|
||||
# pool 2.debian.pool.ntp.org iburst ## 在这行前面增加注释符 # 来注释
|
||||
|
||||
# Use Custom vendor zone.
|
||||
pool ntp.tencent.com iburst
|
||||
pool ntp.aliyun.com iburst
|
||||
|
||||
```
|
||||
|
||||
保存该配置文件后,需重启 `chrony.service` ,并再次检查系统 NTP 服务器地址。
|
||||
|
||||
```bash
|
||||
## 重启 chrony 服务
|
||||
$ systemctl restart chrony.service
|
||||
|
||||
## 检查系统 NTP 服务器
|
||||
$ chronyc sources -V
|
||||
|
||||
#### 系统 NTP 服务器示例输出
|
||||
MS Name/IP address Stratum Poll Reach LastRx Last sample
|
||||
===============================================================================
|
||||
^+ 106.55.184.199 2 6 17 11 +752us[ +273us] +/- 40ms
|
||||
^* 203.107.6.88 2 6 17 11 -1868us[-2348us] +/- 17ms
|
||||
```
|
||||
|
||||
## 2. CPU 调度器
|
||||
|
||||
安装好 `cpufrequtils` 后,需检查 CPU 当前调度器。
|
||||
|
||||
```bash
|
||||
## 检查 CPU 当前调度器
|
||||
$ cpufreq-info
|
||||
|
||||
#### 设备 CPU - J4125 示例输出
|
||||
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
|
||||
Report errors and bugs to cpufreq@vger.kernel.org, please.
|
||||
analyzing CPU 0:
|
||||
driver: intel_cpufreq
|
||||
CPUs which run at the same hardware frequency: 0
|
||||
CPUs which need to have their frequency coordinated by software: 0
|
||||
maximum transition latency: 20.0 us.
|
||||
hardware limits: 800 MHz - 2.70 GHz
|
||||
available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil
|
||||
current policy: frequency should be within 800 MHz and 2.70 GHz.
|
||||
The governor "ondemand" may decide which speed to use
|
||||
within this range.
|
||||
current CPU frequency is 1.84 GHz.
|
||||
|
||||
#### 设备 CPU - N6005 示例输出
|
||||
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
|
||||
Report errors and bugs to cpufreq@vger.kernel.org, please.
|
||||
analyzing CPU 0:
|
||||
driver: intel_pstate
|
||||
CPUs which run at the same hardware frequency: 0
|
||||
CPUs which need to have their frequency coordinated by software: 0
|
||||
maximum transition latency: 4294.55 ms.
|
||||
hardware limits: 800 MHz - 3.30 GHz
|
||||
available cpufreq governors: performance, powersave
|
||||
current policy: frequency should be within 800 MHz and 3.30 GHz.
|
||||
The governor "performance" may decide which speed to use
|
||||
within this range.
|
||||
current CPU frequency is 2.00 GHz.
|
||||
```
|
||||
|
||||
这里面主要关注两个点:
|
||||
|
||||
- driver: `intel_cpufreq` 或 `intel_pstate`
|
||||
|
||||
- current policy: `governor "ondemand"` 或 `governor "performance"`
|
||||
|
||||
还有另外一个命令可用来显示 CPU 当前调度器。
|
||||
|
||||
```bash
|
||||
## 检查 CPU 当前调度器
|
||||
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
||||
|
||||
#### 设备 CPU - J4125 示例输出
|
||||
ondemand
|
||||
|
||||
#### 设备 CPU - N6005 示例输出
|
||||
performance
|
||||
```
|
||||
|
||||
CPU 驱动一般不建议手动调整,而 `governor` 后面的参数表示 CPU 当前调度器设置。
|
||||
|
||||
接下来,需要了解 CPU 支持的调度器有哪些,使用以下命令。
|
||||
|
||||
```bash
|
||||
## 检查 CPU 调度器支持情况
|
||||
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
|
||||
|
||||
#### 设备 CPU - J4125 示例输出
|
||||
conservative ondemand userspace powersave performance schedutil
|
||||
|
||||
#### 设备 CPU - N6005 示例输出
|
||||
performance powersave
|
||||
```
|
||||
|
||||
根据 CPU 所使用的驱动不同,可选调度器也不同,至于每种调度器有什么优劣,欢迎大家深度挖掘。
|
||||
|
||||
- CPU 驱动为 `intel_cpufreq` 时,推荐使用 `schedutil` 调度器。
|
||||
|
||||
- CPU 驱动为 `intel_pstate` 时,推荐使用 `powersave` 调度器。
|
||||
|
||||
本文使用 `powersave` 调度器为演示,使用 `nano` 编辑器来编辑 `cpufrequtils` 的配置文件。
|
||||
|
||||
因为该配置文件很长,完整的配置文件可查看 [pve_cpufrequtils.conf](./src/pve_cpufrequtils.conf) 以便对比。
|
||||
|
||||
修改完成后,需要重启 PVE 服务器来使参数生效。
|
||||
|
||||
```bash
|
||||
## 编辑 cpufrequtils 配置文件
|
||||
$ nano /etc/init.d/cpufrequtils
|
||||
```
|
||||
|
||||
在配置文件中修改以下配置项,并保存。
|
||||
|
||||
```bash
|
||||
## cpufrequtils 配置项
|
||||
|
||||
ENABLE="true"
|
||||
GOVERNOR="powersave" ## 修改本行的调度器为 powersave
|
||||
MAX_SPEED="0"
|
||||
MIN_SPEED="0"
|
||||
|
||||
```
|
||||
|
||||
PVE 服务器重启完成后需再次查看 CPU 调度器,检验配置文件是否生效。
|
||||
|
||||
这里提供两个额外命令,方便实时查看 CPU 当前频率和温度状况。
|
||||
|
||||
```bash
|
||||
## 查看 CPU 当前频率
|
||||
$ watch cat /sys/devices/system/cpu/cpu[0-9]*/cpufreq/scaling_cur_freq
|
||||
|
||||
## 查看内部温度
|
||||
$ watch -d sensors
|
||||
```
|
||||
|
||||
## 3. PVE 定时重启
|
||||
|
||||
有时需要让 PVE 服务器周期性的定时重启,则可使用以下命令。
|
||||
|
||||
参数表示每月 `1` 、 `16` 号的 `5` 点 `0` 分执行系统重启命令。
|
||||
|
||||
```bash
|
||||
## 查看系统定时任务
|
||||
$ crontab -l
|
||||
|
||||
## 编辑系统定时任务,编辑器选择 nano
|
||||
$ crontab -e
|
||||
```
|
||||
|
||||
在配置文件末尾,增加以下配置项。
|
||||
|
||||
```bash
|
||||
## 定时任务配置项
|
||||
|
||||
0 5 1,16 * * /usr/sbin/reboot
|
||||
|
||||
```
|
||||
|
||||
## 4. PVE 自动更新
|
||||
|
||||
### 4.1.系统定时器
|
||||
|
||||
配置系统自动更新之前,需检查系统当前定时器状态。
|
||||
|
||||
后续将手动调整该定时器的时间,使其每 `5` 天凌晨 `02:00` 进行触发。
|
||||
|
||||
```bash
|
||||
## 检查系统定时器
|
||||
$ systemctl status apt-daily-upgrade.timer
|
||||
|
||||
#### 系统定时器示例输出
|
||||
● apt-daily-upgrade.timer - Daily apt upgrade and clean activities
|
||||
Loaded: loaded (/lib/systemd/system/apt-daily-upgrade.timer; enabled; preset: enabled)
|
||||
Active: active (waiting) since Fri 2023-06-23 18:55:58 CST; 1 day 18h ago
|
||||
Until: Fri 2023-06-23 18:55:58 CST; 1 day 18h ago
|
||||
Trigger: Mon 2023-06-26 06:26:25 CST; 16h left
|
||||
Triggers: ● apt-daily-upgrade.service
|
||||
|
||||
Jun 23 18:55:58 node01 systemd[1]: Started apt-daily-upgrade.timer - Daily apt upgrade and clean activities.
|
||||
```
|
||||
|
||||
### 4.2.配置更新策略
|
||||
|
||||
使用以下命令,启用系统自动更新。
|
||||
|
||||
执行命令后,使用 “左右” 方向键进行选择,“回车” 键进行确认。
|
||||
|
||||
```bash
|
||||
## 配置自动更新策略
|
||||
$ dpkg-reconfigure -plow unattended-upgrades
|
||||
|
||||
## 选择 “是” (“YES”)
|
||||
|
||||
#### 系统自动更新示例输出
|
||||
Creating config file /etc/apt/apt.conf.d/20auto-upgrades with new version
|
||||
```
|
||||
|
||||
进一步调整 `20auto-upgrades` 配置文件。
|
||||
|
||||
```bash
|
||||
## 进入 apt 的配置目录
|
||||
$ cd /etc/apt/apt.conf.d
|
||||
|
||||
## 编辑 20auto-upgrades 配置文件
|
||||
$ nano /etc/apt/apt.conf.d/20auto-upgrades
|
||||
```
|
||||
|
||||
删除里面全部内容,添加以下配置项,并保存。
|
||||
|
||||
配置文件中,用来控制更新周期的参数为 `APT::Periodic::Unattended-Upgrade` ,`5` 表示更新周期为 `5` 天。
|
||||
|
||||
```bash
|
||||
## 系统更新周期配置项
|
||||
|
||||
APT::Periodic::Update-Package-Lists "1";
|
||||
APT::Periodic::Unattended-Upgrade "5";
|
||||
APT::Periodic::AutocleanInterval "1";
|
||||
APT::Periodic::CleanInterval "1";
|
||||
|
||||
```
|
||||
|
||||
进一步调整 `50unattended-upgrades` 配置文件。
|
||||
|
||||
```bash
|
||||
## 编辑 50unattended-upgrades 配置文件
|
||||
$ nano /etc/apt/apt.conf.d/50unattended-upgrades
|
||||
```
|
||||
|
||||
配置文件中,被修改的参数解释如下:
|
||||
|
||||
- 启用了 Debian `bookworm-updates` 相关更新。
|
||||
|
||||
- 增加并启用 PVE 自有仓库的更新。
|
||||
|
||||
- 增加并启用 PVE Ceph 仓库的更新,请按需启用。
|
||||
|
||||
- 自动修复被打断的 Dpkg 安装。
|
||||
|
||||
- 自动移除无用的的内核包。
|
||||
|
||||
- 自动移除因更新而出现的无用依赖包。
|
||||
|
||||
- 自动移除以前的无用依赖包。
|
||||
|
||||
- 自动重启:开启。
|
||||
|
||||
- 自动重启时间:`05:00` 。
|
||||
|
||||
因为该配置文件很长,完整的配置文件可查看 [pve_50unattended_upgrades.conf](./src/pve_50unattended_upgrades.conf) 以便对比。
|
||||
|
||||
```bash
|
||||
## 删除以下行前面的注释符 // ,代表启用
|
||||
|
||||
"origin=Debian,codename=${distro_codename}-updates";
|
||||
|
||||
## 添加 PVE 系统更新项目
|
||||
|
||||
"origin=Proxmox,codename=${distro_codename},label=Proxmox Debian Repository";
|
||||
|
||||
## 按需添加 PVE Ceph 更新项目
|
||||
|
||||
"origin=Proxmox,codename=${distro_codename},label=Proxmox Ceph Debian Repository";
|
||||
|
||||
## 在配置文件末尾增加以下配置项,代表启用,并调整参数
|
||||
|
||||
Unattended-Upgrade::AutoFixInterruptedDpkg "true";
|
||||
|
||||
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
|
||||
|
||||
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";
|
||||
|
||||
Unattended-Upgrade::Remove-Unused-Dependencies "true";
|
||||
|
||||
Unattended-Upgrade::Automatic-Reboot "true";
|
||||
|
||||
Unattended-Upgrade::Automatic-Reboot-Time "05:00";
|
||||
|
||||
```
|
||||
|
||||
### 4.3.重设触发器
|
||||
|
||||
系统自动更新配置文件修改完成后,需要重设自动更新定时器,执行以下命令。
|
||||
|
||||
完整的配置文件可查看 [pve_apt_daily_upgrade.conf](./src/pve_apt_daily_upgrade.conf) 以便对比。
|
||||
|
||||
```bash
|
||||
## 配置系统定时器
|
||||
$ systemctl edit apt-daily-upgrade.timer
|
||||
```
|
||||
|
||||
根据配置文件中的提示,在中间空白处填入以下配置项。
|
||||
|
||||
```bash
|
||||
## 定时器配置项
|
||||
|
||||
[Timer]
|
||||
OnCalendar=
|
||||
OnCalendar=02:00
|
||||
RandomizedDelaySec=0
|
||||
|
||||
```
|
||||
|
||||
设置完成后,重启自动更新触发器。
|
||||
|
||||
```bash
|
||||
## 重启触发器
|
||||
$ systemctl restart apt-daily-upgrade.timer
|
||||
|
||||
## 再次检查触发器状态
|
||||
$ systemctl status apt-daily-upgrade.timer
|
||||
|
||||
#### 系统自动更新触发器示例输出
|
||||
● apt-daily-upgrade.timer - Daily apt upgrade and clean activities
|
||||
Loaded: loaded (/lib/systemd/system/apt-daily-upgrade.timer; enabled; preset: enabled)
|
||||
Drop-In: /etc/systemd/system/apt-daily-upgrade.timer.d
|
||||
└─override.conf
|
||||
Active: active (waiting) since Sun 2023-06-25 14:35:06 CST; 9s ago
|
||||
Until: Sun 2023-06-25 14:35:06 CST; 9s ago
|
||||
Trigger: Mon 2023-06-26 02:00:00 CST; 11h left
|
||||
Triggers: ● apt-daily-upgrade.service
|
||||
|
||||
Jun 25 14:35:06 node01 systemd[1]: Stopped apt-daily-upgrade.timer - Daily apt upgrade and clean activities.
|
||||
Jun 25 14:35:06 node01 systemd[1]: Stopping apt-daily-upgrade.timer - Daily apt upgrade and clean activities...
|
||||
Jun 25 14:35:06 node01 systemd[1]: Started apt-daily-upgrade.timer - Daily apt upgrade and clean activities.
|
||||
```
|
||||
|
||||
## 5.硬件直通
|
||||
|
||||
### 5.1.修改 Grub
|
||||
|
||||
参考官方文档 [qm_pci_passthrough](https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_pci_passthrough) 和 [Pci passthrough](https://pve.proxmox.com/wiki/Pci_passthrough) 开启 PVE 硬件直通功能。
|
||||
|
||||
使用 SSH 工具登录到 PVE 服务器,编辑系统 `Grub` 的配置文件 `/etc/default/grub` 。
|
||||
|
||||
```bash
|
||||
## 编辑 Grub 配置文件
|
||||
$ nano /etc/default/grub
|
||||
```
|
||||
|
||||
在编辑器对话框中修改 `GRUB_CMDLINE_LINUX_DEFAULT` 参数,注意命令中间的空格。
|
||||
|
||||
```bash
|
||||
## Intel 处理器添加参数
|
||||
|
||||
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
|
||||
|
||||
```
|
||||
|
||||
根据官方文档的说明,AMD 处理器下硬件直通功能将会自动打开,否则需要手动修改 `Grub` 配置文件。
|
||||
|
||||
```bash
|
||||
## AMD 处理器添加参数
|
||||
|
||||
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
|
||||
|
||||
```
|
||||
|
||||
修改并保存后,需要更新系统 `Grub` 。
|
||||
|
||||
```bash
|
||||
## 更新系统 Grub
|
||||
$ update-grub
|
||||
```
|
||||
|
||||
### 5.2.添加内核模块
|
||||
|
||||
修改系统 `/etc/modules` 配置文件,增加必要的系统模块。
|
||||
|
||||
```bash
|
||||
## 编辑系统配置文件
|
||||
$ nano /etc/modules
|
||||
```
|
||||
|
||||
在配置文件中添加以下配置项,并保存。
|
||||
|
||||
```bash
|
||||
## 硬件直通配置项
|
||||
|
||||
vfio
|
||||
vfio_iommu_type1
|
||||
vfio_pci
|
||||
|
||||
```
|
||||
|
||||
使用以下命令更新 `initramfs` ,更新完成后,建议重启 PVE 服务器。
|
||||
|
||||
```bash
|
||||
## 更新 initramfs
|
||||
$ update-initramfs -u -k all
|
||||
```
|
||||
|
||||
### 5.3.检查硬件直通
|
||||
|
||||
PVE 服务器重启完成后,再次使用 SSH 工具登录,并使用以下命令检查硬件直通状态。
|
||||
|
||||
主要查看 `IOMMU` 、 `Directed I/O` 或 `Interrupt Remapping` 的启用状态。
|
||||
|
||||
```bash
|
||||
## 检查系统硬件直通状态
|
||||
$ dmesg | grep -e DMAR -e IOMMU -e AMD-Vi
|
||||
|
||||
#### 设备 CPU - N6005 示例输出
|
||||
[ 0.017937] ACPI: DMAR 0x00000000746C2000 000088 (v02 INTEL EDK2 00000002 01000013)
|
||||
[ 0.017965] ACPI: Reserving DMAR table memory at [mem 0x746c2000-0x746c2087]
|
||||
[ 0.047812] DMAR: IOMMU enabled
|
||||
[ 0.116031] DMAR: Host address width 39
|
||||
[ 0.116032] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
|
||||
[ 0.116038] DMAR: dmar0: reg_base_addr fed90000 ver 4:0 cap 1c0000c40660462 ecap 49e2ff0505e
|
||||
[ 0.116041] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
|
||||
[ 0.116046] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
|
||||
[ 0.116048] DMAR: RMRR base: 0x0000007b800000 end: 0x0000007fbfffff
|
||||
[ 0.116051] DMAR-IR: IOAPIC id 2 under DRHD base 0xfed91000 IOMMU 1
|
||||
[ 0.116052] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
|
||||
[ 0.116053] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
|
||||
[ 0.117774] DMAR-IR: Enabled IRQ remapping in x2apic mode
|
||||
[ 1.746431] pci 0000:00:02.0: DMAR: Skip IOMMU disabling for graphics
|
||||
[ 2.290116] DMAR: No ATSR found
|
||||
[ 2.290117] DMAR: No SATC found
|
||||
[ 2.290118] DMAR: IOMMU feature fl1gp_support inconsistent
|
||||
[ 2.290119] DMAR: IOMMU feature pgsel_inv inconsistent
|
||||
[ 2.290120] DMAR: IOMMU feature nwfs inconsistent
|
||||
[ 2.290121] DMAR: IOMMU feature pds inconsistent
|
||||
[ 2.290122] DMAR: IOMMU feature eafs inconsistent
|
||||
[ 2.290123] DMAR: IOMMU feature prs inconsistent
|
||||
[ 2.290123] DMAR: IOMMU feature nest inconsistent
|
||||
[ 2.290124] DMAR: IOMMU feature mts inconsistent
|
||||
[ 2.290124] DMAR: IOMMU feature sc_support inconsistent
|
||||
[ 2.290125] DMAR: IOMMU feature dev_iotlb_support inconsistent
|
||||
[ 2.290126] DMAR: dmar0: Using Queued invalidation
|
||||
[ 2.290129] DMAR: dmar1: Using Queued invalidation
|
||||
[ 2.290568] DMAR: Intel(R) Virtualization Technology for Directed I/O
|
||||
```
|
||||
|
||||
检查系统 `IOMMU` 分组,使用以下命令。
|
||||
|
||||
```bash
|
||||
## 检查 IOMMU group
|
||||
$ find /sys/kernel/iommu_groups/ -type l
|
||||
|
||||
#### 设备 CPU - N6005 示例输出
|
||||
/sys/kernel/iommu_groups/7/devices/0000:00:1c.4
|
||||
/sys/kernel/iommu_groups/15/devices/0000:04:00.0
|
||||
/sys/kernel/iommu_groups/5/devices/0000:00:17.0
|
||||
/sys/kernel/iommu_groups/13/devices/0000:02:00.0
|
||||
/sys/kernel/iommu_groups/3/devices/0000:00:15.2
|
||||
/sys/kernel/iommu_groups/3/devices/0000:00:15.0
|
||||
/sys/kernel/iommu_groups/11/devices/0000:00:1f.0
|
||||
/sys/kernel/iommu_groups/11/devices/0000:00:1f.5
|
||||
/sys/kernel/iommu_groups/11/devices/0000:00:1f.3
|
||||
/sys/kernel/iommu_groups/11/devices/0000:00:1f.4
|
||||
/sys/kernel/iommu_groups/1/devices/0000:00:00.0
|
||||
/sys/kernel/iommu_groups/8/devices/0000:00:1c.5
|
||||
/sys/kernel/iommu_groups/16/devices/0000:05:00.0
|
||||
/sys/kernel/iommu_groups/6/devices/0000:00:1c.0
|
||||
/sys/kernel/iommu_groups/14/devices/0000:03:00.0
|
||||
/sys/kernel/iommu_groups/4/devices/0000:00:16.0
|
||||
/sys/kernel/iommu_groups/12/devices/0000:01:00.0
|
||||
/sys/kernel/iommu_groups/2/devices/0000:00:14.5
|
||||
/sys/kernel/iommu_groups/2/devices/0000:00:14.2
|
||||
/sys/kernel/iommu_groups/2/devices/0000:00:14.0
|
||||
/sys/kernel/iommu_groups/10/devices/0000:00:1c.7
|
||||
/sys/kernel/iommu_groups/0/devices/0000:00:02.0
|
||||
/sys/kernel/iommu_groups/9/devices/0000:00:1c.6
|
||||
```
|
||||
|
||||
## 6.系统清理
|
||||
|
||||
PVE 系统配置完成后,可逐行执行以下命令,对系统进行清理。
|
||||
|
||||
```bash
|
||||
## 清理系统软件包
|
||||
$ apt clean && apt autoclean && apt autoremove --purge
|
||||
|
||||
## 清理系统缓存
|
||||
$ rm -rvf /var/cache/apt/* /var/lib/apt/lists/* /tmp/*
|
||||
|
||||
## 清理系统日志
|
||||
$ find /var/log/ -type f | xargs rm -rvf
|
||||
|
||||
## 清理命令历史记录文件
|
||||
$ rm -rvf ~/.bash_history
|
||||
|
||||
## 清理命令历史
|
||||
$ history -c
|
||||
```
|
||||
|
||||
至此 PVE 的系统调整已经完成。
|
||||
@@ -0,0 +1,261 @@
|
||||
## 0.前期准备
|
||||
|
||||
将虚拟机制作成模板,可在后续新建虚拟机时快速从模板中创建,减少系统安装配置时间。
|
||||
|
||||
该虚拟机模板主要作为内网 DNS 服务器使用,并会安装 Adguard Home 。
|
||||
|
||||
本文将使用 Debian 的云镜像 `debian-12-genericcloud-amd64.qcow2` 作为模板虚拟机的镜像。
|
||||
|
||||
访问 [Debian Official Cloud Images](https://cloud.debian.org/images/cloud/) 官方网站,下载最新版 `Bookworm` 云镜像以及对应的校验文件。
|
||||
|
||||

|
||||
|
||||
## 1.创建虚拟机
|
||||
|
||||
登录 PVE 管理后台,点击页面右上角 `创建虚拟机` ,进入虚拟机创建流程。
|
||||
|
||||
### 1.1.常规
|
||||
|
||||
勾选底部 `高级` 选项,显示完整的配置参数,节点即 “本机” ,`VM ID` 和 `名称` 可自定义。
|
||||
|
||||

|
||||
|
||||
### 1.2.操作系统
|
||||
|
||||
无需使用任何安装介质,客户机操作系统类别选择 `Linux` , 版本选择 `6.x - 2.6 Kernel` 即可。
|
||||
|
||||

|
||||
|
||||
### 1.3.系统
|
||||
|
||||
SCSI 控制器保持默认 `VirtIO SCSI single` ,并勾选 `Qemu代理` 选项。
|
||||
|
||||

|
||||
|
||||
### 1.4.磁盘
|
||||
|
||||
一般情况下,如果该虚拟机仅为 Adguard Home 服务器,`20G` 磁盘空间足够使用。
|
||||
|
||||
由于使用 Debian 云镜像制作虚拟机模板,此处删除所有 `磁盘` 。
|
||||
|
||||

|
||||
|
||||
### 1.5.CPU
|
||||
|
||||
CPU `类别` 选择 `host` ,`插槽` 与 `核心` 数根据物理 CPU 核心数进行酌情设置。
|
||||
|
||||
若 PVE 服务器内有多颗物理 CPU ,则推荐勾选 `启用NUMA` 选项。
|
||||
|
||||

|
||||
|
||||
### 1.6.内存
|
||||
|
||||
内存一般 `2G` 足够使用,取消勾选 `Ballooning设备` 。
|
||||
|
||||

|
||||
|
||||
### 1.7.网络
|
||||
|
||||
在 [02.PVE初始化配置](./02.PVE初始化配置.md) 中,曾创建了一个没有桥接任何物理网口的内部网桥。
|
||||
|
||||
该内部网桥接口同属于主路由内部网桥成员接口。
|
||||
|
||||
因此,模板虚拟机的 `桥接` 参数可设置为该纯内部网桥。
|
||||
|
||||

|
||||
|
||||
由于演示环境中暂未安装主路由系统,因此选择其他网桥接口替代。
|
||||
|
||||
通常情况下无需使用 PVE 内建防火墙,因此 **取消勾选** 网络设备的 `防火墙` 选项。
|
||||
|
||||
推荐在 `Multiqueue` 处根据前面设置的 CPU 核心数进行网卡多队列设置,设置比例为 1:1 。
|
||||
|
||||
即有 n 个 CPU 核心,此处多队列也设置为 n 。
|
||||
|
||||

|
||||
|
||||
### 1.8.确认
|
||||
|
||||
接下来查看设置总览,确认无误后即可点击 `完成` 。
|
||||
|
||||

|
||||
|
||||
## 2.调整硬件参数
|
||||
|
||||
### 2.1.删除光驱
|
||||
|
||||
查看虚拟机详情页,在虚拟机硬件配置页面,移除其 `CD/DVD驱动器` 。
|
||||
|
||||

|
||||
|
||||
### 2.2.导入镜像文件
|
||||
|
||||
使用 SSH 工具登录 PVE 服务器,并进入 `tmp` 目录,逐行执行以下命令创建一个文件夹。
|
||||
|
||||
```bash
|
||||
## 创建存放 Debian 云镜像的临时目录
|
||||
$ mkdir -p /tmp/Debian
|
||||
|
||||
## 进入文件夹
|
||||
$ cd /tmp/Debian
|
||||
```
|
||||
|
||||
将 Debian 云镜像传输到该文件夹,并检查 `hash` 。
|
||||
|
||||
```bash
|
||||
## 下载云镜像校验文件
|
||||
$ wget https://cloud.debian.org/images/cloud/bookworm/latest/SHA512SUMS
|
||||
|
||||
## 下载云镜像
|
||||
$ wget https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-genericcloud-amd64.qcow2
|
||||
|
||||
## 检查文件是否存在
|
||||
$ ls -la
|
||||
|
||||
## 显示校验文件内容
|
||||
$ cat SHA512SUMS
|
||||
|
||||
## 计算文件 hash
|
||||
$ sha512sum debian-12-genericcloud-amd64.qcow2
|
||||
```
|
||||
|
||||
确认无误后,将镜像文件导入刚才创建的虚拟机,命令中的 `VM ID` 需要根据实际情况替换,演示为 `1000` 。
|
||||
|
||||
```bash
|
||||
## 将 qcow2 镜像导入虚拟机中
|
||||
$ qm importdisk 1000 debian-12-genericcloud-amd64.qcow2 local-lvm
|
||||
|
||||
#### 镜像导入示例输出
|
||||
Successfully imported disk as 'unused0:local-lvm:vm-1000-disk-0'
|
||||
```
|
||||
|
||||

|
||||
|
||||
鼠标 **双击** 该未使用的磁盘,点击 `添加` 。
|
||||
|
||||

|
||||
|
||||
导入的镜像只有 `2G` 磁盘空间,为了后续方便使用,需要对磁盘进行扩容。
|
||||
|
||||
鼠标 **单击** 选中该磁盘,选择页面顶部 `磁盘操作` 菜单的子菜单 `调整大小` 。
|
||||
|
||||

|
||||
|
||||
在弹出的对话框中,给该磁盘增加 `18G` 磁盘空间。
|
||||
|
||||

|
||||
|
||||
### 2.3.添加 CloudInit
|
||||
|
||||
为了能够正常使用 Cloud-Init 初始化系统,需要给模板虚拟机添加 `CloudInit设备` 。
|
||||
|
||||
点击顶部 `添加` 菜单,选择 `CloudInit设备` 。
|
||||
|
||||

|
||||
|
||||
`总线/设备` 选择 `SCSI` ,编号为 `1` ,`存储` 选择 `local-lvm` 。
|
||||
|
||||

|
||||
|
||||
### 2.4.添加串行端口
|
||||
|
||||
部分云镜像需要使用 `serial` 端口作为视频输出端口,否则虚拟机无法启动,因此给模板虚拟机添加串行端口。
|
||||
|
||||
点击顶部 `添加` 菜单,选择 `串行端口` 。
|
||||
|
||||

|
||||
|
||||
串行端口编号为 `0` 。
|
||||
|
||||

|
||||
|
||||
虚拟机硬件设备修改完成后,如下图所示。
|
||||
|
||||

|
||||
|
||||
## 3.调整配置参数
|
||||
|
||||
进入左侧虚拟机 `选项` 页面,可以看到当前虚拟机的配置参数。
|
||||
|
||||
通常情况下,模板虚拟机的配置参数需要修改以下内容:
|
||||
|
||||
1. 开机自启动(模板无需修改,克隆的虚拟机需要修改)
|
||||
|
||||
2. 启动/关机顺序(模板无需修改,克隆的虚拟机需要修改)
|
||||
|
||||
3. 引导顺序(仅模板需要修改)
|
||||
|
||||
4. 使用平板指针(仅模板需要修改)
|
||||
|
||||
### 3.1.修改引导顺序
|
||||
|
||||
鼠标 **双击** `引导顺序` 选项,进入编辑界面。
|
||||
|
||||
在 `scsi0` 设备处,勾选前面的 “已启用” 复选框,并使用行首的排序功能,将该设备拖拽到第一个。
|
||||
|
||||
然后点击 `OK` 按钮。
|
||||
|
||||

|
||||
|
||||
### 3.2.设置平板指针
|
||||
|
||||
关闭 `使用平板指针` 选项,可以一定程度上降低虚拟机的 CPU 使用率。
|
||||
|
||||

|
||||
|
||||
## 4.设置 Cloud-Init
|
||||
|
||||
进入左侧虚拟机 `Cloud-Init` 菜单,可以看到当前虚拟机的初始化参数。
|
||||
|
||||
### 4.1.自动配置 IPv6
|
||||
|
||||
根据之前的网络规划,内网的 IP 地址段为 `172.16.1.0/24` ,因此模板虚拟机的参数如下。
|
||||
|
||||
|参数|值|说明|
|
||||
|--|--|--|
|
||||
|用户|`fox`|新系统的管理员账户|
|
||||
|密码|`********`|使用强密码|
|
||||
|DNS域|`fox.local`|内网域名(可选)|
|
||||
|DNS服务器|`172.16.1.1`|本机 DNS 服务器|
|
||||
|SSH公钥|`无`|使用秘钥登录服务器,暂不使用|
|
||||
|Upgrade packages|`是`|启动时更新软件包,保持默认即可|
|
||||
|IP配置(net0)|`ip=172.16.1.250/24,gw=172.16.1.1,ip6=auto`|模板的 IP 设置|
|
||||
|
||||
**额外说明:**
|
||||
|
||||
1. 修改 `Cloud-Init` 参数时,需要在虚拟机关机情况下修改才会生效。
|
||||
|
||||
2. `DNS服务器` 参数支持输入多个 IPv4 / IPv6 地址,使用空格隔开。
|
||||
|
||||
3. 当前 `DNS服务器` 参数为主路由 LAN 口 IPv4 地址,确保虚拟机能正常联网。
|
||||
|
||||

|
||||
|
||||
`Cloud-Init` 的 `IP配置` ,IPv4 使用静态地址,IPv6 使用 `SLAAC` 自动配置,如下图所示。
|
||||
|
||||

|
||||
|
||||
### 4.2.手动配置 IPv6
|
||||
|
||||
当主路由配置了 ULA IPv6 网段,且希望指定内网 DNS 服务器的 ULA IPv6 地址时,需要调整 `Cloud-Init` 参数。
|
||||
|
||||
本文 ULA IPv6 演示地址为 `fdac::/64` ,`DNS服务器` 和 `IP配置` 参数调整如下。
|
||||
|
||||
|参数|值|说明|
|
||||
|--|--|--|
|
||||
|DNS域|`fox.local`|内网域名(可选)|
|
||||
|DNS服务器|`172.16.1.1 fdac::1`|本机 DNS 服务器|
|
||||
|IP配置(net0)|`ip=172.16.1.250/24,gw=172.16.1.1,ip6=fdac::fa/64`|模板的 IP 设置|
|
||||
|
||||
`DNS服务器` 参数中需要加入主路由 LAN 口 ULA IPv6 地址。
|
||||
|
||||

|
||||
|
||||
`IP配置` 参数,IPv4 使用静态地址,IPv6 同样使用静态地址,如下图所示。
|
||||
|
||||
IPv6 使用静态地址后,并不影响虚拟机通过主路由获取公网 GUA IPv6 地址。
|
||||
|
||||

|
||||
|
||||
至此,模板虚拟机创建完成,可将该虚拟机开机。
|
||||
|
||||
@@ -0,0 +1,473 @@
|
||||
## 1.配置系统
|
||||
|
||||
在上一篇文章 [04.PVE创建模板虚拟机](./04.PVE创建模板虚拟机.md) 中,已经创建好了用于制作虚拟机模板的模板虚拟机。
|
||||
|
||||
并调整了模板虚拟机的硬件参数、配置参数,但还需对 Debian 系统进行调整。
|
||||
|
||||
此时将模板虚拟机开机后,使用 `Cloud-Init` 中设置的账号密码进行登录。
|
||||
|
||||
### 1.1.配置 SSH
|
||||
|
||||
因为 Debian 的云镜像默认使用 SSH 秘钥登录,因此切换到左侧菜单的 `控制台` 进行登录。
|
||||
|
||||

|
||||
|
||||
在虚拟机的命令行界面,使用 `vim` 编辑器编辑 `sshd` 服务的配置文件,执行以下命令。
|
||||
|
||||
`vim` 编辑器常用操作如下:
|
||||
|
||||
- 编辑文件,按下键盘 `i` 键,进入编辑模式。
|
||||
|
||||
- 保存文件,按下键盘 `Esc` 键,退出编辑模式,再输入组合键 `:wq` 即可保存。
|
||||
|
||||
```bash
|
||||
## 编辑 ssh 配置文件
|
||||
$ sudo vim /etc/ssh/sshd_config.d/server_sshd.conf
|
||||
```
|
||||
|
||||
在配置文件中添加以下配置项,并保存。
|
||||
|
||||
```bash
|
||||
## SSH 配置项
|
||||
|
||||
PasswordAuthentication yes
|
||||
PermitEmptyPasswords no
|
||||
UseDNS no
|
||||
|
||||
```
|
||||
|
||||
修改完成后,需要重启 SSH 服务。
|
||||
|
||||
```bash
|
||||
## 重启 sshd
|
||||
$ sudo systemctl restart ssh.service
|
||||
```
|
||||
|
||||
### 1.2.配置软件源
|
||||
|
||||
使用 SSH 工具登录模板虚拟机,常用 SSH 工具请参阅 [01.PVE系统安装](./01.PVE系统安装.md) 。
|
||||
|
||||
首先需要对 Debian 系统软件源进行修改,这里使用 [USTC](http://mirrors.ustc.edu.cn/help/debian.html) 镜像站作为演示。
|
||||
|
||||
当系统版本发生变化时,请参考使用 snullp 大叔开发的 [配置生成器](https://mirrors.ustc.edu.cn/repogen/) 。
|
||||
|
||||
Debian12 云镜像的软件源配置采用了 `DEB822` 格式,新版 `sources.list` 配置文件内容如下。
|
||||
|
||||
```bash
|
||||
## 查看镜像配置文件
|
||||
$ cat /etc/apt/sources.list
|
||||
|
||||
#### 配置文件示例输出
|
||||
# See /etc/apt/sources.list.d/debian.sources
|
||||
```
|
||||
|
||||
进一步查看新配置文件 `debian.sources` 的内容,其配置包含 `3` 个部分。
|
||||
|
||||
```bash
|
||||
## 查看新版镜像配置文件
|
||||
$ cat /etc/apt/sources.list.d/debian.sources
|
||||
|
||||
#### 新版配置文件示例输出 (主体部分)
|
||||
Types: deb deb-src
|
||||
URIs: mirror+file:///etc/apt/mirrors/debian.list
|
||||
Suites: bookworm bookworm-updates bookworm-backports
|
||||
Components: main
|
||||
|
||||
Types: deb deb-src
|
||||
URIs: mirror+file:///etc/apt/mirrors/debian-security.list
|
||||
Suites: bookworm-security
|
||||
Components: main
|
||||
|
||||
## 查看关联的配置文件
|
||||
$ cat /etc/apt/mirrors/debian.list
|
||||
|
||||
#### 关联配置文件示例输出 (关联部分 1 )
|
||||
https://deb.debian.org/debian
|
||||
|
||||
## 查看关联的配置文件
|
||||
$ cat /etc/apt/mirrors/debian-security.list
|
||||
|
||||
#### 关联配置文件示例输出 (关联部分 2 )
|
||||
https://deb.debian.org/debian-security
|
||||
|
||||
```
|
||||
|
||||
因此,修改 Debian12 软件源的方式也有两种,本文将尝试使用第 `2` 种修改方案。
|
||||
|
||||
1. 删除当前软件源配置文件,重新启用常规 `sources.list` 配置文件的配置方案。
|
||||
|
||||
2. 根据当前软件源配置文件的语法规则,仅修改配置文件。
|
||||
|
||||
使用 `vim` 编辑器编辑 `debian.sources` 配置文件,执行以下命令。
|
||||
|
||||
```bash
|
||||
## 编辑 debian.sources 配置文件
|
||||
$ sudo vim /etc/apt/sources.list.d/debian.sources
|
||||
```
|
||||
|
||||
删除里面全部内容,添加以下配置项,并保存。
|
||||
|
||||
```bash
|
||||
## 系统软件源配置项
|
||||
|
||||
Types: deb
|
||||
URIs: https://mirrors.ustc.edu.cn/debian
|
||||
Suites: bookworm bookworm-updates bookworm-backports
|
||||
Components: main contrib non-free non-free-firmware
|
||||
|
||||
Types: deb
|
||||
URIs: https://mirrors.ustc.edu.cn/debian-security
|
||||
Suites: bookworm-security
|
||||
Components: main contrib non-free non-free-firmware
|
||||
|
||||
```
|
||||
|
||||
为了防止 `Cloud-Init` 服务意外修改软件源配置,需要添加文件保护,执行以下命令。
|
||||
|
||||
```bash
|
||||
## 增加文件保护
|
||||
$ sudo chattr +i /etc/apt/sources.list.d/debian.sources
|
||||
|
||||
## 检查文件保护
|
||||
$ lsattr /etc/apt/sources.list.d/debian.sources
|
||||
|
||||
#### 示例输出
|
||||
----i---------e------- /etc/apt/sources.list.d/debian.sources
|
||||
```
|
||||
|
||||
### 1.3.安装软件
|
||||
|
||||
软件源设置完成后,需要更新系统,逐行执行以下命令。
|
||||
|
||||
```bash
|
||||
## 清理不必要的包
|
||||
$ sudo apt clean && sudo apt autoclean && sudo apt autoremove --purge
|
||||
|
||||
## 更新软件源
|
||||
$ sudo apt update
|
||||
|
||||
## 更新系统
|
||||
$ sudo apt dist-upgrade
|
||||
```
|
||||
|
||||
接下来安装系统必要软件,安装 `iperf3` 后,系统将询问是否将其作为系统服务开机自启,选择 `no` 即可。
|
||||
|
||||
```bash
|
||||
## 安装系统软件
|
||||
$ sudo apt install qemu-guest-agent zsh git htop tmux cron nftables sshguard neovim
|
||||
|
||||
## 安装系统自动更新工具
|
||||
$ sudo apt install unattended-upgrades powermgmt-base python3-gi
|
||||
|
||||
## 安装网络工具
|
||||
$ sudo apt install iperf iperf3 iftop lsof ldnsutils
|
||||
|
||||
## 写入磁盘
|
||||
$ sudo sync
|
||||
```
|
||||
|
||||
### 1.4.调整内核参数
|
||||
|
||||
由于该 Debian 虚拟机模板将用于克隆内网 DNS 服务器,因此需要调整内核参数来简单优化性能。
|
||||
|
||||
使用 `neovim` 编辑器编辑 **内核参数** 配置文件,执行以下命令。
|
||||
|
||||
```bash
|
||||
## 编辑 内核参数 配置文件
|
||||
$ sudo nvim /etc/sysctl.d/99-sysctl.conf
|
||||
```
|
||||
|
||||
在配置文件末尾输入以下配置项,注意配置中间的空格。
|
||||
|
||||
```bash
|
||||
# This configuration file is customized by fox
|
||||
# Optimize system parameters
|
||||
|
||||
kernel.panic = 20
|
||||
kernel.panic_on_oops = 1
|
||||
|
||||
net.core.default_qdisc = fq_codel
|
||||
net.ipv4.tcp_congestion_control = bbr
|
||||
|
||||
# Other adjustable system parameters
|
||||
|
||||
net.ipv4.conf.all.log_martians = 1
|
||||
|
||||
net.ipv4.igmp_max_memberships = 100
|
||||
|
||||
net.ipv4.tcp_challenge_ack_limit = 1000
|
||||
net.ipv4.tcp_fin_timeout = 30
|
||||
net.ipv4.tcp_keepalive_time = 120
|
||||
net.ipv4.tcp_max_orphans = 4096
|
||||
net.ipv4.tcp_max_tw_buckets = 4096
|
||||
net.ipv4.tcp_syncookies = 1
|
||||
|
||||
net.ipv6.conf.all.use_tempaddr = 0
|
||||
net.ipv6.conf.default.use_tempaddr = 0
|
||||
```
|
||||
|
||||
保存该配置文件后,重启系统或者执行以下命令让配置生效。
|
||||
|
||||
```bash
|
||||
## 让内核参数生效
|
||||
$ sudo sysctl -f
|
||||
```
|
||||
|
||||
### 1.5.调整系统时间
|
||||
|
||||
默认情况下 Debian 云镜像的系统时间需要调整,执行以下命令将系统时区设置为中国时区。
|
||||
|
||||
```bash
|
||||
## 设置系统时区
|
||||
$ sudo timedatectl set-timezone Asia/Shanghai
|
||||
|
||||
## 检查系统时间
|
||||
$ date -R
|
||||
|
||||
#### 系统时间示例输出
|
||||
Mon, 26 Jun 2023 16:16:16 +0800
|
||||
```
|
||||
|
||||
Debian 云镜像默认使用 `systemd-timesyncd.service` 同步时间,且需要调整为使用国内 NTP 服务器。
|
||||
|
||||
调整 NTP 服务器参数,逐行执行以下命令。
|
||||
|
||||
```bash
|
||||
## 创建 NTP 配置文件的文件夹
|
||||
$ sudo mkdir -p /etc/systemd/timesyncd.conf.d
|
||||
|
||||
## 创建 NTP 配置文件
|
||||
$ sudo nvim /etc/systemd/timesyncd.conf.d/server_ntp.conf
|
||||
```
|
||||
|
||||
在配置文件中添加以下配置项,并保存。
|
||||
|
||||
```bash
|
||||
## NTP 配置项
|
||||
|
||||
[Time]
|
||||
NTP=ntp.tencent.com ntp.aliyun.com
|
||||
|
||||
```
|
||||
|
||||
保存该配置文件后,需重启 `systemd-timesyncd.service` 服务,并再次检查系统 NTP 服务器地址。
|
||||
|
||||
```bash
|
||||
## 重启 chrony 服务
|
||||
$ sudo systemctl restart systemd-timesyncd.service
|
||||
|
||||
## 检查系统 NTP 服务器
|
||||
$ sudo systemctl status systemd-timesyncd.service
|
||||
```
|
||||
|
||||
如果输出以下类似内容,则表示系统 NTP 服务设置正确。
|
||||
|
||||
```bash
|
||||
#### NTP 服务示例输出
|
||||
● systemd-timesyncd.service - Network Time Synchronization
|
||||
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; preset: enabled)
|
||||
Active: active (running) since Mon 2023-06-26 16:16:00 CST; 16s ago
|
||||
Docs: man:systemd-timesyncd.service(8)
|
||||
Main PID: 18829 (systemd-timesyn)
|
||||
Status: "Contacted time server 106.55.184.199:123 (ntp.tencent.com)."
|
||||
Tasks: 2 (limit: 2355)
|
||||
Memory: 1.4M
|
||||
CPU: 37ms
|
||||
CGroup: /system.slice/systemd-timesyncd.service
|
||||
└─18829 /lib/systemd/systemd-timesyncd
|
||||
|
||||
Jun 26 16:48:00 DNST01 systemd[1]: Starting systemd-timesyncd.service - Network Time Synchronization...
|
||||
Jun 26 16:48:00 DNST01 systemd[1]: Started systemd-timesyncd.service - Network Time Synchronization.
|
||||
Jun 26 16:48:00 DNST01 systemd-timesyncd[18829]: Contacted time server 106.55.184.199:123 (ntp.tencent.com).
|
||||
Jun 26 16:48:00 DNST01 systemd-timesyncd[18829]: Initial clock synchronization to Mon 2023-06-26 16:16:16.000000 CST.
|
||||
```
|
||||
|
||||
### 1.6.配置自动更新
|
||||
|
||||
配置 Debian 云镜像的系统自动更新,与配置 PVE 系统自动更新方法基本一致,参阅 [03.PVE系统调整](./03.PVE系统调整.md) 。
|
||||
|
||||
配置系统更新之前,先检查当前系统定时器状态。
|
||||
|
||||
```bash
|
||||
## 检查系统定时器
|
||||
$ sudo systemctl status apt-daily-upgrade.timer
|
||||
```
|
||||
|
||||
配置系统自动更新策略,执行以下命令,使用键盘 `左右方向键` 进行选择,`回车键` 进行确认。
|
||||
|
||||
```bash
|
||||
## 配置自动更新策略
|
||||
$ sudo dpkg-reconfigure -plow unattended-upgrades
|
||||
|
||||
## 选择 “是” (“YES”)
|
||||
|
||||
#### 系统自动更新示例输出
|
||||
Creating config file /etc/apt/apt.conf.d/20auto-upgrades with new version
|
||||
```
|
||||
|
||||
进一步调整 `20auto-upgrades` 配置文件。
|
||||
|
||||
```bash
|
||||
## 编辑 20auto-upgrades 配置文件
|
||||
$ sudo nvim /etc/apt/apt.conf.d/20auto-upgrades
|
||||
```
|
||||
|
||||
删除里面全部内容,添加以下配置项,并保存。
|
||||
|
||||
配置文件中,用来控制更新周期的参数为 `APT::Periodic::Unattended-Upgrade` ,`3` 表示更新周期为 `3` 天。
|
||||
|
||||
```bash
|
||||
## 系统更新周期配置项
|
||||
|
||||
APT::Periodic::Update-Package-Lists "1";
|
||||
APT::Periodic::Unattended-Upgrade "3";
|
||||
APT::Periodic::AutocleanInterval "1";
|
||||
APT::Periodic::CleanInterval "1";
|
||||
|
||||
```
|
||||
|
||||
进一步调整 `50unattended-upgrades` 配置文件。
|
||||
|
||||
```bash
|
||||
## 编辑 50unattended-upgrades 配置文件
|
||||
$ sudo nvim /etc/apt/apt.conf.d/50unattended-upgrades
|
||||
```
|
||||
|
||||
根据 “注释” 中相关说明,调整配置文件。
|
||||
|
||||
因为该配置文件很长,完整的配置文件可查看 [debian_50unattended_upgrades.conf](./src/debian_50unattended_upgrades.conf) 以便对比。
|
||||
|
||||
```bash
|
||||
## 删除以下行前面的注释符 // ,代表启用
|
||||
|
||||
"origin=Debian,codename=${distro_codename}-updates";
|
||||
|
||||
## 在配置文件末尾增加以下配置项,代表启用,并调整参数
|
||||
|
||||
Unattended-Upgrade::AutoFixInterruptedDpkg "true";
|
||||
|
||||
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
|
||||
|
||||
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";
|
||||
|
||||
Unattended-Upgrade::Remove-Unused-Dependencies "true";
|
||||
|
||||
Unattended-Upgrade::Automatic-Reboot "true";
|
||||
|
||||
Unattended-Upgrade::Automatic-Reboot-Time "04:30";
|
||||
|
||||
```
|
||||
|
||||
系统自动更新配置文件修改完成后,需要重设自动更新定时器,执行以下命令。
|
||||
|
||||
```bash
|
||||
## 配置系统定时器
|
||||
$ sudo systemctl edit apt-daily-upgrade.timer
|
||||
```
|
||||
|
||||
根据配置文件中的提示,在中间空白处填入以下配置项。
|
||||
|
||||
```bash
|
||||
## 定时器配置项
|
||||
|
||||
[Timer]
|
||||
OnCalendar=
|
||||
OnCalendar=02:00
|
||||
RandomizedDelaySec=0
|
||||
|
||||
```
|
||||
|
||||
设置完成后,重启自动更新定时器并检查其状态,执行以下命令。
|
||||
|
||||
在输出结果中看到系统自动更新的触发时间为凌晨 `02:00` 则表示设置正确。
|
||||
|
||||
```bash
|
||||
## 重启触发器
|
||||
$ sudo systemctl restart apt-daily-upgrade.timer
|
||||
|
||||
## 再次检查触发器状态
|
||||
$ sudo systemctl status apt-daily-upgrade.timer
|
||||
```
|
||||
|
||||
### 1.7.配置定时任务
|
||||
|
||||
本步骤为可选操作,主要设置系统定时重启。
|
||||
|
||||
```bash
|
||||
## 查看系统定时任务
|
||||
$ sudo crontab -l
|
||||
|
||||
## 编辑系统定时任务,编辑器选择 nano
|
||||
$ sudo crontab -e
|
||||
```
|
||||
|
||||
在配置文件末尾,增加以下配置项。
|
||||
|
||||
```bash
|
||||
## 定时任务配置项
|
||||
|
||||
0 6 8,24 * * /usr/sbin/reboot
|
||||
|
||||
```
|
||||
|
||||
### 1.8.配置 ZSH
|
||||
|
||||
`Zsh` 是比 `Bash` 好用的 `Shell` 程序,使用 `oh-my-zsh` 进行配置。
|
||||
|
||||
```bash
|
||||
## 返回 home 目录
|
||||
$ cd
|
||||
|
||||
## 使用 curl 安装 oh-my-zsh
|
||||
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
||||
|
||||
## 或者使用 wget 安装 oh-my-zsh
|
||||
$ sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
|
||||
|
||||
## 询问是否切换默认 shell,输入 Y
|
||||
|
||||
#### 示例输出
|
||||
Time to change your default shell to zsh:
|
||||
Do you want to change your default shell to zsh? [Y/n] y
|
||||
```
|
||||
|
||||
### 1.9.清理系统
|
||||
|
||||
Debian 模板虚拟机已经配置完成,在将其转换为模板前需要对系统进行清理。
|
||||
|
||||
逐行执行以下命令,注意命令中的空格。
|
||||
|
||||
```bash
|
||||
## 清理系统软件包
|
||||
$ sudo apt clean && sudo apt autoclean && sudo apt autoremove --purge
|
||||
|
||||
## 清理系统缓存
|
||||
$ sudo rm -rvf /var/cache/apt/* /var/lib/apt/lists/* /tmp/*
|
||||
|
||||
## 清理系统日志
|
||||
$ sudo find /var/log/ -type f | xargs sudo rm -rvf
|
||||
|
||||
## 清理命令历史记录文件
|
||||
$ rm -rvf ~/.bash_history ~/.zsh_history
|
||||
|
||||
## 清理命令历史
|
||||
$ history -c
|
||||
|
||||
## 关闭系统
|
||||
$ sudo shutdown now
|
||||
```
|
||||
|
||||
## 2.虚拟机转为模板
|
||||
|
||||
在 Debian 模板虚拟机关机后,进入 PVE 的 WEB 管理界面。
|
||||
|
||||
在左侧虚拟机列表中,鼠标 **右键单击** Debian 模板虚拟机,在弹出的菜单中选择 `转换成模板` 。
|
||||
|
||||
需要说明的是,虚拟机 `转换成模板` 的操作是不可逆的。
|
||||
|
||||
如果某些 Debian 系统的配置项有问题,只能在用该模板克隆出来的新虚拟机中进行修改,或者删除并重新制作模板。
|
||||
|
||||

|
||||
|
||||
至此 Debian 虚拟机模板制作完成。
|
||||
|
||||
@@ -0,0 +1,332 @@
|
||||
## 1.克隆虚拟机
|
||||
|
||||
在上一篇文章 [05.PVE制作虚拟机模板](./05.PVE制作虚拟机模板.md) 中,已经制作好了虚拟机模板。
|
||||
|
||||
接下来将使用该模板克隆出新的虚拟机,并安装 Adguard Home 作为内网的 DNS 服务器。
|
||||
|
||||
鼠标 **右键单击** 虚拟机模板,在弹出的菜单中选择 `克隆` 。
|
||||
|
||||

|
||||
|
||||
在弹出的虚拟机克隆对话框中,根据实际情况及下方表格内容,修改虚拟机参数。
|
||||
|
||||
|参数|值|说明|
|
||||
|--|--|--|
|
||||
|目标节点|`node01`|当前 PVE 服务器节点|
|
||||
|VM ID|`201`|可自定义,不能与现存虚拟机 `VM ID` 相同|
|
||||
|名称|`DNS01`|可自定义,`Cloud-Init` 将使用该名称作为虚拟机 `hostname` |
|
||||
|模式|`完整克隆`|选择虚拟机的克隆模式|
|
||||
|目标存储|`local-lvm`|克隆出的虚拟机文件存储位置|
|
||||
|
||||
修改参数后,点击 `克隆` ,即可使用该模板克隆出新的虚拟机。
|
||||
|
||||

|
||||
|
||||
|
||||
## 2.调整 Cloud-Init
|
||||
|
||||
克隆出来的虚拟机的 `Cloud-Init` 参数默认与模板完全一致。
|
||||
|
||||
根据 **内部网络地址** 规划,内网 DNS 服务器 IP 地址分别为:
|
||||
|
||||
- `172.16.1.2/24 (fdac::2/64)`
|
||||
|
||||
- `172.16.1.3/24 (fdac::3/64)`
|
||||
|
||||
因此需要调整新虚拟机的 `Cloud-Init` 参数。
|
||||
|
||||
- `IP配置` 中的 IPv4 地址参数为 `172.16.1.2/24` ,网关保持 `172.16.1.1` 不变。
|
||||
|
||||
- `IP配置` 中的 IPv6 地址参数为 `fdac::2/64` ,网关保持为空。
|
||||
|
||||
需要注意的是,如果修改了 `用户` 参数,相当于新建了一个系统管理员,之前设置的 `oh-my-zsh` 需要在新管理员下重新设置。
|
||||
|
||||

|
||||
|
||||
当主路由配置了 ULA IPv6 网段,且指定了内网 DNS 服务器的 ULA IPv6 地址时,参数如下。
|
||||
|
||||

|
||||
|
||||
## 3.调整配置参数
|
||||
|
||||
在 [04.PVE创建模板虚拟机](./04.PVE创建模板虚拟机.md) 中提到过,新虚拟机需要修改配置参数才能自动启动。
|
||||
|
||||
进入左侧虚拟机 `选项` 页面,将虚拟机 `开机自启动` 参数设置为 `是` 。
|
||||
|
||||

|
||||
|
||||
鼠标 **双击** `启动/关机顺序` 选项,可调整虚拟机的自动开机参数。
|
||||
|
||||
`启动/关机顺序` 为 `2` ,表示该虚拟机第 `2` 个启动,倒数第 `2` 个关机。
|
||||
|
||||
`启动延时` 为 `10` ,表示该虚拟机在 PVE 启动后,延迟 `10` 秒后自动启动。
|
||||
|
||||

|
||||
|
||||
## 4.调整系统端口
|
||||
|
||||
设置完成后,将该虚拟机开机,使用 SSH 工具登录,并使用以下命令检查端口占用。
|
||||
|
||||
```bash
|
||||
## 检查 53 端口占用
|
||||
$ sudo lsof -i :53
|
||||
|
||||
#### 端口占用示例输出
|
||||
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
|
||||
systemd-r 347 systemd-resolve 17u IPv4 13445 0t0 UDP localhost:domain
|
||||
systemd-r 347 systemd-resolve 18u IPv4 13446 0t0 TCP localhost:domain (LISTEN)
|
||||
systemd-r 347 systemd-resolve 19u IPv4 13447 0t0 UDP localhost:domain
|
||||
systemd-r 347 systemd-resolve 20u IPv4 13448 0t0 TCP localhost:domain (LISTEN)
|
||||
```
|
||||
|
||||
当前系统 `53` 端口被 `systemd-resolved.service` 占用,会导致设置 DNS 服务时监听端口失败。
|
||||
|
||||
为了正常使用 `53` 端口,需要对 `systemd-resolved.service` 进行配置,逐行执行以下命令。
|
||||
|
||||
```bash
|
||||
## 创建 systemd-resolved 配置文件夹
|
||||
$ sudo mkdir -p /etc/systemd/resolved.conf.d
|
||||
|
||||
## 创建 systemd-resolved 配置文件
|
||||
$ sudo nvim /etc/systemd/resolved.conf.d/server_dns.conf
|
||||
```
|
||||
|
||||
在配置文件中添加以下配置项,并保存。
|
||||
|
||||
```bash
|
||||
## systemd-resolved 配置项
|
||||
|
||||
[Resolve]
|
||||
DNS=127.0.0.1
|
||||
DNSStubListener=no
|
||||
|
||||
```
|
||||
|
||||
保存该配置文件后,还需调整系统 `resolv.conf` 配置文件,逐行执行以下命令。
|
||||
|
||||
```bash
|
||||
## 备份 resolv.conf 配置文件
|
||||
$ sudo mv /etc/resolv.conf /etc/resolv.conf.bak
|
||||
|
||||
## 创建 resolv.conf 软链接
|
||||
$ sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
|
||||
```
|
||||
|
||||
配置完成后,需重启 `systemd-resolved.service` 服务,并再次检查系统 `53` 端口占用。
|
||||
|
||||
```bash
|
||||
## 重启 systemd-resolved 服务
|
||||
$ sudo systemctl restart systemd-resolved.service
|
||||
```
|
||||
|
||||
## 5. Adguard Home
|
||||
|
||||
`Adguard Home` 将采用 `snap` 形式安装,逐行执行以下命令。
|
||||
|
||||
```bash
|
||||
## 安装 snap
|
||||
$ sudo apt install snapd
|
||||
|
||||
## 安装 Adguard Home
|
||||
$ sudo snap install adguard-home
|
||||
```
|
||||
|
||||
### 5.1.自动更新
|
||||
|
||||
查看 `Snap` 当前的更新策略,执行以下命令。
|
||||
|
||||
```bash
|
||||
## 显示当前 Snap 自动更新设置
|
||||
$ sudo snap refresh --time
|
||||
```
|
||||
|
||||
将 `Snap` 自动更新时间设置为每天 `2:30-3:30` 和 `14:30-15:30` 两个时间段。
|
||||
|
||||
```bash
|
||||
## 修改 Snap 自动更新时间
|
||||
$ sudo snap set system refresh.timer=2:30-3:30,14:30-15:30
|
||||
|
||||
## 其他 Snap 自动更新时间设置语法参考
|
||||
$ sudo snap set system refresh.timer=mon,2:30,,fri,2:30
|
||||
```
|
||||
|
||||
### 5.2.配置 Adguard Home
|
||||
|
||||
关于 `Adguard Home` 配置相关内容,请参阅 [Adguard Home 折腾手记](https://gitee.com/callmer/agh_toss_notes) 。
|
||||
|
||||
### 5.3.定时任务
|
||||
|
||||
本步骤为可选操作,主要设置定时重启 `Adguard Home` 。
|
||||
|
||||
```bash
|
||||
## 查看系统定时任务
|
||||
$ sudo crontab -l
|
||||
|
||||
## 编辑系统定时任务,编辑器选择 nano
|
||||
$ sudo crontab -e
|
||||
```
|
||||
|
||||
在配置文件末尾,增加以下配置项。
|
||||
|
||||
```bash
|
||||
## 定时任务配置项
|
||||
|
||||
0 5 * * * /usr/bin/snap restart adguard-home
|
||||
|
||||
```
|
||||
|
||||
## 6. SmartDNS
|
||||
|
||||
若需使用 `SmartDNS` 代替 `Adguard Home` ,可使用 Debian 官方源进行安装,但其版本通常较为 “过时” 。
|
||||
|
||||
```bash
|
||||
## 安装 SmartDNS
|
||||
$ sudo apt install smartdns
|
||||
```
|
||||
|
||||
因此,更推荐使用其 Github 仓库中的最新稳定版进行安装,官方仓库请参阅 [pymumu/smartdns](https://github.com/pymumu/smartdns/releases) 。
|
||||
|
||||
下载 `SmartDNS` 最新版本时,请根据系统架构选择合适的版本,逐行执行以下命令。
|
||||
|
||||
```bash
|
||||
## 创建存放 SmartDNS 安装包的临时目录
|
||||
$ mkdir -p /tmp/SmartDNS
|
||||
|
||||
## 进入文件夹
|
||||
$ cd /tmp/SmartDNS
|
||||
|
||||
## 下载 SmartDNS 安装包
|
||||
$ wget https://github.com/pymumu/smartdns/releases/download/Release42/smartdns.1.2023.05.07-1641.x86_64-linux-all.tar.gz
|
||||
|
||||
## 解压缩 SmartDNS 安装包
|
||||
$ tar zxf smartdns.1.2023.05.07-1641.x86_64-linux-all.tar.gz
|
||||
|
||||
## 进入安装包目录
|
||||
$ cd smartdns
|
||||
|
||||
## 赋予安装脚本执行权限
|
||||
$ chmod +x ./install
|
||||
|
||||
## 安装 SmartDNS
|
||||
$ sudo ./install -i
|
||||
```
|
||||
|
||||
修改 `SmartDNS` 配置之前,需检查 `smartdns.service` 服务状态,确保该服务开机自启动。
|
||||
|
||||
```bash
|
||||
## 检查 smartdns.service
|
||||
$ sudo systemctl status smartdns.service
|
||||
|
||||
## 设置 smartdns.service 开机自启动
|
||||
$ sudo systemctl enable smartdns.service
|
||||
```
|
||||
|
||||
### 6.1.配置 SmartDNS
|
||||
|
||||
`SmartDNS` 配置较为复杂,可按需制定各类 DNS 请求规则,建议先查阅官方提供的 [配置指导](https://pymumu.github.io/smartdns/config/basic-config/) 和 [配置选项](https://pymumu.github.io/smartdns/configuration/) 。
|
||||
|
||||
若需使用 `SmartDNS` 过滤广告,则需下载其广告过滤配置文件,为可选操作。
|
||||
|
||||
```bash
|
||||
## 下载广告过滤配置文件
|
||||
$ sudo wget https://anti-ad.net/anti-ad-for-smartdns.conf -O /etc/smartdns/anti-ad-smartdns.conf
|
||||
```
|
||||
|
||||
`SmartDNS` 的主配置文件一般位于 `/etc/smartdns` 目录下,修改配置文件之前,使用以下命令将其备份。
|
||||
|
||||
```bash
|
||||
## 备份 SmartDNS 主配置文件
|
||||
$ sudo mv /etc/smartdns/smartdns.conf /etc/smartdns/smartdns.conf.bak
|
||||
```
|
||||
|
||||
使用 `neovim` 编辑器创建 `SmartDNS` 主配置文件,执行以下命令。
|
||||
|
||||
```bash
|
||||
## 创建 SmartDNS 主配置文件
|
||||
$ sudo nvim /etc/smartdns/smartdns.conf
|
||||
```
|
||||
|
||||
在编辑器对话框中输入以下内容,并保存。
|
||||
|
||||
**额外说明:**
|
||||
|
||||
- 当不使用 `anti-ad-smartdns.conf` 进行广告过滤时,需移除主配置文件中对应配置项。
|
||||
|
||||
- 检查配置文件中关于本地域名及其上游 DNS 服务器相关配置,请根据实际情况进行调整。
|
||||
|
||||
- 若仅需 `DoT` / `DoH` 作为上游 DNS 服务器,可移除 `server-tcp` 相关配置项。
|
||||
|
||||
```bash
|
||||
# This configuration file is customized by fox,
|
||||
# Optimize SmartDNS parameters for local DNS server.
|
||||
|
||||
conf-file /etc/smartdns/anti-ad-smartdns.conf
|
||||
|
||||
bind [::]:53
|
||||
bind-tcp [::]:53
|
||||
|
||||
serve-expired yes
|
||||
serve-expired-ttl 86400
|
||||
serve-expired-reply-ttl 3
|
||||
prefetch-domain yes
|
||||
serve-expired-prefetch-time 43200
|
||||
|
||||
speed-check-mode ping,tcp:80,tcp:443
|
||||
|
||||
force-qtype-SOA 65
|
||||
|
||||
log-level warn
|
||||
|
||||
server 119.29.29.29 -group dnspod
|
||||
server 2402:4e00:: -group dnspod
|
||||
server 223.5.5.5 -group alidns
|
||||
server 2400:3200::1 -group alidns
|
||||
nameserver /doh.pub/dnspod
|
||||
nameserver /dot.pub/dnspod
|
||||
nameserver /dns.alidns.com/alidns
|
||||
|
||||
server 172.16.1.1 -group fox
|
||||
server fdac::1 -group fox
|
||||
nameserver /fox.local/fox
|
||||
domain-rules /fox.local/ -no-cache -speed-check-mode none
|
||||
|
||||
server-tcp 119.29.29.29
|
||||
server-tcp 223.5.5.5
|
||||
server-tcp 114.114.114.114
|
||||
|
||||
server-tcp 2402:4e00::
|
||||
server-tcp 2400:3200::1
|
||||
server-tcp 2400:3200:baba::1
|
||||
|
||||
server-tls 1.12.12.12 -spki-pin 5TIMjgyMhA0qmPdK+AM9LX6vNI/9EPBydh/ZXdfcYmI= -host-name dot.pub
|
||||
server-tls 120.53.53.53 -spki-pin 5TIMjgyMhA0qmPdK+AM9LX6vNI/9EPBydh/ZXdfcYmI= -host-name dot.pub
|
||||
server-tls 223.5.5.5 -spki-pin ZwR21gnCMTzsM6VWtnb/azufgYegWWuhE9reP5tamWU= -host-name dns.alidns.com
|
||||
server-tls 223.6.6.6 -spki-pin ZwR21gnCMTzsM6VWtnb/azufgYegWWuhE9reP5tamWU= -host-name dns.alidns.com
|
||||
|
||||
server-https https://doh.pub/dns-query
|
||||
server-https https://dns.alidns.com/dns-query
|
||||
|
||||
```
|
||||
|
||||
### 6.2.定时任务
|
||||
|
||||
本步骤为可选操作,主要设置 `SmartDNS` 定时更新广告过滤配置文件和定时重启。
|
||||
|
||||
```bash
|
||||
## 编辑系统定时任务,编辑器选择 nano
|
||||
$ sudo crontab -e
|
||||
```
|
||||
|
||||
在配置文件末尾,增加以下配置项。
|
||||
|
||||
```bash
|
||||
## 定时任务配置项
|
||||
|
||||
0 5 * * * /usr/bin/wget -q --tries=10 --retry-connrefused --random-wait https://anti-ad.net/anti-ad-for-smartdns.conf -O /etc/smartdns/anti-ad-smartdns.conf
|
||||
|
||||
30 5 * * * /usr/bin/systemctl restart smartdns.service
|
||||
|
||||
```
|
||||
|
||||
至此,新虚拟机已配置完成,可作为内网 DNS 服务器使用。
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
## 1.添加备份作业
|
||||
|
||||
在所有虚拟机创建并配置完成后,可以使用 PVE 自带的备份功能周期性的将虚拟机备份。
|
||||
|
||||
点击 PVE 的 `数据中心` ,在右侧菜单中选择 `备份` 功能。
|
||||
|
||||
点击顶部 `添加` 按钮,添加一个 `备份作业` 。
|
||||
|
||||

|
||||
|
||||
### 1.1.常规选项
|
||||
|
||||
在弹出的 `创建:备份作业` 对话框中,勾选底部 `高级` 选项,`备份作业` 的各项参数如下。
|
||||
|
||||
|参数|值|说明|
|
||||
|--|--|--|
|
||||
|节点|`node01`|选择当前 PVE 服务器节点|
|
||||
|存储|`local`|选择存放备份文件的路径|
|
||||
|计划|`*-01,16 03:30`|`备份作业` 执行的时间计划|
|
||||
|选择模式|`包括选中的VMs`|执行备份的虚拟机对象|
|
||||
|发送邮箱至|`your_email@domain.com`|`备份作业` 邮件的收件人邮箱|
|
||||
|电子邮件|`始终通知`|何时发送 `备份作业` 邮件提醒|
|
||||
|压缩|`ZSTD`|选择备份文件的压缩算法|
|
||||
|模式|`停止`|选择备份虚拟机的方式,推荐使用 `停止` |
|
||||
|启用|**勾选**|表示该 `备份作业` 为启用状态|
|
||||
|作业评论|`Backup Your Server :)`|`备份作业` 的备注信息,使用英文输入|
|
||||
|重复错过|**勾选**|表示当意外错过备份执行时间后,将重试备份|
|
||||
|
||||
**额外说明:**
|
||||
|
||||
1. 计划中的 `*-01,16 03:30` 表示每个月的 1、16 日凌晨 03:30 进行备份。
|
||||
|
||||
2. `备份作业` 在正确配置收件人邮箱之前,并不能发出邮件。
|
||||
|
||||
3. `停止` 模式表示备份时会将虚拟机置于关机状态,备份完成后再恢复至之前的状态。
|
||||
|
||||
4. 虚拟机列表中,勾选 `备份作业` 需要备份的虚拟机(可多选)。
|
||||
|
||||

|
||||
|
||||
### 1.2.保留选项
|
||||
|
||||
该选项将控制备份文件的保留个数,选择保留最近 `3` 份备份文件。
|
||||
|
||||

|
||||
|
||||
### 1.3.日志模板
|
||||
|
||||
该选项将按照设置的内容,自动重命名备份文件。
|
||||
|
||||
在 `备份日志` 右侧文本框中输入 `{{vmid}}_{{guestname}}_Auto_Backup` 。
|
||||
|
||||
点击 `创建` 按钮,`备份作业` 创建完成。
|
||||
|
||||

|
||||
|
||||
## 2.调度模拟器
|
||||
|
||||
在创建完成 `备份作业` 后,可以使用 `调度模拟器` 来模拟 `备份作业` 的执行时间。
|
||||
|
||||
鼠标 **单击** 选中一个 `备份作业` ,点击右上角的 `调度模拟器` 。
|
||||
|
||||

|
||||
|
||||
`计划` 处将显示 `备份作业` 的执行时间参数,点击 `模拟` 按钮,在右侧将显示模拟的时间结果。
|
||||
|
||||
确认 `备份作业` 的执行时间周期是否符合预期。
|
||||
|
||||

|
||||
|
||||
至此,虚拟机的自动备份已配置完成。
|
||||
|
||||
@@ -1,209 +0,0 @@
|
||||
## 0.安装前准备
|
||||
|
||||
PVE 系统正式安装之前,需要准备 PVE 的安装镜像和一些必要安装工具。
|
||||
|
||||
|
||||
### 0.1.PVE镜像下载
|
||||
|
||||
PVE 下载地址:https://www.proxmox.com/en/downloads
|
||||
|
||||

|
||||
|
||||
点击 `Proxmox VE 7.x ISO Installer` 链接。此处可能有多个 PVE 的安装 ISO,可以根据需要进行选择。
|
||||
|
||||
此处我以目前最新的 `Proxmox VE 7.2 ISO` 作为演示。
|
||||
|
||||

|
||||
|
||||
下载 ISO 时请注意 `SHA256SUM` ,后续将使用该校验信息对下载下来的 ISO 进行校验,以确保 ISO 文件的完整性。
|
||||
|
||||
|
||||
### 0.2.启动盘制作工具
|
||||
|
||||
考虑到制作 PVE 启动盘时,所使用的操作系统可能有 Windows、macOS、Linux,因此我这里推荐几个常用的写盘工具。
|
||||
|
||||
#### Ventoy
|
||||
|
||||
官方网站地址:https://www.ventoy.net/cn/index.html
|
||||
|
||||
强烈推荐的引导盘制作工具,也是我目前在用的写盘工具,优点是可以在一个 U 盘中放入复数个可引导的 ISO 文件。
|
||||
|
||||
免去了多次格式化 U 盘再写入 ISO 文件的操作,非常友好。
|
||||
|
||||
缺点是只支持 Windows、Linux。
|
||||
|
||||

|
||||
|
||||
#### Etcher
|
||||
|
||||
官方网站地址:https://www.balena.io/etcher/
|
||||
|
||||
跨平台的写盘工具,开源,写盘速度很快。缺点是该软件体积较大,下载缓慢。
|
||||
|
||||
支持 Windows、macOS、Linux。
|
||||
|
||||

|
||||
|
||||
#### Rufus
|
||||
|
||||
官方网站地址:https://rufus.ie/zh/
|
||||
|
||||
轻便小巧的写盘工具,仅支持 Windows。
|
||||
|
||||

|
||||
|
||||
|
||||
### 0.3.SSH工具
|
||||
|
||||
考虑到配置 PVE 服务器、路由器、DNS 服务器时,需要在 CLI 中输入命令,因此我这里推荐几个常用的 SSH 工具。
|
||||
|
||||
#### Tabby
|
||||
|
||||
官方网站地址:https://tabby.sh
|
||||
|
||||
基于 Electron 开发的开源跨平台终端工具,内部集成了 SFTP,可以在 Github 平台上进行下载。
|
||||
|
||||
支持 Windows、macOS、Linux。
|
||||
|
||||

|
||||
|
||||
#### MobaXterm
|
||||
|
||||
官方地址:https://mobaxterm.mobatek.net
|
||||
|
||||
功能强大的 SSH 工具,仅支持 Windows。
|
||||
|
||||

|
||||
|
||||
|
||||
## 1.PVE系统安装
|
||||
|
||||
由于机型不同,BIOS 的设置也不同,所以本文不演示具体如何将机器设置成从 U 盘启动。
|
||||
|
||||
在设置BIOS时需要注意以下几点:
|
||||
- 暂时关闭 **“安全启动”**
|
||||
- 确保打开硬件虚拟化支持
|
||||
- 确保硬盘的模式为“AHCI”
|
||||
- 确保设备来电自动启动
|
||||
- 对于不支持UEFI启动的设备,检查Legacy引导模式
|
||||
- 检查CPU的功耗设置(可选)
|
||||
|
||||
### 1.1.设备引导
|
||||
|
||||
我使用 Ventoy 进行设备引导后,出现如下画面,选择 PVE 的安装 ISO :
|
||||
|
||||

|
||||
|
||||
等待引导跑码完成后,即进入 PVE 的安装界面。
|
||||
|
||||
### 1.2.PVE安装选项
|
||||
|
||||
选择第一项 `Install Proxmox VE` 开始安装 PVE 。
|
||||
|
||||

|
||||
|
||||
设备将会继续跑码,直到 EULA 最终用户许可协议出现,选择 `I agree` 。
|
||||
|
||||

|
||||
|
||||
### 1.3.PVE磁盘选项
|
||||
|
||||
此时会出现 `Target Harddisk` 选项,会显示出设备中存在的磁盘列表。
|
||||
|
||||
可以通过下拉框选择希望安装 PVE 的物理磁盘。
|
||||
|
||||

|
||||
|
||||
点击磁盘列表右侧的 **Options** ,对 PVE 的磁盘安装参数进行一些调整。
|
||||
|
||||
我推荐将 `Filesystem` 也就是磁盘的文件系统格式,设置成 **xfs** 。
|
||||
|
||||
如果设备安装的内存比较小,比如只有 `4GB` 、`8GB` ,可以酌情考虑将 `swapsize` 改大,比如 `8`(此处无需填写单位 GB )。
|
||||
|
||||

|
||||
|
||||
虽然 PVE 系统会根据设备安装的内存大小自动计算合理的 `swapsize` ,但我安装了 `16GB` 内存,因此我此处仅给了 `4GB` 的空间作为交换空间。
|
||||
|
||||
### 1.4.PVE时区选项
|
||||
|
||||
PVE 此时处于未接入互联网的 “离线” 安装状态,因此不会从互联网中读取时区信息,我们需要手动修改时区。
|
||||
|
||||
在 `Contry` 处手动输入 `China` ,下方的 `Time zone` 将自动变更为 `Asia/Shanghai` 。
|
||||
|
||||

|
||||
|
||||
### 1.5.PVE账户与邮箱
|
||||
|
||||
PVE 为最关键的虚拟化层,建议使用强密码,包含大小写字母、数字以及特殊符号。
|
||||
|
||||
`Email` 必须为一个 “合法” 的邮箱地址,不然系统会判定邮箱地址不合法并拒绝继续安装。
|
||||
|
||||

|
||||
|
||||
### 1.6.PVE网络设置
|
||||
|
||||
PVE 必须选择一个管理网口,默认情况下,PVE 会使用编号较小的第一个网口作为管理网口。
|
||||
|
||||
而有的设备物理网口顺序与该页面显示的网口顺序 **不一致** ,因此此处保持默认的第一个网口。
|
||||
|
||||
当 PVE 完全安装好之后, **会在 PVE 提供的 WEB 页面中对该管理网口设置进行调整** 。
|
||||
|
||||

|
||||
|
||||
根据我们之前的规划,对 PVE 的管理 IP(`172.16.1.250`)进行设置。
|
||||
|
||||
需要说明的是 `Hostname` ,即 PVE 主机的名称,PVE 将使用输入的 “二级域名” 的名称作为自己的名称。
|
||||
|
||||
演示内容输入的为 `hyper.fox.lab` ,因此 PVE 获取的主机名称为 `hyper` 。
|
||||
|
||||
我们规划未来主路由的IP地址为 `172.16.1.1` ,因此我们网关和 DNS 地址均使用该地址。
|
||||
|
||||
- Hostname (FQDN)
|
||||
- hyper.fox.lab
|
||||
- IP Address (CIDR)
|
||||
- 172.16.1.250/24
|
||||
- Gateway
|
||||
- 172.16.1.1
|
||||
- DNS Server
|
||||
- 172.16.1.1
|
||||
|
||||

|
||||
|
||||
### 1.7.PVE参数确认与安装
|
||||
|
||||
最后会显示出当前 PVE 安装的配置清单,确认无误后即可开始安装。
|
||||
|
||||

|
||||
|
||||
安装完成后,PVE 会告知用户登录的 `IP 地址` 和 `端口` 。
|
||||
|
||||

|
||||
|
||||
|
||||
## 2.PVE安装后检查
|
||||
|
||||
PVE 安装完成后会自动重启,等待系统重启完成会显示如下界面,并使用 `root` 账户进行登录,密码为刚才设置的管理密码。
|
||||
|
||||
**注意:Linux 操作系统,在输入密码时是不显示任何字符信息的,输入完成后输入回车即可。**
|
||||
|
||||

|
||||
|
||||
登录系统后,我们使用一些命令来查看一些基本信息:
|
||||
|
||||

|
||||
|
||||
|
||||
```bash
|
||||
## 查看系统磁盘与挂载
|
||||
df -hT
|
||||
|
||||
cat /etc/fstab
|
||||
|
||||
## 查看系统代号
|
||||
cat /etc/os-release
|
||||
|
||||
```
|
||||
|
||||
此处显示出 PVE 底层使用的是 Debian 的系统,代号为 `bullseye` ,该代号后续会使用到。
|
||||
|
||||
至此 PVE 的安装步骤已经完成,后续将对管理网口的设置以及系统源进行调整,使用国内镜像源,去掉 PVE 的订阅仓库,使用开源 PVE 仓库。
|
||||
@@ -1,269 +0,0 @@
|
||||
## 1.更换系统软件源
|
||||
|
||||
在上一篇文章 [1.PVE系统安装](./1.PVE系统安装.md) 中,我们从刚装好的 PVE 系统中获取了系统的一些参数:
|
||||
|
||||

|
||||
|
||||
此处显示出 PVE 底层使用的是 Debian 的系统,代号为 `bullseye` 。
|
||||
|
||||
为了后续能够对 PVE 系统进行升级,需要更换其镜像仓库,也就是大家熟知的软件源。
|
||||
|
||||
由于我们目前处于 **“离线”** 安装状态,因此更换完软件源后,在没有网络的情况下无法对系统更新。
|
||||
|
||||
### 1.1.系统软件源替换
|
||||
|
||||
使用 SSH 工具登录到 PVE 服务器,首先对现有的软件源配置进行备份:
|
||||
|
||||
```bash
|
||||
## 进入系统软件源配置文件目录
|
||||
cd /etc/apt
|
||||
|
||||
## 将默认软件源配置文件进行备份
|
||||
cp sources.list sources.list.bak
|
||||
```
|
||||
|
||||
这里我将使用 [中国科技大(USTC)](http://mirrors.ustc.edu.cn/help/proxmox.html) 的镜像仓库进行替换,使用如下命令:
|
||||
|
||||
**注意:该命令为两行,在输入时请逐行输入并回车执行**
|
||||
|
||||
```bash
|
||||
## 替换系统软件仓库
|
||||
|
||||
sed -i 's|^deb http://ftp.debian.org|deb https://mirrors.ustc.edu.cn|g' /etc/apt/sources.list
|
||||
|
||||
sed -i 's|^deb http://security.debian.org|deb https://mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list
|
||||
|
||||
```
|
||||
|
||||
执行完成后,检查是否执行正确:
|
||||
|
||||
```bash
|
||||
## 输出系统源配置文件,检查是否正确
|
||||
cat /etc/apt/sources.list
|
||||
```
|
||||
|
||||
如果输出结果中有 USTC 的镜像地址,则表示命令已经正确执行:
|
||||
|
||||
```bash
|
||||
## 输出内容参考:
|
||||
|
||||
deb https://mirrors.ustc.edu.cn/debian bullseye main contrib
|
||||
|
||||
deb https://mirrors.ustc.edu.cn/debian bullseye-updates main contrib
|
||||
|
||||
# security updates
|
||||
deb https://mirrors.ustc.edu.cn/debian-security bullseye-security main contrib
|
||||
```
|
||||
|
||||
此处我放出 Debian Bullseye 的完整镜像源以供参考, **非常不建议** 将 PVE 的系统源替换成完整的 Debian 源,以避免出现问题。
|
||||
|
||||
```bash
|
||||
## Debian Bullseye 完整源 (USTC)
|
||||
|
||||
deb https://mirrors.ustc.edu.cn/debian/ bullseye main contrib non-free
|
||||
# deb-src https://mirrors.ustc.edu.cn/debian/ bullseye main contrib non-free
|
||||
|
||||
deb https://mirrors.ustc.edu.cn/debian/ bullseye-updates main contrib non-free
|
||||
# deb-src https://mirrors.ustc.edu.cn/debian/ bullseye-updates main contrib non-free
|
||||
|
||||
deb https://mirrors.ustc.edu.cn/debian/ bullseye-backports main contrib non-free
|
||||
# deb-src https://mirrors.ustc.edu.cn/debian/ bullseye-backports main contrib non-free
|
||||
|
||||
deb https://mirrors.ustc.edu.cn/debian-security/ bullseye-security main contrib non-free
|
||||
# deb-src https://mirrors.ustc.edu.cn/debian-security/ bullseye-security main contrib non-free
|
||||
```
|
||||
|
||||
可以看到,PVE 的系统源和 Debian 完整源的差异在于 `non-free` 和 `bullseye-backports` 。
|
||||
|
||||
如果小伙伴在一些软件或者驱动(比如闭源 GPU 驱动)上遇到问题,可以尝试将 PVE 的系统源替换成 Debian 的完整源来尝试解决问题。
|
||||
|
||||
### 1.2.PVE 订阅源替换
|
||||
|
||||
默认情况下,PVE 启用了一个官方的源,而该源为订阅制收费,我们需要替换为免费的源。
|
||||
|
||||
进入订阅源的目录:
|
||||
|
||||
**注意:rm 命令为高危险操作命令,请正确使用,请勿手抖,请勿手抖**
|
||||
|
||||
```bash
|
||||
## 进入订阅源目录
|
||||
cd /etc/apt/sources.list.d
|
||||
|
||||
## 删除该目录下的所有配置
|
||||
rm -rvf *.list
|
||||
```
|
||||
|
||||
创建 PVE 免费源:
|
||||
|
||||
**注意:该命令为两行,在输入时请逐行输入并回车执行**
|
||||
|
||||
```bash
|
||||
## 创建 PVE 免费源
|
||||
|
||||
source /etc/os-release
|
||||
|
||||
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/pve $VERSION_CODENAME pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
|
||||
|
||||
```
|
||||
|
||||
创建完成后对其进行检查:
|
||||
|
||||
```bash
|
||||
## 检查PVE免费源
|
||||
cat /etc/apt/sources.list.d/pve-no-subscription.list
|
||||
```
|
||||
|
||||
如果输出结果中有 USTC 的镜像地址,则表示命令已经正确执行:
|
||||
|
||||
```bash
|
||||
## 输出内容参考:
|
||||
deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bullseye pve-no-subscription
|
||||
```
|
||||
|
||||
### 1.3.PVE CT Templates 替换
|
||||
|
||||
如果需要使用 Proxmox 网页端下载 CT Templates,可以替换 CT Templates 的源。
|
||||
|
||||
该功能我未使用,因此只做记录:
|
||||
|
||||
```bash
|
||||
## 替换 CT Templates 源
|
||||
|
||||
cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm.bak
|
||||
|
||||
sed -i 's|http://download.proxmox.com|https://mirrors.ustc.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
|
||||
|
||||
```
|
||||
|
||||
如果修改了 CT Templates 地址,需要重启 PVE 服务器才能生效。
|
||||
|
||||
### 1.4.替换后操作
|
||||
|
||||
更换完成系统源之后,需要更新系统源的同步:
|
||||
|
||||
```bash
|
||||
## 清理软件包
|
||||
apt clean && apt autoclean && apt autoremove --purge
|
||||
|
||||
## 同步软件源
|
||||
apt update
|
||||
|
||||
## 更新系统
|
||||
apt dist-upgrade
|
||||
```
|
||||
|
||||
考虑到 **“离线”** 安装时无法同步系统源,因此该步骤可以等到 PVE 中安装好了 RouterOS 软路由或其他路由系统并正确连接 Internet 后再执行。
|
||||
|
||||
或者家庭网络环境中还有一个 172.16.1.0/24 网段的,已经连接 Internet 的路由器 A。将路由器 A 的LAN 口与 PVE 的管理网口连接,此时 PVE 可访问外网。
|
||||
|
||||
|
||||
## 2.安装必要软件
|
||||
|
||||
安装软件前,同样要让 PVE 能够访问外网。
|
||||
|
||||
```bash
|
||||
## 同步镜像仓库
|
||||
apt update
|
||||
|
||||
## 安装系统软件
|
||||
apt install htop lm-sensors unzip fail2ban vim tmux unattended-upgrades apt-listchanges powermgmt-base
|
||||
|
||||
## 安装网络工具
|
||||
apt install iperf iperf3 iftop net-tools ethtool
|
||||
|
||||
## 安装CPU调度调整工具
|
||||
apt install cpufrequtils
|
||||
```
|
||||
|
||||
其中 `fail2ban` 和 `unattended-upgrades` 为两个服务,后续会对其进行配置。
|
||||
|
||||
`cpufrequtils` 为 CPU 调度器的配置工具,后续会对 CPU 调度算法进行调整。
|
||||
|
||||
|
||||
## 3.配置 PVE 网桥和管理网口
|
||||
|
||||
设置电脑的 IP 地址为静态 IP ,IP 地址段与 PVE 的 IP 地址段保持一致。
|
||||
|
||||
用网线将电脑的网口与 PVE 的管理网口,此时应该为编号最小的第一个网口,相连接。
|
||||
|
||||
访问 PVE 的 WEB 管理界面,对 PVE 的网络进行一些调整。
|
||||
|
||||

|
||||
|
||||
在设置 PVE 的网络之前,需要对网络内部结构做一个规划。
|
||||
|
||||
在前篇的网络地址段规划时,我们有如下规划内容:
|
||||
- PVE IP:172.16.1.250/24
|
||||
- PVE 网关:172.16.1.1
|
||||
- PVE DNS:172.16.1.1
|
||||
|
||||
我们预计在 PVE 内部安装 RouterOS 用于主路由,2 个 Adguard Home 虚拟机用于提供内网的 DNS 服务以及去广告,且 RouterOS 需要能让 PVE 自身访问外网。
|
||||
|
||||
因此,在 PVE 中除了创建多个绑定物理网口的虚拟网桥外(具体数量依据物理网口数而定),还需 1 个额外的纯内部网桥。
|
||||
|
||||
先放出 PVE 网桥设置完成后的配置页面:
|
||||
|
||||

|
||||
|
||||
在实地考察了 PVE 软路由在弱电箱的摆放位置后,本次决定使用 ETH0 口,也就是第一个物理网口,作为 RouterOS 的拨号网口,ETH3 口作为 PVE 的管理网口。
|
||||
|
||||
在初次登录 PVE 的 WEB 管理后台,并访问网络管理页面时,会发现只有一个 vmbr0。
|
||||
|
||||
该 vmbr0 绑定的物理口为列表中的第一个网口,且在 CIDR 和 网关处有 IP 地址参数,说明 vmbr0 就是目前的管理网口。造成该状态的原因是我们在安装 PVE 阶段,选择的网口就是第一个网口。因此我们需要对其进行修改。
|
||||
|
||||
首先我们需要对每个物理网口创建网桥,并对其进行配置修改,在修改完成前, **请不要点击“应用配置”** ,不然会导致 PVE 无法访问。
|
||||
|
||||
### 3.1.修改默认网桥 vmbr0
|
||||
|
||||
首先双击 vmbr0 ,进入配置界面:
|
||||
|
||||

|
||||
|
||||
删除“IPv4/CIDR”和“网关”信息,确保“自动启动”为勾选状态。
|
||||
|
||||
在备注处填写“For WAN”,然后点击“OK”。
|
||||
|
||||
### 3.2.物理网口创建网桥
|
||||
|
||||
点击左上角的“创建”,选择“Linux Bridge”:
|
||||
|
||||

|
||||
|
||||
因为 vmbr0 名称已被使用,因此名称处填写 `vmbr1`,桥接端口填写顺序的第二个网卡名称,我演示这里为 `enp3s0`。
|
||||
|
||||

|
||||
|
||||
确保“自动启动”为勾选状态,在备注处填写“For LAN1”,点击“创建”。
|
||||
|
||||
然后,依次创建所有物理接口的内部网桥,直到最后一个:
|
||||
|
||||

|
||||
|
||||
在创建最后一个物理网口的 PVE 网桥时,需要额外填写 IPv4 和网关内容。
|
||||
|
||||
在所有物理网口的 PVE 网桥创建完成后,可以点击“应用配置”按钮,此时页面会失去连接。
|
||||
|
||||
无需担心,只需要将电脑的网线从 PVE 物理机的第一个网口拔出,并插入到最后一个网口即可。
|
||||
|
||||
如果万一还是无法访问到 PVE,可以尝试使用网线“拔插”方法,挨个测试 PVE 网口的访问情况。
|
||||
|
||||
### 3.3.创建 PVE 纯内部网桥
|
||||
|
||||

|
||||
|
||||
纯内部网桥的创建方法与创建物理网口的网桥方法基本一致,唯一区别是在 **“桥接端口”处为空** 即可。
|
||||
|
||||
纯内部网桥在没有内部路由的情况下是无法访问的,我这里只有在 RouterOS 安装完成并建立了内部网桥后,才可被访问到;主要作用为通过 RouterOS 给内部其他虚拟机提供外网连接。
|
||||
|
||||
当然内部网桥的作用不仅如此,比如还可以作为内部级联路由的连接器。
|
||||
|
||||
例如安装了 OPNsense 和 RouterOS 两个虚拟机,OPNsense 作为防火墙使用,RouterOS 作为二级路由使用,OPNsense 的 LAN 口需要与 RouterOS 的 WAN 口互通。
|
||||
|
||||
此时如果 OPNsense 和 RouterOS 均使用了绑定物理网口的 PVE 网桥,则需要用网线在 PVE 服务器外面连接两个网口,浪费宝贵的网线不说,还占用了网口,得不偿失。而使用纯内部网桥则可以很好的解决该问题,有了这个纯内部网桥,不论多少个虚拟机使用了该网桥,只要是同网段,都可以相互访问。
|
||||
|
||||
|
||||
## 4.后续配置
|
||||
|
||||
至此,PVE的初始化配置完成。
|
||||
|
||||
后续将会对 PVE 的一些服务进行配置,例如安全加固、调整 CPU 的调度算法节能省钱、PVE的自动更新等内容。
|
||||
@@ -1,386 +0,0 @@
|
||||
## 0.必要条件
|
||||
|
||||
在上一篇文章 [2.PVE初始化配置](./2.PVE初始化配置.md) 中,我们已经初始化了 PVE 系统,接下来需要对 PVE 系统进一步调整。
|
||||
|
||||
在 PVE 系统调整之前,请确保必要的软件包已经安装完成。
|
||||
|
||||
```bash
|
||||
## 同步镜像仓库
|
||||
apt update
|
||||
|
||||
## 安装系统软件
|
||||
apt install htop lm-sensors unzip fail2ban vim tmux unattended-upgrades apt-listchanges powermgmt-base
|
||||
|
||||
## 安装网络工具
|
||||
apt install iperf iperf3 iftop net-tools ethtool
|
||||
|
||||
## 安装CPU调度调整工具
|
||||
apt install cpufrequtils
|
||||
```
|
||||
|
||||
本文后续命令,均在 SSH 终端下完成。
|
||||
|
||||
|
||||
## 1.Fail2ban 配置
|
||||
|
||||
安装好 `fail2ban` 后,检查其服务状态:
|
||||
|
||||
```bash
|
||||
## 检查 Fail2ban 系统服务状态
|
||||
systemctl status fail2ban.service
|
||||
```
|
||||
|
||||
在 `Loaded` 行,检查是否存在 `enable` :
|
||||
|
||||
```bash
|
||||
## 参考输出
|
||||
|
||||
● fail2ban.service - Fail2Ban Service
|
||||
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
|
||||
Active: active (running) since Sat 2022-07-16 05:03:53 CST; 4 days ago
|
||||
Docs: man:fail2ban(1)
|
||||
Process: 777 ExecStartPre=/bin/mkdir -p /run/fail2ban (code=exited, status=0/SUCCESS)
|
||||
Main PID: 792 (fail2ban-server)
|
||||
Tasks: 5 (limit: 18904)
|
||||
Memory: 13.3M
|
||||
CPU: 4min 53.764s
|
||||
CGroup: /system.slice/fail2ban.service
|
||||
└─792 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
|
||||
|
||||
Jul 16 05:03:53 hyper systemd[1]: Starting Fail2Ban Service...
|
||||
Jul 16 05:03:53 hyper systemd[1]: Started Fail2Ban Service.
|
||||
Jul 16 05:03:53 hyper fail2ban-server[792]: Server ready
|
||||
```
|
||||
|
||||
其中第 1 个 `enable` 表示当前服务开机自动启动,第 2 个 `enable` 表示该软件的默认启用状态。
|
||||
|
||||
如果第 1 个不为 `enable` 状态,需要用以下命令进行调整:
|
||||
|
||||
```bash
|
||||
## 开机自启 fail2ban 服务
|
||||
systemctl enable fail2ban.service
|
||||
|
||||
## 参考输出
|
||||
Synchronizing state of fail2ban.service with SysV service script with /lib/systemd/systemd-sysv-install.
|
||||
Executing: /lib/systemd/systemd-sysv-install enable fail2ban
|
||||
Created symlink /etc/systemd/system/multi-user.target.wants/fail2ban.service → /lib/systemd/system/fail2ban.service.
|
||||
```
|
||||
|
||||
执行完成后,再次通过前面的命令检查服务自启状态。
|
||||
|
||||
后续如果想查看 `Fail2ban` 有关 `sshd` 的执行状态,可使用如下命令:
|
||||
|
||||
```bash
|
||||
## 检查 sshd 的执行情况
|
||||
fail2ban-client status sshd
|
||||
|
||||
## 参考输出
|
||||
Status for the jail: sshd
|
||||
|- Filter
|
||||
| |- Currently failed: 0
|
||||
| |- Total failed: 0
|
||||
| `- File list: /var/log/auth.log
|
||||
`- Actions
|
||||
|- Currently banned: 0
|
||||
|- Total banned: 0
|
||||
`- Banned IP list:
|
||||
```
|
||||
|
||||
如果均为 0 ,表示当前 PVE 系统没有 SSH 错误密码的尝试记录。
|
||||
|
||||
|
||||
## 2.系统时区配置
|
||||
|
||||
如果在安装 PVE 系统时选错了时区,导致系统时间和北京时间不一致,可以使用以下命令修正:
|
||||
|
||||
```bash
|
||||
## 修改系统时区
|
||||
timedatectl set-timezone Asia/Shanghai
|
||||
|
||||
## 检查系统时间
|
||||
date -R
|
||||
|
||||
## 参考输出
|
||||
Wed, 20 Jul 2022 16:21:28 +0800
|
||||
```
|
||||
|
||||
输出结果如果和北京时间一致,则代表修改正确。
|
||||
|
||||
|
||||
## 3.CPU调度器配置
|
||||
|
||||
安装好 `cpufrequtils` 后,先检查当前 CPU 的调度器:
|
||||
|
||||
```bash
|
||||
## 检查 CPU 当前调度器
|
||||
cpufreq-info
|
||||
```
|
||||
**设备 CPU - J4125 参考输出** :
|
||||
|
||||
```bash
|
||||
## J4125 参考输出
|
||||
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
|
||||
Report errors and bugs to cpufreq@vger.kernel.org, please.
|
||||
analyzing CPU 0:
|
||||
driver: intel_cpufreq
|
||||
CPUs which run at the same hardware frequency: 0
|
||||
CPUs which need to have their frequency coordinated by software: 0
|
||||
maximum transition latency: 20.0 us.
|
||||
hardware limits: 800 MHz - 2.70 GHz
|
||||
available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil
|
||||
current policy: frequency should be within 800 MHz and 2.70 GHz.
|
||||
The governor "ondemand" may decide which speed to use
|
||||
within this range.
|
||||
current CPU frequency is 1.84 GHz.
|
||||
```
|
||||
|
||||
**设备 CPU - N5105 参考输出** :
|
||||
|
||||
```bash
|
||||
## N5105 参考输出
|
||||
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
|
||||
Report errors and bugs to cpufreq@vger.kernel.org, please.
|
||||
analyzing CPU 0:
|
||||
driver: intel_pstate
|
||||
CPUs which run at the same hardware frequency: 0
|
||||
CPUs which need to have their frequency coordinated by software: 0
|
||||
maximum transition latency: 4294.55 ms.
|
||||
hardware limits: 800 MHz - 2.90 GHz
|
||||
available cpufreq governors: performance, powersave
|
||||
current policy: frequency should be within 800 MHz and 2.90 GHz.
|
||||
The governor "performance" may decide which speed to use
|
||||
within this range.
|
||||
current CPU frequency is 1.36 GHz.
|
||||
```
|
||||
|
||||
这里面主要关注两个点:
|
||||
- driver: `intel_cpufreq` 或 `intel_pstate`
|
||||
- current policy: `governor "ondemand"` 或 `governor "performance"`
|
||||
|
||||
当然还有另外一个命令可以用来显示 CPU 调度器:
|
||||
|
||||
```bash
|
||||
## 检查 CPU 当前调度器
|
||||
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
||||
|
||||
## J4125 参考输出
|
||||
ondemand
|
||||
|
||||
## N5105 参考输出
|
||||
performance
|
||||
```
|
||||
|
||||
驱动一般不建议手动调整,而 `governor` 后面的参数则显示了当前 CPU 的调度器是什么。
|
||||
|
||||
接下来,我们需要了解当前系统 CPU 支持的调度器有哪些:
|
||||
|
||||
```bash
|
||||
## 检查 CPU 调度器支持情况
|
||||
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
|
||||
|
||||
## J4125 参考输出
|
||||
conservative ondemand userspace powersave performance schedutil
|
||||
|
||||
## N5105 参考输出
|
||||
performance powersave
|
||||
```
|
||||
|
||||
根据 CPU 所使用的驱动不同,可选调度器也不同,至于每种调度器有什么优劣,欢迎大家深度挖掘。
|
||||
|
||||
CPU 驱动为 `intel_pstate` 时,建议使用 `powersave` 调度器。
|
||||
|
||||
CPU 驱动为 `intel_cpufreq` 时,建议使用 `schedutil` 调度器。
|
||||
|
||||
本文以使用 `powersave` 调度器为演示。
|
||||
|
||||
使用 `vim` 编辑器来编辑 `cpufrequtils` 的配置文件:
|
||||
|
||||
```bash
|
||||
## 修改 cpufrequtils 配置文件
|
||||
vim /etc/init.d/cpufrequtils
|
||||
|
||||
## 在配置文件中修改调度器
|
||||
|
||||
ENABLE="true"
|
||||
GOVERNOR="powersave" ## 修改本行的调度器为 powersave
|
||||
MAX_SPEED="0"
|
||||
MIN_SPEED="0"
|
||||
```
|
||||
|
||||
按 `i` 键进入编辑模式,`esc` 键退出编辑模式,`:wq` 命令保存退出。
|
||||
|
||||
因为该配置文件很长,文章中留下一份已配置好的文件 [Fox_PVE_Cpufrequtils.conf](./src/Fox_PVE_Cpufrequtils.conf) ,以便对比。
|
||||
|
||||
修改完成后,需要重新启动 PVE 服务器来使参数生效。
|
||||
|
||||
PVE 服务器重启完成后记得重新检查当前 CPU 的调度器,看配置文件是否生效。
|
||||
|
||||
这里提供两个命令,分别来实时查看当前 CPU 的频率和内部温度传感器的数值:
|
||||
|
||||
```bash
|
||||
## 查看 CPU 当前频率
|
||||
watch cat /sys/devices/system/cpu/cpu[0-9]*/cpufreq/scaling_cur_freq
|
||||
|
||||
## 查看内部温度
|
||||
watch sensors
|
||||
```
|
||||
|
||||
|
||||
## 4.PVE 定时重启配置
|
||||
|
||||
有时候我们需要让 PVE 服务器周期性的定时重启,则可使用以下命令:
|
||||
|
||||
```bash
|
||||
## 编辑系统 crontab
|
||||
crontab -e
|
||||
|
||||
## 选择 nano 编辑器,粘贴以下内容并保存
|
||||
0 5 1,16 * * /usr/sbin/reboot
|
||||
```
|
||||
|
||||
这表示每月 1、16 号的 5 点 0 分执行系统重启命令。
|
||||
|
||||
可以使用以下命令来查看当前系统的计划任务:
|
||||
|
||||
```bash
|
||||
## 显示系统 crontab
|
||||
crontab -l
|
||||
```
|
||||
|
||||
|
||||
## 5.PVE系统自动更新
|
||||
|
||||
### 5.1.检查系统定时器
|
||||
|
||||
配置系统自动更新之前,先检查当前系统定时器状态:
|
||||
|
||||
```bash
|
||||
## 检查系统定时器
|
||||
systemctl status apt-daily-upgrade.timer
|
||||
|
||||
## 示例输出
|
||||
● apt-daily-upgrade.timer - Daily apt upgrade and clean activities
|
||||
Loaded: loaded (/lib/systemd/system/apt-daily-upgrade.timer; enabled; vendor preset: enabled)
|
||||
Drop-In: /etc/systemd/system/apt-daily-upgrade.timer.d
|
||||
└─override.conf
|
||||
Active: active (waiting) since Sat 2022-07-16 07:03:53 CST; 4 days ago
|
||||
Trigger: Thu 2022-07-17 06:52:50 CST; 13h left
|
||||
Triggers: ● apt-daily-upgrade.service
|
||||
|
||||
Jul 16 12:03:53 hyper systemd[1]: Started Daily apt upgrade and clean activities.
|
||||
```
|
||||
|
||||
我们后续将手动调整该定时器的时间为,每 10 天的凌晨 02:00 进行触发。
|
||||
|
||||
### 5.2.配置自动更新策略
|
||||
|
||||
```bash
|
||||
## 配置自动更新策略
|
||||
dpkg-reconfigure -plow unattended-upgrades
|
||||
|
||||
## 选择 “是” (“YES”)
|
||||
## 示例输出
|
||||
Creating config file /etc/apt/apt.conf.d/20auto-upgrades with new version
|
||||
```
|
||||
|
||||
执行命令后,使用“左右”方向键进行选择,“回车”键进行确认。
|
||||
|
||||
然后开始调整 apt 的 `20auto-upgrades` 配置文件:
|
||||
|
||||
```bash
|
||||
## 进入 apt 的配置目录
|
||||
cd /etc/apt/apt.conf.d
|
||||
|
||||
## 编辑 20auto-upgrades 配置文件
|
||||
vim 20auto-upgrades
|
||||
|
||||
## 删除里面全部内容并填写以下内容
|
||||
APT::Periodic::Update-Package-Lists "1";
|
||||
APT::Periodic::Unattended-Upgrade "10";
|
||||
APT::Periodic::AutocleanInterval "1";
|
||||
APT::Periodic::CleanInterval "1";
|
||||
```
|
||||
|
||||
其中,用来控制 PVE 更新周期的为 `APT::Periodic::Unattended-Upgrade` 这行内容,其中的 “10” 表示更新周期为 “10” 天。
|
||||
|
||||
接下来调整 apt 的 `50unattended-upgrades` 配置文件,所有修改项目汇聚如下:
|
||||
|
||||
```bash
|
||||
## 编辑 50unattended-upgrades 配置文件
|
||||
vim 50unattended-upgrades
|
||||
|
||||
## 取消了以下行前面的注释,代表启用
|
||||
"origin=Debian,codename=${distro_codename}-updates";
|
||||
|
||||
## 添加了 PVE 本身的更新项目
|
||||
"origin=Proxmox,codename=${distro_codename},label=Proxmox Debian Repository";
|
||||
|
||||
## 取消以下行的前面注释,代表启用,并调整参数
|
||||
Unattended-Upgrade::AutoFixInterruptedDpkg "true";
|
||||
|
||||
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
|
||||
|
||||
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";
|
||||
|
||||
Unattended-Upgrade::Remove-Unused-Dependencies "true";
|
||||
|
||||
Unattended-Upgrade::Automatic-Reboot "true";
|
||||
|
||||
Unattended-Upgrade::Automatic-Reboot-Time "05:00";
|
||||
```
|
||||
|
||||
分别表示:
|
||||
- 启用了 Debian bullseye-updates 相关更新。
|
||||
- 增加并启用 PVE 自有仓库的更新,确保不会遗漏自有仓库的更新内容。
|
||||
- 自动修复被打断的Dpkg安装。
|
||||
- 自动移除无用的的内核包。
|
||||
- 自动移除因更新而出现的无用依赖包。
|
||||
- 自动移除以前的无用依赖包。
|
||||
- 自动重启:开启。
|
||||
- 自动重启时间:05:00。
|
||||
|
||||
因为该配置文件很长,文章中留下一份 PVE 7.2 中已配置好的文件 [Fox_PVE_50unattended_Upgrades.conf](./src/Fox_PVE_50unattended_Upgrades.conf) ,以便对比。
|
||||
|
||||
仔细再仔细确认无误后,`esc` 键退出编辑模式,`:wq` 命令保存退出。
|
||||
|
||||
### 5.3.重设自动更新触发器
|
||||
|
||||
```bash
|
||||
## 重设自动更新触发器时间为凌晨 02:00
|
||||
systemctl edit apt-daily-upgrade.timer
|
||||
|
||||
## 根据文件中的提示,在中间空白处填入以下内容
|
||||
[Timer]
|
||||
OnCalendar=
|
||||
OnCalendar=02:00
|
||||
RandomizedDelaySec=0
|
||||
```
|
||||
|
||||
完整的配置文件可查看 [Fox_PVE_Apt_Daily_Upgrade.conf](./src/Fox_PVE_Apt_Daily_Upgrade.conf),以便对比。
|
||||
|
||||
设置完成后重启自动更新的触发器:
|
||||
|
||||
```bash
|
||||
## 重启触发器
|
||||
systemctl restart apt-daily-upgrade.timer
|
||||
|
||||
## 再次检查触发器状态
|
||||
systemctl status apt-daily-upgrade.timer
|
||||
|
||||
## 参考输出
|
||||
● apt-daily-upgrade.timer - Daily apt upgrade and clean activities
|
||||
Loaded: loaded (/lib/systemd/system/apt-daily-upgrade.timer; enabled; vendor preset: enabled)
|
||||
Drop-In: /etc/systemd/system/apt-daily-upgrade.timer.d
|
||||
└─override.conf
|
||||
Active: active (waiting) since Wed 2022-07-20 17:36:40 CST; 11s ago
|
||||
Trigger: Thu 2022-07-21 02:00:00 CST; 8h left
|
||||
Triggers: ● apt-daily-upgrade.service
|
||||
|
||||
Jul 20 17:36:40 hyper systemd[1]: Stopped Daily apt upgrade and clean activities.
|
||||
Jul 20 17:36:40 hyper systemd[1]: Stopping Daily apt upgrade and clean activities.
|
||||
Jul 20 17:36:40 hyper systemd[1]: Started Daily apt upgrade and clean activities.
|
||||
```
|
||||
|
||||
至此 PVE 的系统调整已经完成,重启设备后,可以愉快使用了。
|
||||
|
||||
Plug in & Forget :)
|
||||
@@ -1,224 +0,0 @@
|
||||
## 0.前期准备
|
||||
|
||||
将虚拟机制作成模板,可以在后续新建虚拟机时快速从模板中创建,减少系统安装配置时间。
|
||||
|
||||
本文将使用 Debian 的云镜像 `debian-11-genericcloud-amd64.qcow2` 作为模板虚拟机的镜像。
|
||||
|
||||
访问 [Debian Official Cloud Images](https://cloud.debian.org/images/cloud/) 官方网站,下载最新版 `Bullseye` 云镜像以及对应的校验文件:
|
||||
|
||||

|
||||
|
||||
该虚拟机模板主要作为内网 DNS 服务器使用,并会安装 Adguard Home 。
|
||||
|
||||
## 1.创建虚拟机
|
||||
|
||||
### 1.1.常规
|
||||
|
||||
登录到 PVE 后台后,进入新建虚拟机流程,并勾选底部 “高级” ,打开虚拟机创建页面的高级选项。
|
||||
|
||||
节点即本机,`VM ID` 和 `名称` 可以自由定义。
|
||||
|
||||

|
||||
|
||||
### 1.2.操作系统
|
||||
|
||||
无需使用任何安装介质。
|
||||
|
||||
操作系统类别选择 `Linux` 、版本选择 `5.x - 2.6 Kernel` 即可。
|
||||
|
||||

|
||||
|
||||
### 1.3.系统
|
||||
|
||||
系统部分需要修改一些内容,以满足 Debian 使用 `UEFI` 启动需求。
|
||||
|
||||
显卡使用 `SPICE` ,机型使用 `q35` ,SCSI 控制器选择 `VirtIO SCSI single` ,勾选 `Qemu代理` 选项。
|
||||
|
||||
在固件处需要针对 `UEFI` 进行调整,BIOS 选择 `OVMF (UEFI)` ,勾选 `添加EFI磁盘` ,EFI 存储选择 `local-lvm` :
|
||||
|
||||

|
||||
|
||||
### 1.4.磁盘
|
||||
|
||||
一般情况下,如果该虚拟机仅为 ADH 服务器,`16G` 的磁盘空间足够使用。
|
||||
|
||||
由于使用 Cloud Image 制作虚拟机模板,此处删除所有磁盘:
|
||||
|
||||

|
||||
|
||||
### 1.5.CPU
|
||||
|
||||
CPU类别选择 `host` ,核心根据物理 CPU 核心数进行酌情设置,推荐启用 `NUMA` :
|
||||
|
||||

|
||||
|
||||
### 1.6.内存
|
||||
|
||||
内存一般 2G 足够使用,关闭 `Ballooning` 设备选项:
|
||||
|
||||

|
||||
|
||||
### 1.7.网络
|
||||
|
||||
在 PVE 的 [网络设置](./2.PVE初始化配置.md#3配置-pve-网桥和管理网口) 中,曾创建了一个没有桥接任何物理网口的内部网桥。
|
||||
|
||||
并且该网桥接口为主路由 RouterOS 的 LAN 的成员接口。
|
||||
|
||||
因此 Debian 虚拟机的网络设备选择该内部网桥即可,演示环境为 `vmbr4` :
|
||||
|
||||

|
||||
|
||||
取消网口的 `防火墙` ,并根据虚拟机 vCPU 数,指定 `Multiqueue` 的数量,演示环境为 `2` :
|
||||
|
||||

|
||||
|
||||
### 1.8.确认
|
||||
|
||||
接下来查看设置总览,确认无误,即可点击 “完成” :
|
||||
|
||||

|
||||
|
||||
## 2.调整虚拟机硬件参数
|
||||
|
||||
### 2.1.删除虚拟机光驱
|
||||
|
||||
此时,查看虚拟机详情页,可以看到我们刚才创建的 Debian 虚拟机,删除 `CD/DVD驱动器` :
|
||||
|
||||

|
||||
|
||||
### 2.2.虚拟机导入磁盘镜像
|
||||
|
||||
使用 SSH 工具登录 PVE 服务器,并进入 `tmp` 目录,逐条执行以下命令来创建一个文件夹:
|
||||
|
||||
```bash
|
||||
# 进入 tmp 目录
|
||||
cd /tmp
|
||||
|
||||
# 创建文件夹
|
||||
mkdir Debian
|
||||
|
||||
# 进入文件夹
|
||||
cd Debian
|
||||
```
|
||||
|
||||
将 Debian 云镜像 `debian-11-genericcloud-amd64.qcow2` 上传到该文件夹中,并检查 `hash` :
|
||||
|
||||
```bash
|
||||
# 检查文件是否存在
|
||||
ls -la
|
||||
|
||||
# 计算文件 hash
|
||||
sha512sum debian-11-genericcloud-amd64.qcow2
|
||||
```
|
||||
|
||||
确认无误后,将 Debian 云镜像导入刚才创建的虚拟机中,命令中的 `VM ID` 需要根据实际情况替换,演示为 `1000` :
|
||||
|
||||
```bash
|
||||
# 将 qcow2 镜像导入虚拟机中
|
||||
qm importdisk 1000 debian-11-genericcloud-amd64.qcow2 local-lvm
|
||||
|
||||
# 输出结果为以下类似内容表示成功
|
||||
Successfully imported disk as 'unused0:local-lvm:vm-1000-disk-1'
|
||||
```
|
||||
|
||||

|
||||
|
||||
鼠标 **双击** 该未使用的磁盘,勾选 `IO thread` ,点击添加按钮:
|
||||
|
||||

|
||||
|
||||
刚导入的磁盘只有 `2G` 磁盘空间,为了后续方便使用,先给磁盘扩容 `16G` 的磁盘空间。
|
||||
|
||||
鼠标 **单击** 选中该磁盘,选择页面顶部 `Disk Action` 菜单的子菜单 `Resize` :
|
||||
|
||||

|
||||
|
||||
在弹出的对话框中,给该磁盘增加 `16G` 磁盘空间:
|
||||
|
||||

|
||||
|
||||
### 2.3.虚拟机添加CloudInit设备
|
||||
|
||||
为了能够正确使用 Cloud-Init 初始化系统,需要给 Debian 虚拟机添加 `CloudInit设备` 。
|
||||
|
||||
点击顶部 `添加` 按钮,选择 `CloudInit设备` :
|
||||
|
||||

|
||||
|
||||
`总线/设备` 选择 `SCSI` ,编号为 `1` ,存储选择 `local-lvm` :
|
||||
|
||||

|
||||
|
||||
### 2.4.虚拟机添加串行端口
|
||||
|
||||
有些云镜像需要用到 `serial` 端口作为视频输出端口,不然虚拟机无法启动,因此给 Debian 虚拟机添加串行端口。
|
||||
|
||||
点击顶部 `添加` 按钮,选择 `串行端口` :
|
||||
|
||||

|
||||
|
||||
串行端口编号为 `0` :
|
||||
|
||||

|
||||
|
||||
虚拟机硬件设备修改完成后,如下图所示:
|
||||
|
||||

|
||||
|
||||
## 3.调整虚拟机配置参数
|
||||
|
||||
进入左侧虚拟机 `选项` 菜单,可以看到当前虚拟机的配置参数。
|
||||
|
||||
通常情况下,Debian 虚拟机的配置参数需要修改以下几个:
|
||||
|
||||
1. 开机自启动(模板无需修改,克隆的虚拟机需要修改)
|
||||
2. 启动/关机顺序(模板无需修改,克隆的虚拟机需要修改)
|
||||
3. 引导顺序(仅模板需要修改)
|
||||
4. 使用平板指针(仅模板需要修改)
|
||||
|
||||
### 3.1.修改引导顺序
|
||||
|
||||
鼠标 **双击** `引导顺序` 选项,进入编辑界面。
|
||||
|
||||
在 `scsi0` 设备处,勾选前面的 “已启用” 复选框,并使用行首的排序功能,将该设备拖拽到第一个。
|
||||
|
||||
然后点击 `OK` 按钮:
|
||||
|
||||

|
||||
|
||||
### 3.2.修改平板指针设置
|
||||
|
||||
关闭 `使用平板指针` 选项,可以一定程度上降低虚拟机的 CPU 使用率。
|
||||
|
||||

|
||||
|
||||
## 4.设置Cloud-Init
|
||||
|
||||
进入左侧虚拟机 `Cloud-Init` 菜单,可以看到当前虚拟机的初始化参数。
|
||||
|
||||
根据之前的网络规划,内网的 IP 地址段为 `172.16.1.0/24` ,因此 Debian 虚拟机模板的参数如下:
|
||||
|
||||
|参数|值|说明|
|
||||
|--|--|--|
|
||||
|用户|fox|新系统的管理员账户|
|
||||
|密码|********|使用强密码|
|
||||
|DNS域|fox.lab|内网域名(可选)|
|
||||
|DNS服务器|`172.16.1.1 127.0.0.1`|本机DNS服务器,用空格隔开|
|
||||
|SSH公钥|无|使用秘钥登录服务器,暂不使用|
|
||||
|IP配置(net0)|`ip=172.16.1.240/24,gw=172.16.1.1`|模板的 IP 设置|
|
||||
|
||||
**说明:**
|
||||
|
||||
修改 `Cloud-Init` 参数时,需要在虚拟机关机情况下修改才会生效。
|
||||
|
||||
在 `DNS服务器` 设置部分,如果先设置了 `127.0.0.1` 作为虚拟机 DNS 服务器,后续其他 DNS 的 IP 地址将被虚拟机忽略。
|
||||
|
||||
此时内网没有其他 DNS 服务器存在,因此 `DNS服务器` 先设置为 `172.16.1.1 127.0.0.1` ,IP 之间用空格隔开。
|
||||
|
||||
在使用 Debian 模板克隆出新虚拟机之后,再对新虚拟机调整 IP 设置比较好。
|
||||
|
||||
`Cloud-Init` 的 `IP配置` ,如下图所示:
|
||||
|
||||

|
||||
|
||||
设置完成后,Debian 虚拟机必要参数全部设置完成,可以将该虚拟机开机。
|
||||
@@ -1,541 +0,0 @@
|
||||
## 1.配置Debian系统
|
||||
|
||||
在上一篇文章 [4.PVE创建模板虚拟机](./4.PVE创建模板虚拟机.md) 中,我们已经创建好了用于制作虚拟机模板的 Debian 虚拟机。
|
||||
|
||||
并调整了模板虚拟机的硬件参数、配置参数,但还需对 Debian 系统进行调整。
|
||||
|
||||
此时可以将 Debian 虚拟机开机,并使用 `Cloud-Init` 中设置的账号密码进行登录。
|
||||
|
||||
### 1.1.启用SSH密码登录
|
||||
|
||||
因为 Debian 的云镜像默认使用秘钥登录,因此切换到左侧菜单的 `控制台` 进行操作:
|
||||
|
||||

|
||||
|
||||
在 Debian 虚拟机的命令行界面,使用 `nano` 编辑器编辑 `sshd` 服务的配置文件,执行以下命令:
|
||||
|
||||
```bash
|
||||
## 编辑 ssh 配置文件
|
||||
sudo nano /etc/ssh/sshd_config.d/fox_sshd.conf
|
||||
```
|
||||
|
||||
在编辑器对话框中输入以下内容,注意命令中间的空格:
|
||||
|
||||
```bash
|
||||
PasswordAuthentication yes
|
||||
|
||||
PermitEmptyPasswords no
|
||||
```
|
||||
|
||||
`nano` 编辑器常用操作如下:
|
||||
- 在编辑文件时,可以用键盘 `方向键` 移动光标位置
|
||||
- 在保存文件时,按下键盘 `ctrl 和 x` 组合键,再按下键盘 `y` 键,即可保存
|
||||
|
||||
然后,重启 SSH 服务:
|
||||
|
||||
```bash
|
||||
## 重启 sshd
|
||||
sudo systemctl restart ssh.service
|
||||
```
|
||||
|
||||
就可以像往常一样,通过 SSH 工具远程访问 Debian 虚拟机了。
|
||||
|
||||
### 1.2.配置系统软件源
|
||||
|
||||
使用 SSH 工具登录 Debian 虚拟机,常用 SSH 工具可以看之前的文章中的 [SSH 工具推荐](./1.PVE系统安装.md#03ssh工具) 。
|
||||
|
||||
首先需要对 Debian 系统的软件源进行修改,这里使用 USTC 的软件源。
|
||||
|
||||
如果以后系统版本发生变化,参考使用 snullp 大叔开发的 [配置生成器](https://mirrors.ustc.edu.cn/repogen/) 。
|
||||
|
||||
逐条执行以下命令:
|
||||
|
||||
```bash
|
||||
## 进入系统源配置文件目录
|
||||
cd /etc/apt/
|
||||
|
||||
## 备份旧的系统源配置文件
|
||||
sudo mv sources.list sources.list.bak
|
||||
|
||||
## 创建新的系统源配置文件
|
||||
sudo nano sources.list
|
||||
```
|
||||
|
||||
在 `nano` 编辑器对话框中输入以下内容(注释了 `deb-src` 以便加快软件源同步速度),并保存:
|
||||
|
||||
```bash
|
||||
deb https://mirrors.ustc.edu.cn/debian/ bullseye main contrib non-free
|
||||
# deb-src https://mirrors.ustc.edu.cn/debian/ bullseye main contrib non-free
|
||||
|
||||
deb https://mirrors.ustc.edu.cn/debian/ bullseye-updates main contrib non-free
|
||||
# deb-src https://mirrors.ustc.edu.cn/debian/ bullseye-updates main contrib non-free
|
||||
|
||||
deb https://mirrors.ustc.edu.cn/debian/ bullseye-backports main contrib non-free
|
||||
# deb-src https://mirrors.ustc.edu.cn/debian/ bullseye-backports main contrib non-free
|
||||
|
||||
deb https://mirrors.ustc.edu.cn/debian-security/ bullseye-security main contrib non-free
|
||||
# deb-src https://mirrors.ustc.edu.cn/debian-security/ bullseye-security main contrib non-free
|
||||
```
|
||||
|
||||
更新软件源的同步内容,并更新系统,逐条执行以下命令:
|
||||
|
||||
```bash
|
||||
## 清理不必要的包
|
||||
sudo apt clean && sudo apt autoclean && sudo apt autoremove --purge
|
||||
|
||||
## 更新软件源
|
||||
sudo apt update
|
||||
|
||||
## 更新系统
|
||||
sudo apt dist-upgrade
|
||||
```
|
||||
|
||||
接下来安装系统必要软件,Adguard Home 将采用 `snap` 形式安装,逐条执行以下命令:
|
||||
|
||||
```bash
|
||||
## 安装系统软件
|
||||
sudo apt install qemu-guest-agent zsh git curl htop lm-sensors fail2ban vim tmux
|
||||
|
||||
## 安装系统自动更新工具
|
||||
sudo apt install unattended-upgrades apt-listchanges powermgmt-base python3-gi
|
||||
|
||||
## 安装网络工具
|
||||
sudo apt install iperf iperf3 iftop lsof dnsutils
|
||||
|
||||
## 安装 snap
|
||||
sudo apt install snapd
|
||||
|
||||
## 安装 Adguard Home
|
||||
sudo snap install adguard-home
|
||||
```
|
||||
|
||||
Adguard Home 安装完成后,先停止其服务:
|
||||
|
||||
```bash
|
||||
## 停止 Adguard Home
|
||||
sudo snap stop adguard-home
|
||||
```
|
||||
|
||||
### 1.3.配置系统网卡
|
||||
|
||||
使用 `Cloud-Init` 并给虚拟机分配了 IP 地址后,虚拟机的网卡还会从路由器的 DHCP 再获取一个 IP 地址。
|
||||
|
||||
这个功能在给虚拟机添加网卡设备时很有用,但本 Debian 虚拟机模板的使用场景只需要一个静态 IP 地址,因此需要禁用网卡自动获取 IP 地址的功能。
|
||||
|
||||
执行以下命令对网卡的配置文件进行修改:
|
||||
|
||||
```bash
|
||||
## 修改 Debian 网卡配置文件
|
||||
sudo nano /etc/network/interfaces
|
||||
```
|
||||
|
||||
在 `nano` 编辑器对话框中,将 `source-directory /run/network/interfaces.d` 这行内容 “注释” 掉,参考如下内容:
|
||||
|
||||
```bash
|
||||
## 网卡配置文件示例
|
||||
|
||||
# Cloud images dynamically generate config fragments for newly
|
||||
# attached interfaces. See /etc/udev/rules.d/75-cloud-ifupdown.rules
|
||||
# and /etc/network/cloud-ifupdown-helper. Dynamically generated
|
||||
# configuration fragments are stored in /run:
|
||||
# source-directory /run/network/interfaces.d ## 在这行前面增加注释符 # 来注释
|
||||
|
||||
```
|
||||
|
||||
将配置保存后,可以将模板虚拟机重启。
|
||||
|
||||
在系统重启完成后,执行以下命令检查系统的 IP 地址状态:
|
||||
|
||||
```bash
|
||||
## 检查系统 IP 地址状态
|
||||
ip a
|
||||
```
|
||||
|
||||
如果系统网卡有且仅有一个 IP 地址,且该 IP 地址与 `Cloud-Init` 中设置的 IP 地址相同,则表示系统网卡已正确设置。
|
||||
|
||||
### 1.4.调整系统内核参数
|
||||
|
||||
由于该 Debian 虚拟机模板将用于克隆内网 DNS 服务器,因此需要调整一部分系统内核参数来简单优化性能。
|
||||
|
||||
执行以下命令对 `sysctl` 的配置文件进行修改:
|
||||
|
||||
```bash
|
||||
## 调整系统内核参数
|
||||
sudo nano /etc/sysctl.conf
|
||||
```
|
||||
|
||||
在配置文件末尾输入以下内容,注意命令中间的空格:
|
||||
|
||||
```bash
|
||||
net.core.default_qdisc = fq_codel
|
||||
net.ipv4.tcp_congestion_control = bbr
|
||||
|
||||
net.ipv6.conf.all.disable_ipv6 = 1
|
||||
|
||||
net.ipv4.tcp_fastopen = 1
|
||||
net.ipv4.tcp_syncookies = 1
|
||||
net.ipv4.tcp_notsent_lowat = 131072
|
||||
|
||||
net.ipv4.tcp_ecn = 1
|
||||
net.ipv4.tcp_sack = 1
|
||||
net.ipv4.tcp_dsack = 1
|
||||
|
||||
net.ipv4.icmp_ratelimit = 50
|
||||
|
||||
kernel.panic = 20
|
||||
```
|
||||
|
||||
保存该配置文件后,重启系统或者执行以下命令让配置生效:
|
||||
|
||||
```bash
|
||||
## 让内核参数生效
|
||||
sudo sysctl -f
|
||||
```
|
||||
|
||||
### 1.5.调整系统时间
|
||||
|
||||
默认情况下的 Debian 云镜像的系统时间可能不正确,执行以下命令将系统时区设置为中国时区:
|
||||
|
||||
```bash
|
||||
## 设置系统时区
|
||||
sudo timedatectl set-timezone Asia/Shanghai
|
||||
```
|
||||
|
||||
设置完成后,执行以下命令检查系统时间:
|
||||
|
||||
```bash
|
||||
## 检查系统时区
|
||||
date -R
|
||||
```
|
||||
|
||||
Debian 普通镜像常用 `systemd-timesyncd.service` 来同步时间,而 Debian 云镜像使用 `chrony.service` 来同步时间。
|
||||
|
||||
为了使用国内的 NTP 服务器,需要对 `chrony.service` 进行配置。
|
||||
|
||||
执行以下命令对 `chrony` 的配置文件进行修改:
|
||||
|
||||
```bash
|
||||
## 编辑 chrony 配置文件
|
||||
sudo nano /etc/chrony/chrony.conf
|
||||
```
|
||||
|
||||
在编辑器对话框中,将 `pool 2.debian.pool.ntp.org iburst` 这行内容 “注释” 掉,并添加国内的 NTP 服务器,参考如下内容:
|
||||
|
||||
```bash
|
||||
## chrony 服务配置文件示例
|
||||
|
||||
# Use Debian vendor zone.
|
||||
# pool 2.debian.pool.ntp.org iburst ## 在这行前面增加注释符 # 来注释
|
||||
|
||||
# Use Custom vendor zone.
|
||||
pool ntp.tencent.com iburst
|
||||
pool ntp.aliyun.com iburst
|
||||
```
|
||||
|
||||
保存该配置文件后,重启 `chrony` 服务:
|
||||
|
||||
```bash
|
||||
## 重启 chrony 服务
|
||||
sudo systemctl restart chrony.service
|
||||
```
|
||||
|
||||
再检查系统 NTP 服务器是否被正确修改:
|
||||
|
||||
```bash
|
||||
## 检查系统 NTP 服务器
|
||||
chronyc sources -V
|
||||
```
|
||||
|
||||
如果输出以下类似内容,则表示系统 NTP 服务设置正确:
|
||||
|
||||
```bash
|
||||
## NTP 服务示例输出
|
||||
|
||||
MS Name/IP address Stratum Poll Reach LastRx Last sample
|
||||
===============================================================================
|
||||
^+ 139.199.215.251 2 10 177 244 -1669us[-1757us] +/- 67ms
|
||||
^* 203.107.6.88 2 10 377 105 -1005us[-1094us] +/- 19ms
|
||||
```
|
||||
|
||||
### 1.6.配置系统自动更新
|
||||
|
||||
配置 Debian 模板虚拟机的系统自动更新,与配置 PVE 系统自动更新方法基本一致,参阅 [PVE系统自动更新](./3.PVE系统调整.md#5pve系统自动更新) 。
|
||||
|
||||
配置系统更新之前,先检查当前系统定时器状态:
|
||||
|
||||
```bash
|
||||
## 检查系统定时器
|
||||
sudo systemctl status apt-daily-upgrade.timer
|
||||
```
|
||||
|
||||
配置系统自动更新策略,执行以下命令,使用键盘 `左右方向键` 进行选择,`回车键` 进行确认:
|
||||
|
||||
```bash
|
||||
## 配置自动更新策略
|
||||
sudo dpkg-reconfigure -plow unattended-upgrades
|
||||
|
||||
## 选择 “是” (“YES”)
|
||||
## 示例输出
|
||||
Creating config file /etc/apt/apt.conf.d/20auto-upgrades with new version
|
||||
```
|
||||
|
||||
接下来调整 apt 的 `20auto-upgrades` 配置文件:
|
||||
|
||||
```bash
|
||||
## 进入 apt 的配置目录
|
||||
cd /etc/apt/apt.conf.d
|
||||
|
||||
## 编辑 20auto-upgrades 配置文件
|
||||
sudo nano 20auto-upgrades
|
||||
|
||||
## 删除里面全部内容并填写以下内容
|
||||
APT::Periodic::Update-Package-Lists "1";
|
||||
APT::Periodic::Unattended-Upgrade "5";
|
||||
APT::Periodic::AutocleanInterval "1";
|
||||
APT::Periodic::CleanInterval "1";
|
||||
```
|
||||
|
||||
其中,用来控制系统更新周期的为 `APT::Periodic::Unattended-Upgrade` 这行内容,其中参数 `"5"` 表示更新周期为 `5` 天。
|
||||
|
||||
再调整 apt 的 `50unattended-upgrades` 配置文件,所有修改项目汇聚如下:
|
||||
|
||||
```bash
|
||||
## 进入 apt 的配置目录
|
||||
cd /etc/apt/apt.conf.d
|
||||
|
||||
## 编辑 50unattended-upgrades 配置文件
|
||||
sudo nano 50unattended-upgrades
|
||||
|
||||
## 删除以下行前面的注释符 // ,代表启用
|
||||
"origin=Debian,codename=${distro_codename}-updates";
|
||||
|
||||
## 删除以下行前面的注释符,代表启用,并调整参数
|
||||
Unattended-Upgrade::AutoFixInterruptedDpkg "true";
|
||||
|
||||
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
|
||||
|
||||
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";
|
||||
|
||||
Unattended-Upgrade::Remove-Unused-Dependencies "true";
|
||||
|
||||
Unattended-Upgrade::Automatic-Reboot "true";
|
||||
|
||||
Unattended-Upgrade::Automatic-Reboot-Time "04:30";
|
||||
```
|
||||
|
||||
因为该配置文件很长,文章中留下一份 Debian 中已配置好的文件 [Fox_Debian_50unattended_Upgrades.conf](./src/Fox_Debian_50unattended_Upgrades.conf) ,以便对比。
|
||||
|
||||
两个配置文件均修改完成后,需要重设系统自动更新触发器,执行以下命令:
|
||||
|
||||
```bash
|
||||
## 重设自动更新触发器时间为凌晨02:00
|
||||
sudo systemctl edit apt-daily-upgrade.timer
|
||||
|
||||
## 根据文件中的提示,在中间空白处填入以下内容
|
||||
[Timer]
|
||||
OnCalendar=
|
||||
OnCalendar=02:00
|
||||
RandomizedDelaySec=0
|
||||
```
|
||||
|
||||
重启触发器,并检查其状态,执行以下命令:
|
||||
|
||||
```bash
|
||||
## 重启触发器
|
||||
sudo systemctl restart apt-daily-upgrade.timer
|
||||
|
||||
## 再次检查触发器状态
|
||||
sudo systemctl status apt-daily-upgrade.timer
|
||||
```
|
||||
|
||||
在输出结果中看到系统自动更新的触发时间为凌晨 `02:00` 则表示设置正确。
|
||||
|
||||
### 1.7.配置Snap自动更新
|
||||
|
||||
先查看 Snap 当前的更新策略,执行以下命令:
|
||||
|
||||
```bash
|
||||
## 显示当前 Snap 自动更新设置
|
||||
sudo snap refresh --time
|
||||
```
|
||||
|
||||
将 Snap 自动更新时间设置为每天 `2:30-3:30` 和 `14:30-15:30` 两个时间段:
|
||||
|
||||
```bash
|
||||
## 修改 Snap 自动更新时间
|
||||
sudo snap set system refresh.timer=2:30-3:30,14:30-15:30
|
||||
|
||||
## 其他 Snap 自动更新时间设置语法参考
|
||||
sudo snap set system refresh.timer=mon,2:30,,fri,2:30
|
||||
```
|
||||
|
||||
### 1.8.配置系统定时任务
|
||||
|
||||
本步骤为可选操作,主要设置定时重启 Snap 服务以及操作系统。
|
||||
|
||||
```bash
|
||||
## 查看系统定时任务
|
||||
sudo crontab -l
|
||||
|
||||
## 编辑系统定时任务,编辑器选择 nano
|
||||
sudo crontab -e
|
||||
|
||||
## 定时重启 Snap 服务、操作系统
|
||||
0 5 * * * snap restart adguard-home
|
||||
0 6 8,24 * * /usr/sbin/reboot
|
||||
```
|
||||
|
||||
### 1.9.配置ZSH
|
||||
|
||||
`Zsh` 是比 `Bash` 好用的 `Shell` 程序,使用 `oh-my-zsh` 进行配置:
|
||||
|
||||
```bash
|
||||
## 返回 home 目录
|
||||
cd
|
||||
|
||||
## 使用 curl 安装 oh-my-zsh
|
||||
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
||||
|
||||
## 或者使用 wget 安装 oh-my-zsh
|
||||
sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
|
||||
|
||||
## 询问是否切换默认 shell,输入 Y
|
||||
## 示例输出
|
||||
Time to change your default shell to zsh:
|
||||
Do you want to change your default shell to zsh? [Y/n] y
|
||||
```
|
||||
|
||||
### 1.10.清理系统
|
||||
|
||||
Debian 模板虚拟机已经配置完成,在将其转换为模板前需要对系统进行清理。
|
||||
|
||||
逐条执行以下命令,注意命令中的空格:
|
||||
|
||||
```bash
|
||||
## 清理系统软件包
|
||||
sudo apt clean && sudo apt autoclean && sudo apt autoremove --purge
|
||||
|
||||
## 清理系统缓存
|
||||
sudo rm -rvf /var/cache/apt/* /var/lib/apt/lists/* /tmp/*
|
||||
|
||||
## 清理系统日志
|
||||
sudo find /var/log/ -type f | xargs sudo rm -rvf
|
||||
|
||||
## 清理命令历史记录文件
|
||||
rm -rvf ~/.bash_history ~/.zsh_history
|
||||
|
||||
## 清理命令历史
|
||||
history -c
|
||||
```
|
||||
|
||||
## 2.虚拟机转为模板
|
||||
|
||||
将 Debian 模板虚拟机关机,并进入 PVE 的 WEB 管理界面。
|
||||
|
||||
在左侧虚拟机列表中,鼠标 **右键单击** Debian 模板虚拟机,在弹出的菜单中选择 `转换成模板` :
|
||||
|
||||

|
||||
|
||||
需要说明的是,虚拟机 `转换成模板` 的操作是不可逆的。
|
||||
|
||||
如果某些 Debian 系统的配置项有问题,只能在用该模板克隆出来的新虚拟机中进行修改,或者删除并重新制作模板。
|
||||
|
||||
## 3.额外说明
|
||||
|
||||
本文中 Debian 云镜像的系统配置方法大多也适用于 Debian 普通镜像。
|
||||
|
||||
但有关 IP 地址、DNS、系统时区等内容的配置方法在 Debian 普通镜像上有区别。
|
||||
|
||||
而且,如果使用 Debian 普通镜像制作虚拟机模板,建议不要使用 `Cloud-Init` ,以避免某些配置发生变化。
|
||||
|
||||
使用 Debian ISO 镜像安装完操作系统后,修改网卡 IP 地址配置,需要执行以下命令:
|
||||
|
||||
```bash
|
||||
## Debian 普通镜像调整网卡配置
|
||||
sudo vim /etc/network/interfaces
|
||||
```
|
||||
|
||||
在网卡的配置文件中需要修改 `address` 、 `dns-nameservers` 等参数,完整配置文件参考如下:
|
||||
|
||||
```bash
|
||||
# This file describes the network interfaces available on your system
|
||||
# and how to activate them. For more information, see interfaces(5).
|
||||
|
||||
source /etc/network/interfaces.d/*
|
||||
|
||||
# The loopback network interface
|
||||
auto lo
|
||||
iface lo inet loopback
|
||||
|
||||
# The primary network interface
|
||||
allow-hotplug ens18
|
||||
iface ens18 inet static
|
||||
address 172.16.1.2/24
|
||||
gateway 172.16.1.1
|
||||
# dns-* options are implemented by the resolvconf package, if installed
|
||||
dns-nameservers 172.16.1.3
|
||||
dns-search fox.lab
|
||||
```
|
||||
|
||||
检查系统的 `hosts` ,执行以下命令:
|
||||
|
||||
```bash
|
||||
## 检查系统 hosts
|
||||
cat /etc/hosts
|
||||
|
||||
## 示例输出
|
||||
|
||||
127.0.0.1 localhost
|
||||
172.16.1.2 dns001.fox.lab dns001
|
||||
|
||||
# The following lines are desirable for IPv6 capable hosts
|
||||
::1 localhost ip6-localhost ip6-loopback
|
||||
ff02::1 ip6-allnodes
|
||||
ff02::2 ip6-allrouters
|
||||
```
|
||||
|
||||
Debian 普通镜像需要手动修改系统 DNS 配置,执行以下命令:
|
||||
|
||||
```bash
|
||||
## Debian 普通镜像修改系统 DNS
|
||||
sudo vim /etc/resolv.conf
|
||||
```
|
||||
|
||||
在编辑器对话框中输入以下内容,注意命令中间的空格:
|
||||
|
||||
```bash
|
||||
search fox.lab
|
||||
nameserver 127.0.0.1
|
||||
nameserver 172.16.1.3
|
||||
```
|
||||
|
||||
Debian 普通镜像使用 `systemd-timesyncd.service` 来同步系统时间,检查服务状态:
|
||||
|
||||
```bash
|
||||
## 检查 Debian 普通镜像 NTP 服务器状态
|
||||
sudo systemctl status systemd-timesyncd.service
|
||||
```
|
||||
|
||||
调整 NTP 服务,逐条执行以下命令:
|
||||
|
||||
```bash
|
||||
## 创建 NTP 配置文件的文件夹
|
||||
sudo mkdir /etc/systemd/timesyncd.conf.d
|
||||
|
||||
## 创建 NTP 配置文件
|
||||
sudo nano /etc/systemd/timesyncd.conf.d/server-ntp.conf
|
||||
```
|
||||
|
||||
在 nano 编辑器对话框中输入以下内容,并保存:
|
||||
|
||||
```bash
|
||||
[Time]
|
||||
NTP=ntp.tencent.com ntp.aliyun.com
|
||||
```
|
||||
|
||||
重启 NTP 服务:
|
||||
|
||||
```bash
|
||||
## 重启 NTP 服务
|
||||
sudo systemctl restart systemd-timesyncd.service
|
||||
```
|
||||
@@ -1,58 +0,0 @@
|
||||
## 1.克隆虚拟机
|
||||
|
||||
在上一篇文章 [5.PVE创建模板虚拟机](./5.PVE制作虚拟机模板.md) 中,我们已经制作好了虚拟机模板。
|
||||
|
||||
接下来将使用该模板克隆出新的虚拟机,并使用 Adguard Home 作为内网的 DNS 服务器。
|
||||
|
||||
鼠标 **右键单击** 虚拟机模板,在弹出的菜单中选择 `克隆` :
|
||||
|
||||

|
||||
|
||||
在弹出的虚拟机克隆对话框中,根据实际情况及下方表格内容,修改虚拟机参数:
|
||||
|
||||
|参数|值|说明|
|
||||
|--|--|--|
|
||||
|目标节点|hyper|当前 PVE 服务器节点|
|
||||
|VM ID|501|可自由定义,不能与现存虚拟机 `VM ID` 相同|
|
||||
|名称|DNS001|可自由定义,`Cloud-Init` 将使用该名称作为虚拟机 `hostname` |
|
||||
|模式|完整克隆|选择虚拟机的克隆模式|
|
||||
|目标存储|local-lvm|克隆出的虚拟机文件存储位置|
|
||||
|
||||

|
||||
|
||||
参数修改完成后,点击 `克隆` 按钮即可使用该模板克隆出新的虚拟机。
|
||||
|
||||
## 2.调整新虚拟机Cloud-Init
|
||||
|
||||
克隆出来的虚拟机的 `Cloud-Init` 参数默认与模板完全一致。
|
||||
|
||||
根据之前的网络规划,内网 DNS 服务器 IP 地址分别为 `172.16.1.2/24` 、 `172.16.1.3/24` 。
|
||||
|
||||
因此需要调整新虚拟机的 `Cloud-Init` 参数:
|
||||
|
||||

|
||||
|
||||
- `DNS服务器` 参数为 `172.16.1.3 127.0.0.1`
|
||||
- `IP配置` 中的 IP 地址参数为 `172.16.1.2/24` ,网关保持 `172.16.1.1` 不变
|
||||
|
||||
这样设置的用意是,让内网两台 DNS 服务器相互提供 DNS 服务。
|
||||
|
||||
此处需要注意的是,如果修改了 `用户` 参数,相当于新建了一个系统管理员,之前设置的 `oh-my-zsh` 需要在新管理员下重新设置。
|
||||
|
||||
## 3.调整新虚拟机配置参数
|
||||
|
||||
在创建模板虚拟机的文章中有提到过,新虚拟机需要修改 [配置参数](./4.PVE创建模板虚拟机.md#3调整虚拟机配置参数) 才能自动启动。
|
||||
|
||||
将新虚拟机的 `开机自启动` 设置为 `是` 。
|
||||
|
||||

|
||||
|
||||
鼠标 **双击** `启动/关机顺序` 选项,调整新虚拟机的自动开机参数:
|
||||
|
||||

|
||||
|
||||
`启动/关机顺序` 为 `2` ,表示该虚拟机第二个启动,倒数第二个关机。
|
||||
|
||||
`启动延时` 为 `15` ,表示该虚拟机在 PVE 启动完成后,延迟 15 秒自行启动。
|
||||
|
||||
至此,新虚拟机的 IP 地址设置、DNS 设置、自启动设置已经完成。
|
||||
@@ -1,69 +0,0 @@
|
||||
## 1.添加备份作业
|
||||
|
||||
在所有虚拟机创建并配置完成后,可以使用 PVE 自带的备份功能周期性的将虚拟机备份。
|
||||
|
||||
点击 PVE 的 `数据中心` ,在右侧菜单中选择 `备份` 功能。
|
||||
|
||||
点击顶部 `添加` 按钮,添加一个备份作业:
|
||||
|
||||

|
||||
|
||||
### 1.1.备份作业-常规选项
|
||||
|
||||
在弹出的 `创建:备份作业` 对话框中,勾选底部的 `Repeat missed` 选项,并修改参数:
|
||||
|
||||
|参数|值|说明|
|
||||
|--|--|--|
|
||||
|节点|hyper|选择当前 PVE 服务器节点|
|
||||
|存储|local|选择存放备份文件的路径|
|
||||
|计划|`*-01,16 03:30`|备份作业执行的时间计划|
|
||||
|选择模式|包括选中的VMs|执行备份的虚拟机对象|
|
||||
|发送邮箱至|your_email@qq.com|备份作业邮件收件人邮箱|
|
||||
|电子邮件|仅在失败时|何时发送备份作业邮件提醒|
|
||||
|压缩|ZSTD|选择备份文件的压缩算法|
|
||||
|模式|停止|选择备份虚拟机的方式,推荐使用 `停止` |
|
||||
|启用|勾选|表示该备份作业为启用状态|
|
||||
|Job Comment|`Backup Main Router`|备份作业的备注信息,使用英文输入|
|
||||
|Repeat missed|勾选|表示当意外错过备份执行时间后,将重试备份|
|
||||
|
||||
在下方虚拟机列表中,勾选备份作业需要备份的虚拟机(可多选):
|
||||
|
||||

|
||||
|
||||
**说明:**
|
||||
|
||||
计划中的 `*-01,16 03:30` 表示每个月的 1、16 日凌晨 03:30 进行备份作业。
|
||||
|
||||
PVE 在正确配置邮件发送功能之前,并不能发出邮件。
|
||||
|
||||
`停止` 模式表示备份时会将虚拟机关机,备份完成后再自动开机。
|
||||
|
||||
### 1.2.备份作业-保留选项
|
||||
|
||||
该选项将控制备份文件的保留个数,选择保留最近 3 次的备份文件:
|
||||
|
||||

|
||||
|
||||
### 1.3.备份作业-Note Template
|
||||
|
||||
该选项将按照设置的内容,自动重命名备份文件。
|
||||
|
||||
在 Backup Notes 右侧文本框中输入 `{{vmid}}_{{guestname}}_Auto_Backup` :
|
||||
|
||||

|
||||
|
||||
点击 `创建` 按钮,备份作业创建完成。
|
||||
|
||||
## 2.调度模拟器
|
||||
|
||||
在创建完成备份作业后,可以使用 `调度模拟器` 来模拟备份作业的执行时间。
|
||||
|
||||
鼠标 **单击** 选中一个备份作业,点击右上角的 `调度模拟器` :
|
||||
|
||||

|
||||
|
||||
`计划` 处将显示 `备份作业` 的执行时间参数,点击 `模拟` 按钮,在右侧将显示模拟的时间结果:
|
||||
|
||||

|
||||
|
||||
确认备份作业的执行时间周期是否符合预期。
|
||||
@@ -1,127 +0,0 @@
|
||||
## 1.修改系统Grub参数
|
||||
|
||||
参考官方文档 [qm_pci_passthrough](https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_pci_passthrough) 开启 PVE 硬件直通功能。
|
||||
|
||||
使用 SSH 工具登录到 PVE 服务器,编辑系统 Grub 的配置文件 `/etc/default/grub` :
|
||||
|
||||
```bash
|
||||
## 编辑 Grub 配置文件
|
||||
nano /etc/default/grub
|
||||
```
|
||||
|
||||
在 `nano` 编辑器对话框中修改 `GRUB_CMDLINE_LINUX_DEFAULT` 参数,注意命令中间的空格:
|
||||
|
||||
```bash
|
||||
## Intel 处理器添加参数
|
||||
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
|
||||
```
|
||||
|
||||
根据官方文档的说明,AMD 处理器下硬件直通功能将会自动打开,否则需要手动修改 Grub 配置文件:
|
||||
|
||||
```bash
|
||||
## AMD 处理器添加参数
|
||||
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"
|
||||
```
|
||||
|
||||
修改并保存后,需要更新系统 Grub :
|
||||
|
||||
```bash
|
||||
## 更新系统 Grub
|
||||
update-grub
|
||||
```
|
||||
|
||||
## 2.加载系统内核模块
|
||||
|
||||
修改系统 `/etc/modules` 配置文件,增加必要的系统模块:
|
||||
|
||||
```bash
|
||||
## 编辑系统配置文件
|
||||
nano /etc/modules
|
||||
```
|
||||
|
||||
在配置文件末尾输入以下内容:
|
||||
|
||||
```txt
|
||||
vfio
|
||||
vfio_iommu_type1
|
||||
vfio_pci
|
||||
vfio_virqfd
|
||||
```
|
||||
|
||||
将配置文件保存,并重启 PVE 服务器。
|
||||
|
||||
PVE 服务器重启完成后,再次使用 SSH 工具登录,并使用以下命令检查硬件直通状态:
|
||||
|
||||
```bash
|
||||
## 检查系统硬件直通状态
|
||||
dmesg | grep -e DMAR -e IOMMU -e AMD-Vi
|
||||
```
|
||||
|
||||
检查 `IOMMU` 、 `Directed I/O` 或 `Interrupt Remapping` 的启用状态。
|
||||
|
||||
N5105 处理器示例输出如下:
|
||||
|
||||
```txt
|
||||
[ 0.016437] ACPI: DMAR 0x00000000787BF000 000088 (v02 INTEL EDK2 00000002 01000013)
|
||||
[ 0.016472] ACPI: Reserving DMAR table memory at [mem 0x787bf000-0x787bf087]
|
||||
[ 0.052437] DMAR: IOMMU enabled
|
||||
[ 0.144431] DMAR: Host address width 39
|
||||
[ 0.144432] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
|
||||
[ 0.144439] DMAR: dmar0: reg_base_addr fed90000 ver 4:0 cap 1c0000c40660462 ecap 49e2ff0505e
|
||||
[ 0.144441] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
|
||||
[ 0.144446] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
|
||||
[ 0.144449] DMAR: RMRR base: 0x0000007b800000 end: 0x0000007fbfffff
|
||||
[ 0.144452] DMAR-IR: IOAPIC id 2 under DRHD base 0xfed91000 IOMMU 1
|
||||
[ 0.144453] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
|
||||
[ 0.144454] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
|
||||
[ 0.146335] DMAR-IR: Enabled IRQ remapping in x2apic mode
|
||||
[ 0.333509] pci 0000:00:02.0: DMAR: Skip IOMMU disabling for graphics
|
||||
[ 0.410824] DMAR: No ATSR found
|
||||
[ 0.410824] DMAR: No SATC found
|
||||
[ 0.410826] DMAR: IOMMU feature fl1gp_support inconsistent
|
||||
[ 0.410827] DMAR: IOMMU feature pgsel_inv inconsistent
|
||||
[ 0.410829] DMAR: IOMMU feature nwfs inconsistent
|
||||
[ 0.410829] DMAR: IOMMU feature pds inconsistent
|
||||
[ 0.410830] DMAR: IOMMU feature eafs inconsistent
|
||||
[ 0.410831] DMAR: IOMMU feature prs inconsistent
|
||||
[ 0.410831] DMAR: IOMMU feature nest inconsistent
|
||||
[ 0.410832] DMAR: IOMMU feature mts inconsistent
|
||||
[ 0.410832] DMAR: IOMMU feature sc_support inconsistent
|
||||
[ 0.410833] DMAR: IOMMU feature dev_iotlb_support inconsistent
|
||||
[ 0.410835] DMAR: dmar0: Using Queued invalidation
|
||||
[ 0.410838] DMAR: dmar1: Using Queued invalidation
|
||||
[ 0.412755] DMAR: Intel(R) Virtualization Technology for Directed I/O
|
||||
```
|
||||
|
||||
检查系统 `IOMMU` 分组:
|
||||
|
||||
```bash
|
||||
## 检查 IOMMU group
|
||||
find /sys/kernel/iommu_groups/ -type l
|
||||
```
|
||||
|
||||
示例输出如下:
|
||||
|
||||
```txt
|
||||
/sys/kernel/iommu_groups/7/devices/0000:00:1c.4
|
||||
/sys/kernel/iommu_groups/15/devices/0000:04:00.0
|
||||
/sys/kernel/iommu_groups/5/devices/0000:00:17.0
|
||||
/sys/kernel/iommu_groups/13/devices/0000:02:00.0
|
||||
/sys/kernel/iommu_groups/3/devices/0000:00:14.2
|
||||
/sys/kernel/iommu_groups/3/devices/0000:00:14.0
|
||||
/sys/kernel/iommu_groups/11/devices/0000:00:1f.0
|
||||
/sys/kernel/iommu_groups/11/devices/0000:00:1f.5
|
||||
/sys/kernel/iommu_groups/11/devices/0000:00:1f.3
|
||||
/sys/kernel/iommu_groups/11/devices/0000:00:1f.4
|
||||
/sys/kernel/iommu_groups/1/devices/0000:00:02.0
|
||||
/sys/kernel/iommu_groups/8/devices/0000:00:1c.5
|
||||
/sys/kernel/iommu_groups/16/devices/0000:05:00.0
|
||||
/sys/kernel/iommu_groups/6/devices/0000:00:1c.0
|
||||
/sys/kernel/iommu_groups/14/devices/0000:03:00.0
|
||||
/sys/kernel/iommu_groups/4/devices/0000:00:16.0
|
||||
/sys/kernel/iommu_groups/12/devices/0000:01:00.0
|
||||
/sys/kernel/iommu_groups/2/devices/0000:00:04.0
|
||||
/sys/kernel/iommu_groups/10/devices/0000:00:1c.7
|
||||
/sys/kernel/iommu_groups/0/devices/0000:00:00.0
|
||||
/sys/kernel/iommu_groups/9/devices/0000:00:1c.6
|
||||
```
|
||||
@@ -3,30 +3,35 @@
|
||||
## 介绍
|
||||
PVE 虚拟化平台的安装以及折腾手记。
|
||||
|
||||
- PVE ISO 版本:7.2-1 (Last update: 04 May 2022)
|
||||
- PVE ISO 版本:8.0-2 (更新时间: 2023-06-22)
|
||||
|
||||
- 演示机:
|
||||
- CPU:N5105
|
||||
- 内存:16G
|
||||
- 硬盘:SSD 512G
|
||||
- CPU:英特尔奔腾 Silver N6005 处理器
|
||||
- 内存:16 GB
|
||||
- 网卡:英特尔以太网控制器 I226-V
|
||||
- 硬盘:500 GB NVMe 固态硬盘
|
||||
|
||||
- 内部网络:
|
||||
- IP地址:172.16.1.250
|
||||
- 子网掩码:255.255.255.0
|
||||
- 网关:172.16.1.1
|
||||
- DNS:172.16.1.1
|
||||
- PVE 网络:
|
||||
- IPv4 网络
|
||||
- IP 地址:`172.16.1.254`
|
||||
- 子网掩码:`255.255.255.0` ( 即 `/24` )
|
||||
- 网关:`172.16.1.1`
|
||||
- DNS:`172.16.1.1`
|
||||
- IPv6 网络
|
||||
- 前缀:`fdac::/64`
|
||||
- IP 地址:`fdac::fe`
|
||||
- DNS:`fdac::1`
|
||||
|
||||
### 系列章节
|
||||
|
||||
0. [硬件BIOS配置](./0.硬件BIOS配置.md)
|
||||
1. [PVE系统安装](./1.PVE系统安装.md)
|
||||
2. [PVE初始化配置](./2.PVE初始化配置.md)
|
||||
3. [PVE系统调整](./3.PVE系统调整.md)
|
||||
4. [PVE创建模板虚拟机](./4.PVE创建模板虚拟机.md)
|
||||
5. [PVE制作虚拟机模板](./5.PVE制作虚拟机模板.md)
|
||||
6. [PVE用模板克隆虚拟机](./6.PVE用模板克隆虚拟机.md)
|
||||
7. [PVE自动备份虚拟机](./7.PVE自动备份虚拟机.md)
|
||||
8. [PVE开启硬件直通功能](./8.PVE开启硬件直通功能.md)
|
||||
0. [硬件 BIOS 配置](./00.硬件BIOS配置.md)
|
||||
1. [PVE 系统安装](./01.PVE系统安装.md)
|
||||
2. [PVE 初始化配置](./02.PVE初始化配置.md)
|
||||
3. [PVE 系统调整](./03.PVE系统调整.md)
|
||||
4. [PVE 创建模板虚拟机](./04.PVE创建模板虚拟机.md)
|
||||
5. [PVE 制作虚拟机模板](./05.PVE制作虚拟机模板.md)
|
||||
6. [PVE 用模板克隆虚拟机](./06.PVE用模板克隆虚拟机.md)
|
||||
7. [PVE 自动备份虚拟机](./07.PVE自动备份虚拟机.md)
|
||||
|
||||
### 文章说明
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 208 KiB |
|
Before Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 81 KiB |
|
Before Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 131 KiB |
|
Before Width: | Height: | Size: 597 KiB |
|
Before Width: | Height: | Size: 698 KiB |
|
Before Width: | Height: | Size: 298 KiB |
|
Before Width: | Height: | Size: 528 KiB |
|
Before Width: | Height: | Size: 375 KiB |
|
Before Width: | Height: | Size: 236 KiB |
|
Before Width: | Height: | Size: 281 KiB |
|
Before Width: | Height: | Size: 338 KiB |
|
Before Width: | Height: | Size: 232 KiB |
|
Before Width: | Height: | Size: 448 KiB |
|
Before Width: | Height: | Size: 410 KiB |
|
Before Width: | Height: | Size: 596 KiB |
|
Before Width: | Height: | Size: 725 KiB |
|
Before Width: | Height: | Size: 272 KiB |
|
Before Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 148 KiB |
|
Before Width: | Height: | Size: 173 KiB |
|
Before Width: | Height: | Size: 138 KiB |
|
Before Width: | Height: | Size: 72 KiB |
|
Before Width: | Height: | Size: 163 KiB |
|
Before Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 193 KiB |
|
Before Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 214 KiB |
|
Before Width: | Height: | Size: 174 KiB |
|
Before Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 184 KiB |
|
Before Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 163 KiB |
|
Before Width: | Height: | Size: 176 KiB |
|
Before Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 99 KiB |
|
Before Width: | Height: | Size: 95 KiB |
|
Before Width: | Height: | Size: 191 KiB |
|
Before Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 175 KiB |
|
Before Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 160 KiB |
|
After Width: | Height: | Size: 214 KiB |
|
After Width: | Height: | Size: 264 KiB |
|
After Width: | Height: | Size: 165 KiB |
|
After Width: | Height: | Size: 205 KiB |
|
After Width: | Height: | Size: 146 KiB |
|
After Width: | Height: | Size: 119 KiB |
|
After Width: | Height: | Size: 168 KiB |
|
After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 161 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 353 KiB |
|
After Width: | Height: | Size: 102 KiB |
|
After Width: | Height: | Size: 90 KiB |
|
After Width: | Height: | Size: 205 KiB |
|
After Width: | Height: | Size: 252 KiB |
|
After Width: | Height: | Size: 205 KiB |
|
After Width: | Height: | Size: 272 KiB |
|
After Width: | Height: | Size: 144 KiB |
|
After Width: | Height: | Size: 283 KiB |
|
After Width: | Height: | Size: 339 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 279 KiB |
|
After Width: | Height: | Size: 269 KiB |
|
After Width: | Height: | Size: 247 KiB |
|
After Width: | Height: | Size: 216 KiB |
|
After Width: | Height: | Size: 274 KiB |
|
After Width: | Height: | Size: 131 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 204 KiB |
|
After Width: | Height: | Size: 170 KiB |
|
After Width: | Height: | Size: 169 KiB |
|
Before Width: | Height: | Size: 599 KiB After Width: | Height: | Size: 599 KiB |