Compare commits

..
60 Commits
Author SHA1 Message Date
秋刀狐狸 c231fcd1da update README.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-08 04:50:57 +00:00
秋刀狐狸 0eb12962e1 update README.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-08 04:49:57 +00:00
秋刀狐狸 0c51f26f82 update 2.PVE初始化配置.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-08 04:19:20 +00:00
秋刀狐狸 fe4e9e1358 update 2.PVE初始化配置.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-08 04:17:57 +00:00
秋刀狐狸 96b645ea3e update 2.PVE初始化配置.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-08 04:13:09 +00:00
秋刀狐狸 84c061db04 PVE新增IPv6
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-08 04:08:50 +00:00
秋刀狐狸 1563998163 删除文件 img/pve_net_preview.png 2022-09-08 04:08:08 +00:00
秋刀狐狸 49cb54403f update 2.PVE初始化配置.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-08 04:01:09 +00:00
秋刀狐狸 e2c059ca43 update 2.PVE初始化配置.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-08 03:59:02 +00:00
秋刀狐狸 28efcd6176 update 1.PVE系统安装.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-08 03:52:44 +00:00
秋刀狐狸 777c11ae9d 虚拟机模板使用IPv6
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-08 03:41:17 +00:00
秋刀狐狸 8e53115099 删除文件 img/Template/vm_clone_ci.png 2022-09-08 03:40:51 +00:00
秋刀狐狸 7799eb2831 update 6.PVE用模板克隆虚拟机.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-08 03:28:41 +00:00
秋刀狐狸 28ad2b3bda update 6.PVE用模板克隆虚拟机.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-06 11:44:03 +00:00
秋刀狐狸 b55242e71b 虚拟机模板使用IPv6
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-06 11:40:29 +00:00
秋刀狐狸 9bd9b83479 删除文件 img/Template/vm_clone_ci.png 2022-09-06 11:40:03 +00:00
秋刀狐狸 8eb6867b4a 删除文件 img/Template/vm_ci_network.png 2022-09-06 11:37:06 +00:00
秋刀狐狸 de0b318dab 克隆虚拟机使用IPv6
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-06 10:41:26 +00:00
秋刀狐狸 141302b10c 删除文件 img/Template/vm_clone_ci.png 2022-09-06 10:41:02 +00:00
秋刀狐狸 20f0475202 update 6.PVE用模板克隆虚拟机.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-06 10:37:06 +00:00
秋刀狐狸 5113e66d94 update 4.PVE创建模板虚拟机.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-06 10:06:57 +00:00
秋刀狐狸 90996ccb8f 虚拟机模板使用IPv6
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-06 10:00:40 +00:00
秋刀狐狸 0e591cf3aa 删除文件 img/Template/vm_ci_network.png 2022-09-06 10:00:03 +00:00
秋刀狐狸 5dde89bb2e update 4.PVE创建模板虚拟机.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-06 09:52:02 +00:00
秋刀狐狸 ede84757b6 update 2.PVE初始化配置.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-06 09:37:37 +00:00
秋刀狐狸 45685ad64c update 2.PVE初始化配置.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-06 09:18:59 +00:00
秋刀狐狸 9a522fccc0 update 1.PVE系统安装.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-06 09:17:19 +00:00
秋刀狐狸 37e0655dcb update 2.PVE初始化配置.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-06 09:08:26 +00:00
秋刀狐狸 f74737333a update 2.PVE初始化配置.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-06 09:07:42 +00:00
秋刀狐狸 cdd8aca0db update 1.PVE系统安装.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-06 09:02:54 +00:00
秋刀狐狸 a50b32e706 update 2.PVE初始化配置.md.
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-06 09:01:18 +00:00
秋刀狐狸 3bb9c27428 PVE新增IPv6
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-06 08:57:12 +00:00
秋刀狐狸 386a4a50b6 删除文件 img/pve_br_last_phyport.png 2022-09-06 08:56:41 +00:00
秋刀狐狸 5c55801cb0 修改 sysctl 以支持IPv6
Signed-off-by: 秋刀狐狸 <9463297+callmer@user.noreply.gitee.com>
2022-09-06 04:01:54 +00:00
秋刀狐狸 90c5f696e7 update 5.PVE制作虚拟机模板.md.
Signed-off-by: 秋刀狐狸 <alien_maker@qq.com>
2022-09-05 17:05:35 +00:00
秋刀狐狸 4795e235de update 8.PVE开启硬件直通功能.md.
Signed-off-by: 秋刀狐狸 <alien_maker@qq.com>
2022-08-22 08:25:26 +00:00
秋刀狐狸 65339774ce update 8.PVE开启硬件直通功能.md.
Signed-off-by: 秋刀狐狸 <alien_maker@qq.com>
2022-08-22 08:23:32 +00:00
秋刀狐狸 bc34401bb9 update 5.PVE制作虚拟机模板.md.
Signed-off-by: 秋刀狐狸 <alien_maker@qq.com>
2022-08-21 04:04:57 +00:00
秋刀狐狸 e4201b4cd2 update 8.PVE开启硬件直通功能.md.
Signed-off-by: 秋刀狐狸 <alien_maker@qq.com>
2022-08-19 03:39:16 +00:00
秋刀狐狸 148203337b update README.md.
Signed-off-by: 秋刀狐狸 <alien_maker@qq.com>
2022-08-19 03:35:35 +00:00
秋刀狐狸 9540825394 update 8.PVE开启硬件直通功能.md.
Signed-off-by: 秋刀狐狸 <alien_maker@qq.com>
2022-08-19 03:27:18 +00:00
秋刀狐狸 d732994b35 update 8.PVE开启硬件直通功能.md.
Signed-off-by: 秋刀狐狸 <alien_maker@qq.com>
2022-08-19 03:22:40 +00:00
秋刀狐狸 c96432431d add 8.PVE开启硬件直通功能.md.
Signed-off-by: 秋刀狐狸 <alien_maker@qq.com>
2022-08-19 02:51:43 +00:00
秋刀狐狸 c15a850fc9 update 5.PVE制作虚拟机模板.md.
Signed-off-by: 秋刀狐狸 <alien_maker@qq.com>
2022-08-15 14:01:30 +00:00
秋刀狐狸 f5284878e4 update src/Fox_Debian_50unattended_Upgrades.conf.
Signed-off-by: 秋刀狐狸 <alien_maker@qq.com>
2022-08-15 09:11:02 +00:00
秋刀狐狸 5070552b46 update 5.PVE制作虚拟机模板.md.
Signed-off-by: 秋刀狐狸 <alien_maker@qq.com>
2022-08-15 09:09:26 +00:00
秋刀狐狸 9245800904 update 3.PVE系统调整.md.
Signed-off-by: 秋刀狐狸 <alien_maker@qq.com>
2022-08-15 07:52:11 +00:00
秋刀狐狸 47161bd9f4 update src/Fox_Debian_50unattended_Upgrades.conf.
Signed-off-by: 秋刀狐狸 <alien_maker@qq.com>
2022-08-15 07:49:02 +00:00
秋刀狐狸 c3347e0abb update src/Fox_Debian_50unattended_Upgrades.conf.
Signed-off-by: 秋刀狐狸 <alien_maker@qq.com>
2022-08-15 07:46:55 +00:00
秋刀狐狸 dc182e274b add src/Fox_Debian_50unattended_Upgrades.conf.
Signed-off-by: 秋刀狐狸 <alien_maker@qq.com>
2022-08-15 07:33:51 +00:00
秋刀狐狸 60eaa76f4f update 5.PVE制作虚拟机模板.md.
Signed-off-by: 秋刀狐狸 <alien_maker@qq.com>
2022-08-14 06:13:57 +00:00
秋刀狐狸 9cfef89a55 update 5.PVE制作虚拟机模板.md. 2022-08-11 10:49:03 +00:00
秋刀狐狸 830c5867d9 update src/Fox_PVE_Cpufrequtils.conf. 2022-08-10 16:01:43 +00:00
秋刀狐狸 a65439d173 update 3.PVE系统调整.md. 2022-08-10 15:59:05 +00:00
秋刀狐狸 5c1faec47c update 3.PVE系统调整.md. 2022-08-10 15:43:54 +00:00
秋刀狐狸 bcfe3c4101 update README.md. 2022-08-09 13:39:48 +00:00
秋刀狐狸 0031518178 update README.md. 2022-08-09 13:33:00 +00:00
秋刀狐狸 1e37a1b2a1 update README.md. 2022-08-09 13:27:53 +00:00
秋刀狐狸 9efbb63d3d update 3.PVE系统调整.md. 2022-08-09 02:48:36 +00:00
秋刀狐狸 a20135f828 update 1.PVE系统安装.md. 2022-08-09 02:46:32 +00:00
15 changed files with 412 additions and 62 deletions
+1 -1
View File
@@ -78,7 +78,7 @@ PVE 下载地址:https://www.proxmox.com/en/downloads
## 1.PVE系统安装
由于机型不同,BIOS 的设置也不同,所以本教程不演示具体如何将机器设置成从 U 盘启动。
由于机型不同,BIOS 的设置也不同,所以本不演示具体如何将机器设置成从 U 盘启动。
在设置BIOS时需要注意以下几点:
- 暂时关闭 **“安全启动”**
+27 -16
View File
@@ -154,7 +154,7 @@ apt dist-upgrade
考虑到 **“离线”** 安装时无法同步系统源,因此该步骤可以等到 PVE 中安装好了 RouterOS 软路由或其他路由系统并正确连接 Internet 后再执行。
或者家庭网络环境中还有一个 172.16.1.0/24 网段的,已经连接 Internet 的路由器 A将路由器 A 的LAN 口与 PVE 的管理网口连接,此时 PVE 可访问外网。
或者家庭网络环境中还有一个 `172.16.1.0/24` 网段的,已经连接 Internet 的路由器 A 将路由器 A 的 LAN 口与 PVE 的管理网口连接,此时 PVE 可访问外网。
## 2.安装必要软件
@@ -193,9 +193,9 @@ apt install cpufrequtils
在设置 PVE 的网络之前,需要对网络内部结构做一个规划。
在前篇的网络地址段规划时,我们有如下规划内容:
- PVE IP172.16.1.250/24
- PVE 网关:172.16.1.1
- PVE DNS172.16.1.1
- PVE IP `172.16.1.250/24` IPv6地址: `fc00::fa/64`
- PVE 网关: `172.16.1.1` IPv6地址: `fc00::1`
- PVE DNS `172.16.1.1` IPv6地址: `fc00::1`
我们预计在 PVE 内部安装 RouterOS 用于主路由,2 个 Adguard Home 虚拟机用于提供内网的 DNS 服务以及去广告,且 RouterOS 需要能让 PVE 自身访问外网。
@@ -207,41 +207,43 @@ apt install cpufrequtils
在实地考察了 PVE 软路由在弱电箱的摆放位置后,本次决定使用 ETH0 口,也就是第一个物理网口,作为 RouterOS 的拨号网口,ETH3 口作为 PVE 的管理网口。
在初次登录 PVE 的 WEB 管理后台,并访问网络管理页面时,会发现只有一个 vmbr0。
在初次登录 PVE 的 WEB 管理后台,并访问网络管理页面时,会发现只有一个 `vmbr0`
该 vmbr0 绑定的物理口为列表中的第一个网口,且在 CIDR 和 网关处有 IP 地址参数,说明 vmbr0 就是目前的管理网口。造成该状态的原因是我们在安装 PVE 阶段,选择的网口就是第一个网口。因此我们需要对其进行修改。
`vmbr0` 绑定的物理口为列表中的第一个网口,且在 `CIDR``网关` 处有 IP 地址参数,说明 `vmbr0` 就是目前的管理网口。
造成该状态的原因是我们在安装 PVE 阶段,选择的网口就是第一个网口,因此我们需要对其进行修改。
首先我们需要对每个物理网口创建网桥,并对其进行配置修改,在修改完成前, **请不要点击“应用配置”** ,不然会导致 PVE 无法访问。
### 3.1.修改默认网桥 vmbr0
首先双击 vmbr0 ,进入配置界面:
首先双击 `vmbr0` ,进入配置界面:
![修改vmbr0](img/pve_modify_vmbr0.png)
删除IPv4/CIDR”和“网关”信息,确保自动启动为勾选状态。
删除 `IPv4/CIDR``网关` 信息,确保 `自动启动` 为勾选状态。
在备注处填写For WAN,然后点击“OK”
在备注处填写 `For WAN` ,然后点击 `OK` 按钮
### 3.2.物理网口创建网桥
点击左上角的“创建”,选择“Linux Bridge
点击左上角的 `创建` 按钮,选择 `Linux Bridge`
![创建物理接口网桥](img/pve_br_create.png)
因为 vmbr0 名称已被使用,因此名称处填写 `vmbr1`,桥接端口填写顺序的第二个网卡名称,我演示这里为 `enp3s0`
因为 `vmbr0` 名称已被使用,因此名称处填写 `vmbr1` ,桥接端口填写顺序的第二个网卡名称,我演示这里为 `enp3s0`
![指定物理接口](img/pve_br_phyport.png)
确保自动启动为勾选状态,在备注处填写For LAN1”,点击“创建”
确保 `自动启动` 为勾选状态,在备注处填写 `For LAN1` ,点击 `创建` 按钮
然后,依次创建所有物理接口的内部网桥,直到最后一个:
![最后的物理接口网桥](img/pve_br_last_phyport.png)
在创建最后一个物理网口的 PVE 网桥时,需要额外填写 IPv4 和网关内容
在创建最后一个物理网口的 PVE 网桥时,需要额外配置 `IPv4/IPv6` 和对应的 `网关` 参数
在所有物理网口的 PVE 网桥创建完成后,可以点击应用配置按钮,此时页面会失去连接。
在所有物理网口的 PVE 网桥创建完成后,可以点击 `应用配置` 按钮,此时页面会失去连接。
无需担心,只需要将电脑的网线从 PVE 物理机的第一个网口拔出,并插入到最后一个网口即可。
@@ -262,8 +264,17 @@ apt install cpufrequtils
此时如果 OPNsense 和 RouterOS 均使用了绑定物理网口的 PVE 网桥,则需要用网线在 PVE 服务器外面连接两个网口,浪费宝贵的网线不说,还占用了网口,得不偿失。而使用纯内部网桥则可以很好的解决该问题,有了这个纯内部网桥,不论多少个虚拟机使用了该网桥,只要是同网段,都可以相互访问。
## 4.后续配置
## 4.配置 PVE DNS 服务器
在 PVE 的安装过程中设置了 PVE 服务器的 DNS 地址为 `172.16.1.1` ,但并未设置 DNS 的 IPv6 地址。
在 PVE 系统的 DNS 设置页面中,新增 DNS 服务器的 IPv6 地址,即主路由的 LAN IPv6 地址:
![PVE添加IPv6DNS](img/pve_add_ipv6_dns.png)
## 5.后续配置
至此,PVE的初始化配置完成。
后续将会对 PVE 的一些服务进行配置,例如安全加固、调整 CPU 的调度算法节能省钱、PVE的自动更新等内容。
后续将会对 PVE 的一些服务进行配置,例如安全加固、调整 CPU 的调度算法节能省钱、PVE 的自动更新等内容。
+47 -15
View File
@@ -18,7 +18,7 @@ apt install iperf iperf3 iftop net-tools ethtool
apt install cpufrequtils
```
篇教程后续命令,均在 SSH 终端下完成。
后续命令,均在 SSH 终端下完成。
## 1.Fail2ban 配置
@@ -114,8 +114,11 @@ Wed, 20 Jul 2022 16:21:28 +0800
```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:
@@ -123,17 +126,36 @@ analyzing CPU 0:
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.90 GHz
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.90 GHz.
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 952 MHz.
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
- current policy: governor "ondemand"
- driver: `intel_cpufreq``intel_pstate`
- current policy: `governor "ondemand"``governor "performance"`
当然还有另外一个命令可以用来显示 CPU 调度器:
@@ -141,11 +163,14 @@ analyzing CPU 0:
## 检查 CPU 当前调度器
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
## 参考输出
## J4125 参考输出
ondemand
## N5105 参考输出
performance
```
驱动一般不建议手动调整,而 `governor "ondemand"` 则显示了当前 CPU 的调度器是什么。
驱动一般不建议手动调整,而 `governor` 后面的参数则显示了当前 CPU 的调度器是什么。
接下来,我们需要了解当前系统 CPU 支持的调度器有哪些:
@@ -153,13 +178,20 @@ ondemand
## 检查 CPU 调度器支持情况
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
## 参考输出
## J4125 参考输出
conservative ondemand userspace powersave performance schedutil
## N5105 参考输出
performance powersave
```
这里有很多种调度器可供选择,至于每种调度器有什么优劣,欢迎大家深度挖掘。
根据 CPU 所使用的驱动不同,可选调度器也不同,至于每种调度器有什么优劣,欢迎大家深度挖掘。
本教程以使用 `schedutil` 调度器为演示
CPU 驱动为 `intel_pstate` 时,建议使用 `powersave` 调度器。
CPU 驱动为 `intel_cpufreq` 时,建议使用 `schedutil` 调度器。
本文以使用 `powersave` 调度器为演示。
使用 `vim` 编辑器来编辑 `cpufrequtils` 的配置文件:
@@ -170,14 +202,14 @@ vim /etc/init.d/cpufrequtils
## 在配置文件中修改调度器
ENABLE="true"
GOVERNOR="schedutil" ## 修改本行的调度器为 schedutil
GOVERNOR="powersave" ## 修改本行的调度器为 powersave
MAX_SPEED="0"
MIN_SPEED="0"
```
`i` 键进入编辑模式,`esc` 键退出编辑模式,`:wq` 命令保存退出。
因为该配置文件很长,教程中留下一份已配置好的文件 [Fox_PVE_Cpufrequtils.conf](./src/Fox_PVE_Cpufrequtils.conf) ,以便对比。
因为该配置文件很长,文章中留下一份已配置好的文件 [Fox_PVE_Cpufrequtils.conf](./src/Fox_PVE_Cpufrequtils.conf) ,以便对比。
修改完成后,需要重新启动 PVE 服务器来使参数生效。
@@ -307,7 +339,7 @@ Unattended-Upgrade::Automatic-Reboot-Time "05:00";
- 自动重启:开启。
- 自动重启时间:05:00。
因为该配置文件很长,教程中留下一份 PVE 7.2 中已配置好的文件 [Fox_PVE_50unattended_Upgrades.conf](./src/Fox_PVE_50unattended_Upgrades.conf),以便对比。
因为该配置文件很长,文章中留下一份 PVE 7.2 中已配置好的文件 [Fox_PVE_50unattended_Upgrades.conf](./src/Fox_PVE_50unattended_Upgrades.conf) ,以便对比。
仔细再仔细确认无误后,`esc` 键退出编辑模式,`:wq` 命令保存退出。
+3 -3
View File
@@ -203,9 +203,9 @@ Successfully imported disk as 'unused0:local-lvm:vm-1000-disk-1'
|用户|fox|新系统的管理员账户|
|密码|********|使用强密码|
|DNS域|fox.lab|内网域名(可选)|
|DNS服务器|`172.16.1.1 127.0.0.1`|本机DNS服务器,用空格隔开|
|DNS服务器|`172.16.1.1 fc00::1`|本机DNS服务器,用空格隔开|
|SSH公钥|无|使用秘钥登录服务器,暂不使用|
|IP配置(net0)|`ip=172.16.1.240/24,gw=172.16.1.1`|模板的 IP 设置|
|IP配置(net0)|`ip=172.16.1.240/24,gw=172.16.1.1,ip6=fc00::f0/64,gw=fc00::1`|模板的 IP 设置|
**说明:**
@@ -213,7 +213,7 @@ Successfully imported disk as 'unused0:local-lvm:vm-1000-disk-1'
`DNS服务器` 设置部分,如果先设置了 `127.0.0.1` 作为虚拟机 DNS 服务器,后续其他 DNS 的 IP 地址将被虚拟机忽略。
此时内网没有其他 DNS 服务器存在,因此 `DNS服务器` 先设置为 `172.16.1.1 127.0.0.1` IP 之间用空格隔开。
此时内网没有其他 DNS 服务器存在,因此 `DNS服务器` 先设置为 `172.16.1.1 fc00::1` IP 之间用空格隔开。
在使用 Debian 模板克隆出新虚拟机之后,再对新虚拟机调整 IP 设置比较好。
+11 -4
View File
@@ -25,6 +25,8 @@ sudo nano /etc/ssh/sshd_config.d/fox_sshd.conf
PasswordAuthentication yes
PermitEmptyPasswords no
UseDNS no
```
`nano` 编辑器常用操作如下:
@@ -94,7 +96,10 @@ sudo apt dist-upgrade
```bash
## 安装系统软件
sudo apt install qemu-guest-agent zsh git curl htop lm-sensors fail2ban vim tmux unattended-upgrades apt-listchanges powermgmt-base
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
@@ -167,8 +172,6 @@ sudo nano /etc/sysctl.conf
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
@@ -178,6 +181,8 @@ net.ipv4.tcp_sack = 1
net.ipv4.tcp_dsack = 1
net.ipv4.icmp_ratelimit = 50
kernel.panic = 20
```
保存该配置文件后,重启系统或者执行以下命令让配置生效:
@@ -290,7 +295,7 @@ APT::Periodic::AutocleanInterval "1";
APT::Periodic::CleanInterval "1";
```
其中,用来控制系统更新周期的为 `APT::Periodic::Unattended-Upgrade` 这行内容,其中的“5”表示更新周期为“5”天。
其中,用来控制系统更新周期的为 `APT::Periodic::Unattended-Upgrade` 这行内容,其中参数 `"5"` 表示更新周期为 `5` 天。
再调整 apt 的 `50unattended-upgrades` 配置文件,所有修改项目汇聚如下:
@@ -318,6 +323,8 @@ 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
+4 -3
View File
@@ -26,14 +26,15 @@
克隆出来的虚拟机的 `Cloud-Init` 参数默认与模板完全一致。
根据之前的网络规划,内网 DNS 服务器 IP 地址分别为 `172.16.1.2/24``172.16.1.3/24`
根据之前的网络规划,内网 DNS 服务器 IP 地址分别为 `172.16.1.2/24 (fc00::2/64)``172.16.1.3/24 (fc00::3/64)`
因此需要调整新虚拟机的 `Cloud-Init` 参数:
![调整新虚拟机Cloud-Init](img/Template/vm_clone_ci.png)
- `DNS服务器` 参数为 `172.16.1.3 127.0.0.1`
- `IP配置` 中的 IP 地址参数为 `172.16.1.2/24` ,网关保持 `172.16.1.1` 不变
- `DNS服务器` 参数为 `172.16.1.3 fc00::3 127.0.0.1`
- `IP配置` 中的 IPv4 地址参数为 `172.16.1.2/24` ,网关保持 `172.16.1.1` 不变
- `IP配置` 中的 IPv6 地址参数为 `fc00::2/64` ,网关保持 `fc00::1` 不变
这样设置的用意是,让内网两台 DNS 服务器相互提供 DNS 服务。
+127
View File
@@ -0,0 +1,127 @@
## 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
```
`nano` 编辑器对话框中修改 `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
```
## 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
```
+16 -8
View File
@@ -11,12 +11,19 @@ PVE 虚拟化平台的安装以及折腾手记。
- 硬盘:SSD 512G
- 内部网络:
- IP地址:172.16.1.250
- 子网掩码:255.255.255.0
- 网关:172.16.1.1
- DNS172.16.1.1
- IPv4 网络
- IP 地址:172.16.1.250
- 子网掩码:255.255.255.0
- 网关172.16.1.1
- DNS172.16.1.1
- IPv6 网络
- 前缀:fc00::/60
- 前缀长度:64
- IP 地址:fc00::fa
- 网关:fc00::1
- DNSfc00::1
### 教程章节
### 系列章节
0. [硬件BIOS配置](./0.硬件BIOS配置.md)
1. [PVE系统安装](./1.PVE系统安装.md)
@@ -26,9 +33,10 @@ PVE 虚拟化平台的安装以及折腾手记。
5. [PVE制作虚拟机模板](./5.PVE制作虚拟机模板.md)
6. [PVE用模板克隆虚拟机](./6.PVE用模板克隆虚拟机.md)
7. [PVE自动备份虚拟机](./7.PVE自动备份虚拟机.md)
8. [PVE开启硬件直通功能](./8.PVE开启硬件直通功能.md)
### 教程说明
### 文章说明
1. 本教程涉及的部分参数需要人为调整来符合切实使用需求。
1. 本系列文章涉及的部分参数需要手动调整来符合切实使用需求。
2. 随着 PVE 系统的迭代更新,截图中的内容和实际页面显示可能存在差异。
3. 如需引用,请注明本教程出处。
3. 如需引用,请注明本出处。
Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 91 KiB

+164
View File
@@ -0,0 +1,164 @@
// Unattended-Upgrade::Origins-Pattern controls which packages are
// upgraded.
//
// Lines below have the format "keyword=value,...". A
// package will be upgraded only if the values in its metadata match
// all the supplied keywords in a line. (In other words, omitted
// keywords are wild cards.) The keywords originate from the Release
// file, but several aliases are accepted. The accepted keywords are:
// a,archive,suite (eg, "stable")
// c,component (eg, "main", "contrib", "non-free")
// l,label (eg, "Debian", "Debian-Security")
// o,origin (eg, "Debian", "Unofficial Multimedia Packages")
// n,codename (eg, "jessie", "jessie-updates")
// site (eg, "http.debian.net")
// The available values on the system are printed by the command
// "apt-cache policy", and can be debugged by running
// "unattended-upgrades -d" and looking at the log file.
//
// Within lines unattended-upgrades allows 2 macros whose values are
// derived from /etc/debian_version:
// ${distro_id} Installed origin.
// ${distro_codename} Installed codename (eg, "buster")
Unattended-Upgrade::Origins-Pattern {
// Codename based matching:
// This will follow the migration of a release through different
// archives (e.g. from testing to stable and later oldstable).
// Software will be the latest available for the named release,
// but the Debian release itself will not be automatically upgraded.
"origin=Debian,codename=${distro_codename}-updates";
// "origin=Debian,codename=${distro_codename}-proposed-updates";
"origin=Debian,codename=${distro_codename},label=Debian";
"origin=Debian,codename=${distro_codename},label=Debian-Security";
"origin=Debian,codename=${distro_codename}-security,label=Debian-Security";
// Archive or Suite based matching:
// Note that this will silently match a different release after
// migration to the specified archive (e.g. testing becomes the
// new stable).
// "o=Debian,a=stable";
// "o=Debian,a=stable-updates";
// "o=Debian,a=proposed-updates";
// "o=Debian Backports,a=${distro_codename}-backports,l=Debian Backports";
};
// Python regular expressions, matching packages to exclude from upgrading
Unattended-Upgrade::Package-Blacklist {
// The following matches all packages starting with linux-
// "linux-";
// Use $ to explicitely define the end of a package name. Without
// the $, "libc6" would match all of them.
// "libc6$";
// "libc6-dev$";
// "libc6-i686$";
// Special characters need escaping
// "libstdc\+\+6$";
// The following matches packages like xen-system-amd64, xen-utils-4.1,
// xenstore-utils and libxenstore3.0
// "(lib)?xen(store)?";
// For more information about Python regular expressions, see
// https://docs.python.org/3/howto/regex.html
};
// This option allows you to control if on a unclean dpkg exit
// unattended-upgrades will automatically run
// dpkg --force-confold --configure -a
// The default is true, to ensure updates keep getting installed
Unattended-Upgrade::AutoFixInterruptedDpkg "true";
// Split the upgrade into the smallest possible chunks so that
// they can be interrupted with SIGTERM. This makes the upgrade
// a bit slower but it has the benefit that shutdown while a upgrade
// is running is possible (with a small delay)
//Unattended-Upgrade::MinimalSteps "true";
// Install all updates when the machine is shutting down
// instead of doing it in the background while the machine is running.
// This will (obviously) make shutdown slower.
// Unattended-upgrades increases logind's InhibitDelayMaxSec to 30s.
// This allows more time for unattended-upgrades to shut down gracefully
// or even install a few packages in InstallOnShutdown mode, but is still a
// big step back from the 30 minutes allowed for InstallOnShutdown previously.
// Users enabling InstallOnShutdown mode are advised to increase
// InhibitDelayMaxSec even further, possibly to 30 minutes.
//Unattended-Upgrade::InstallOnShutdown "false";
// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed. E.g. "user@example.com"
//Unattended-Upgrade::Mail "";
// Set this value to one of:
// "always", "only-on-error" or "on-change"
// If this is not set, then any legacy MailOnlyOnError (boolean) value
// is used to chose between "only-on-error" and "on-change"
//Unattended-Upgrade::MailReport "on-change";
// Remove unused automatically installed kernel-related packages
// (kernel images, kernel headers and kernel version locked tools).
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
// Do automatic removal of newly unused dependencies after the upgrade
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";
// Do automatic removal of unused packages after the upgrade
// (equivalent to apt-get autoremove)
Unattended-Upgrade::Remove-Unused-Dependencies "true";
// Automatically reboot *WITHOUT CONFIRMATION* if
// the file /var/run/reboot-required is found after the upgrade
Unattended-Upgrade::Automatic-Reboot "true";
// Automatically reboot even if there are users currently logged in
// when Unattended-Upgrade::Automatic-Reboot is set to true
//Unattended-Upgrade::Automatic-Reboot-WithUsers "true";
// If automatic reboot is enabled and needed, reboot at the specific
// time instead of immediately
// Default: "now"
Unattended-Upgrade::Automatic-Reboot-Time "04:30";
// Use apt bandwidth limit feature, this example limits the download
// speed to 70kb/sec
//Acquire::http::Dl-Limit "70";
// Enable logging to syslog. Default is False
// Unattended-Upgrade::SyslogEnable "false";
// Specify syslog facility. Default is daemon
// Unattended-Upgrade::SyslogFacility "daemon";
// Download and install upgrades only on AC power
// (i.e. skip or gracefully stop updates on battery)
// Unattended-Upgrade::OnlyOnACPower "true";
// Download and install upgrades only on non-metered connection
// (i.e. skip or gracefully stop updates on a metered connection)
// Unattended-Upgrade::Skip-Updates-On-Metered-Connections "true";
// Verbose logging
// Unattended-Upgrade::Verbose "false";
// Print debugging information both in unattended-upgrades and
// in unattended-upgrade-shutdown
// Unattended-Upgrade::Debug "false";
// Allow package downgrade if Pin-Priority exceeds 1000
// Unattended-Upgrade::Allow-downgrade "false";
// When APT fails to mark a package to be upgraded or installed try adjusting
// candidates of related packages to help APT's resolver in finding a solution
// where the package can be upgraded or installed.
// This is a workaround until APT's resolver is fixed to always find a
// solution if it exists. (See Debian bug #711128.)
// The fallback is enabled by default, except on Debian's sid release because
// uninstallable packages are frequent there.
// Disabling the fallback speeds up unattended-upgrades when there are
// uninstallable packages at the expense of rarely keeping back packages which
// could be upgraded or installed.
// Unattended-Upgrade::Allow-APT-Mark-Fallback "true";
+1 -1
View File
@@ -40,7 +40,7 @@ CPUFREQ_OPTIONS=""
# MIN_SPEED=500
ENABLE="true"
GOVERNOR="schedutil"
GOVERNOR="powersave"
MAX_SPEED="0"
MIN_SPEED="0"