Compare commits

..
445 Commits
Author SHA1 Message Date
CallMeR 4a53123479 优化文案描述 2026-08-18 02:23:21 +08:00
CallMeR 99b82b452b 优化文案描述 2026-08-18 01:44:05 +08:00
CallMeR cf082486fa 更新文案描述 2026-08-18 01:39:31 +08:00
CallMeR e87732ed00 优化软件包顺序 2026-08-16 18:50:08 +08:00
CallMeR 0d97a04ea9 更新虚拟机创建截图 2026-08-16 18:03:17 +08:00
CallMeR 517def1376 移除 PVE 服务器定时重启内容 2026-08-15 10:22:05 +08:00
CallMeR a0a3a02a18 更新文案描述 2026-08-14 23:38:13 +08:00
CallMeR 2fadc58a84 更新 Cronie 定时任务配置方法 2026-08-14 23:35:07 +08:00
CallMeR 9beb1fba6a 更新文案描述 2026-08-14 17:48:54 +08:00
CallMeR abccbcad01 更新文案描述 2026-08-14 17:42:30 +08:00
CallMeR a7bf1b06eb 调整文案描述 2026-08-14 15:21:54 +08:00
CallMeR e6aab0f222 修复 tee 命令兼容性问题,并优化 Dnsmasq 配置 2026-08-14 14:43:08 +08:00
CallMeR fcc5c2b019 优化 PVE Ceph 软件源配置脚本 2026-08-14 01:20:39 +08:00
CallMeR e37d437f0f 更新配置文件创建方法 2026-08-14 00:55:51 +08:00
CallMeR 14595919e4 更新自建系统服务描述 2026-08-13 22:49:13 +08:00
CallMeR 88e6f8b867 优化服务创建命令 2026-08-13 19:00:02 +08:00
CallMeR 079898b167 脚本重命名 2026-08-13 16:17:15 +08:00
CallMeR 345001bb14 更新系统组件 2026-08-13 15:51:38 +08:00
CallMeR 12b5a4aec4 更新脚本名称 & 备注信息 2026-08-11 22:37:07 +08:00
CallMeR a41bd56bc3 更新截图 2026-08-10 11:53:24 +08:00
CallMeR f8cc6a7689 更新文案描述 2026-08-10 11:39:07 +08:00
CallMeR 966660a77f 更新文案描述 2026-08-10 11:38:49 +08:00
CallMeR 7ebf3c80c8 更新截图 2026-08-10 01:01:59 +08:00
CallMeR fbd1e44d11 更新截图 2026-08-10 00:16:31 +08:00
CallMeR f991ec8525 更新文案描述 2026-08-09 02:47:40 +08:00
CallMeR 996959f740 更新系统配置 2026-08-07 17:33:47 +08:00
CallMeR ed7f9c5fc9 精简 TS 防火墙配置 2026-08-04 17:31:19 +08:00
CallMeR 730225be93 更新 SmartDNS 配置 2026-07-31 00:56:53 +08:00
CallMeR e29dc62978 修订 SmartDNS 更新命令 2026-07-27 01:08:26 +08:00
CallMeR 13b46590d0 修订 SmartDNS 配置命令 2026-07-27 01:05:01 +08:00
CallMeR 1984f7689e 精简 SmartDNS 配置 2026-07-27 00:45:41 +08:00
CallMeR 698969cadb 更新虚拟机设置和截图 2026-07-26 19:17:14 +08:00
CallMeR 47ebcd6628 修复 omz 清理命令 2026-07-13 12:38:18 +08:00
CallMeR 190342575e omz 使用官方镜像 2026-07-11 12:29:54 +08:00
CallMeR 68dcf6ab21 简化 TS 安装步骤 2026-07-05 23:07:05 +08:00
CallMeR 0a926f1bae 更新 sysctl 参数 2026-07-05 01:54:21 +08:00
CallMeR 5ce44529bb 更新 SmartDNS 版本 2026-07-02 17:36:21 +08:00
CallMeR 67378607b3 更新 SmartDNS 版本 2026-06-07 14:53:50 +08:00
CallMeR df1b4e8907 更新图片 2026-05-25 23:48:53 +08:00
CallMeR 3989c31582 更新 SmartDNS 版本 2026-05-21 00:25:30 +08:00
CallMeR f5d82f7435 更新 dnsmasq 配置:no-round-robin 2026-02-08 04:26:52 +08:00
CallMeR 1794aa74fa 更新文案描述 2025-12-27 19:08:37 +08:00
CallMeR fce332798e 更新磁盘扩容命令 2025-12-27 19:03:52 +08:00
CallMeR 4a77288f57 更新磁盘扩容命令 2025-12-27 18:55:24 +08:00
CallMeR 4ddcd01688 更新 SmartDNS 配置 2025-12-09 23:38:36 +08:00
CallMeR ea2221c54c 更新 SmartDNS 配置 2025-12-09 17:21:27 +08:00
CallMeR b9473852b9 更新截图 2025-12-08 11:47:23 +08:00
CallMeR 8b8fc3e773 修复格式问题 2025-12-05 14:33:35 +08:00
CallMeR d2203618af 更新文案描述 2025-12-05 12:13:34 +08:00
CallMeR 96a23ad48f 优化文案描述 & 新增 TS UDP 优化 2025-12-04 18:22:56 +08:00
CallMeR 9f6a2fe42d 更新 sysctl 参数 2025-12-01 13:49:52 +08:00
CallMeR 55a391f95d 修正网卡名称 2025-11-29 20:29:26 +08:00
CallMeR 68ae3b55eb 更新截图 2025-11-29 20:25:03 +08:00
CallMeR edcefa98b3 更新截图 2025-11-29 18:41:05 +08:00
CallMeR 96356ac5d1 更新 SmartDNS 配置 2025-11-23 17:42:18 +08:00
CallMeR e0ccdbd5db PVE 9.1 更新 2025-11-20 12:49:49 +08:00
CallMeR 0b4d71977f 更新 SmartDNS 配置 2025-11-19 14:33:40 +08:00
CallMeR 93ffd7b960 新增 SmartDNS 更新命令 2025-11-10 12:25:16 +08:00
CallMeR bf387d1584 更新 SmartDNS 版本 2025-11-09 15:41:56 +08:00
CallMeR ae92d79d83 新增重置 machine-id 命令 2025-11-02 22:38:55 +08:00
CallMeR 44a1ee787c 改进虚拟机使用 EFI 模式引导 2025-10-24 16:24:29 +08:00
CallMeR 578d953950 增加 360 DoH 以提高可用性 2025-10-02 16:50:23 +08:00
CallMeR 792ce9e9e0 PVE 增加 kdig 工具 2025-09-23 11:49:46 +08:00
CallMeR df3cf10287 简化 SmartDNS 配置 2025-09-23 11:12:06 +08:00
CallMeR 63316af2d6 优化配置说明 2025-09-19 12:05:28 +08:00
CallMeR 77a41c719a SmartDNS Release 47 2025-09-19 05:04:38 +08:00
CallMeR 5efe450d78 更新 Dnsmasq 参数注意事项 2025-09-07 11:41:07 +08:00
CallMeR 2131e6ae58 修复参数一致性 2025-09-05 03:53:21 +08:00
CallMeR aefb7ceb00 更新截图 2025-08-29 12:19:33 +08:00
CallMeR c6ebb95ed3 优化 SmartDNS 插件脚本兼容性 2025-08-28 13:18:04 +08:00
CallMeR 4aaa101400 更新 SmartDNS 插件脚本 2025-08-28 12:21:07 +08:00
CallMeR 85c2d70b81 更新脚本存放路径 2025-08-28 09:59:15 +08:00
CallMeR ade7a53cad 优化部分文案 2025-08-27 23:18:26 +08:00
CallMeR c1812b2a45 修复 PVE 手动设置 IPv6 地址 2025-08-27 19:38:12 +08:00
CallMeR c9aa60ecfd 修复安全启动描述 2025-08-27 19:20:03 +08:00
CallMeR d912edeb89 优化部分文案 2025-08-27 19:16:19 +08:00
CallMeR 115cbb68fc 优化部分文案 2025-08-27 19:06:56 +08:00
CallMeR 9082083465 优化部分文案 2025-08-27 18:44:31 +08:00
CallMeR 3921329fe2 更新截图 2025-08-27 18:05:50 +08:00
CallMeR 31be875c67 更新示例输出 2025-08-27 15:38:33 +08:00
CallMeR 626dca3fd9 更新截图 2025-08-27 14:37:33 +08:00
CallMeR 1ad903bf10 更新截图 2025-08-27 13:29:45 +08:00
CallMeR c7c5270356 适配 trixie 版本 2025-08-18 12:33:52 +08:00
CallMeR d4f8fe6b52 适配 trixie 版本 2025-08-17 15:58:39 +08:00
CallMeR 9013217734 更新备注 2025-08-15 18:10:51 +08:00
CallMeR 9995008d1d 修复遗漏的命令提示符标记 2025-08-15 17:28:55 +08:00
CallMeR 63c299f206 更新示例输出 2025-08-12 17:32:17 +08:00
CallMeR 6f19505b83 更新示例输出 2025-08-12 17:29:55 +08:00
CallMeR 53221483fd 更新示例输出 2025-08-12 17:15:54 +08:00
CallMeR b0ede429fc 适配 trixie 版本 2025-08-12 02:40:53 +08:00
CallMeR c1446daf89 适配 trixie 版本 2025-08-11 13:12:21 +08:00
CallMeR 5b80990bd5 更新网络结构图 2025-08-11 12:51:21 +08:00
CallMeR 117020b8b4 适配 trixie 版本 2025-08-11 12:45:21 +08:00
CallMeR d49c98b6df 更新 PVE 软件安装描述 2025-08-11 01:31:32 +08:00
CallMeR 264bb156ff 更新 PVE 软件源配置方法 2025-08-11 01:19:06 +08:00
CallMeR 07efdcb28f 开始 PVE 9.0 系列 2025-08-06 00:41:56 +08:00
CallMeR fb78eec84e 精简 Dnsmasq 参数 2025-06-12 01:42:08 +08:00
CallMeR f5e85ddbc2 精简 Dnsmasq 参数 2025-05-27 01:44:54 +08:00
CallMeR 97ffd13089 更新 TS 防火墙 2025-05-20 22:46:34 +08:00
CallMeR 8f08c4af81 更新 TS 服务器配置 2025-05-20 00:18:27 +08:00
CallMeR 1edfd2c06f 更新 TS 服务器 qdisc 参数 2025-04-28 23:34:33 +08:00
CallMeR fc27f25f94 更新 TS 服务器 sysctl 参数 2025-04-26 23:31:18 +08:00
CallMeR 5f8f9603dc 精简 DNS 服务器 sysctl 参数 2025-04-26 11:26:37 +08:00
CallMeR c768194983 精简 SmartDNS 配置 2025-04-18 16:13:37 +08:00
CallMeR 509e328c03 更新 TS 防火墙 2025-04-18 09:57:03 +08:00
CallMeR 1dd2c5ae24 更新 sysctl 参数 2025-04-17 15:17:49 +08:00
CallMeR ea74679b4a 更新防火墙备注 2025-04-16 18:07:10 +08:00
CallMeR 8a6bdbe207 更新 TS 防火墙 2025-04-16 17:46:22 +08:00
CallMeR 7c6c92d7ed 更新 TS 防火墙配置 2025-04-16 17:03:38 +08:00
CallMeR 01f00f4bc7 更新 TS 防火墙配置 2025-04-16 14:08:04 +08:00
CallMeR 6d5693a73a 更新防火墙流表设置 2025-04-16 01:03:48 +08:00
CallMeR a0c8b88bab Revert 更新 TS 防火墙配置 2025-04-15 23:56:33 +08:00
CallMeR 1fe6812f30 更新 TS 防火墙配置 2025-04-15 23:20:36 +08:00
CallMeR 19f5d89152 更新 TS 防火墙配置 2025-04-15 17:29:38 +08:00
CallMeR 5e228452ec 更新 SmartDNS 参数 2025-04-03 17:31:56 +08:00
CallMeR 1e52d61178 更新文案描述 2025-03-28 23:31:32 +08:00
CallMeR d425c1275b 更新 sysctl 生效命令 2025-03-28 22:29:53 +08:00
CallMeR b129dd215d 更新 SmartDNS 参数 2025-03-28 15:52:58 +08:00
CallMeR 613c562c1c 更新软件包描述 2025-03-17 02:56:59 +08:00
CallMeR 184508f0fd 调整 Bing 搜索链接 2025-03-16 23:42:50 +08:00
CallMeR 2b24267c0c 调整 Bing 搜索链接 2025-03-16 23:29:57 +08:00
CallMeR b5a44c52b2 更新软件包描述 2025-03-16 22:51:48 +08:00
CallMeR 1606e0c74b 更新系统 sysctl 参数 2025-03-14 14:38:27 +08:00
CallMeR 5293258eb8 更新 DNS 拦截列表 2025-03-06 00:58:04 +08:00
CallMeR 1c88c7327f 更新 SmartDNS 版本 2025-03-04 01:56:52 +08:00
CallMeR b3fb776f91 跟进 neodevhost 列表上游修改 2025-03-02 00:34:24 +08:00
CallMeR c69fedc984 更新截图 2025-02-02 21:58:17 +08:00
CallMeR 1915273f81 更新截图 2025-02-02 21:34:44 +08:00
CallMeR 8a72ccebbe 更新截图 2025-02-02 21:19:19 +08:00
CallMeR 4600694a36 更新截图 2025-02-02 21:02:06 +08:00
CallMeR fad611823f 更新上游 DNS 2025-02-01 02:16:40 +08:00
CallMeR f13d108c7b 更新文案描述 2025-01-24 23:08:13 +08:00
CallMeR cb205dda2f 更新文案描述 2025-01-20 18:55:03 +08:00
CallMeR d613ea63a1 更新截图 2025-01-20 18:22:16 +08:00
CallMeR 664bf13a20 更新截图 2025-01-20 17:56:45 +08:00
CallMeR ccd3942725 调整部分时间相关参数 2025-01-18 09:26:33 +08:00
CallMeR 573468ca94 调整 Nftables MTU Fixing 2025-01-17 01:34:54 +08:00
CallMeR 2c22ba9212 更新 TS 服务器参数 2025-01-16 17:57:50 +08:00
CallMeR c1c6282713 更新系统软件 2025-01-16 13:08:52 +08:00
CallMeR 8cca306890 调整 Nftables Offload 2025-01-15 21:38:01 +08:00
CallMeR 6b49519190 精简 SYSCTL 参数 2025-01-15 18:21:03 +08:00
CallMeR 688d6e0809 精简 SYSCTL 参数 2025-01-15 17:45:48 +08:00
CallMeR ad51e789de 调整 Nftables Offload 2025-01-15 15:00:05 +08:00
CallMeR 0a7fda4e15 更新 Dnsmasq 参数 2025-01-14 15:25:36 +08:00
CallMeR 100c012314 更新系统软件 2025-01-14 14:55:13 +08:00
CallMeR 945b25304d 简化 oh-my-zsh 安装 2025-01-14 10:42:58 +08:00
CallMeR 82066a8a21 更新备注 2025-01-13 18:02:25 +08:00
CallMeR f8b3bfd75e 更新备注 2025-01-13 17:56:11 +08:00
CallMeR 36d4809b37 调整 Dnsmasq 参数 2025-01-13 16:18:32 +08:00
CallMeR b7e6978342 更新文案描述 2025-01-13 15:39:58 +08:00
CallMeR 03ee8135c8 Fix newline ( 2025-01-08 22:28:27 +08:00
CallMeR 1ce40c7a36 更新内核参数 2025-01-08 22:13:00 +08:00
CallMeR 8d2f3e98de 调整域名顺序 2025-01-08 17:57:25 +08:00
CallMeR c3e0205fdf 调整 SmartDNS 内网域名策略 2025-01-08 17:51:51 +08:00
CallMeR a606d3f6e4 调整 Dnsmasq 内网域名策略 2025-01-08 17:46:19 +08:00
CallMeR 42e0359d03 更新内核参数 2025-01-08 12:09:16 +08:00
CallMeR 0377b500b6 跟进 ICANN | SAC113 调整内网域名 2025-01-07 22:34:03 +08:00
CallMeR 90c7adc62d 精简 TS 防火墙 2025-01-07 13:25:40 +08:00
CallMeR 17c0a3f87d 优化文案描述 2025-01-06 23:48:33 +08:00
CallMeR 3143d46834 更新文案描述 2025-01-06 23:37:32 +08:00
CallMeR 4dda73f087 更新文案描述 2025-01-06 23:29:04 +08:00
CallMeR 45bcf699d9 更新文案描述 2025-01-06 23:18:07 +08:00
CallMeR d153773b1f 更新清理目录 2025-01-06 18:09:39 +08:00
CallMeR 7d8da1f68e 更新清理命令 2025-01-06 18:01:14 +08:00
CallMeR 641aa555b9 更新清理命令 2025-01-06 17:54:23 +08:00
CallMeR 34e55b8daa 更新文案描述 2025-01-06 17:25:31 +08:00
CallMeR 777e4bb9d7 更新清理命令 2025-01-06 17:23:57 +08:00
CallMeR 7dceb23655 更新清理命令 2025-01-06 17:19:22 +08:00
CallMeR 81c5c3456a 整理文档结构 2025-01-06 17:11:27 +08:00
CallMeR 0731dd1fde 更新 Dnsmasq 参数 2025-01-06 02:12:11 +08:00
CallMeR 7e62ab3012 更新 TS 防火墙 2024-12-29 22:52:52 +08:00
CallMeR 14022aebbf 更新 TS 防火墙 2024-12-29 01:51:28 +08:00
CallMeR 8738625ad9 更新文案描述 2024-12-26 13:22:46 +08:00
CallMeR 51a6d0005d 更新文案描述 2024-12-26 13:20:10 +08:00
CallMeR f3a4231218 调整 TS 服务器 Dnsmasq 配置 2024-12-26 12:42:03 +08:00
CallMeR 422384497c 修复描述错误 2024-12-03 13:41:33 +08:00
CallMeR 8c26dd2569 更新广告列表 2024-11-26 12:50:51 +08:00
CallMeR ae963404b7 更新广告列表 2024-11-24 22:16:03 +08:00
CallMeR 96f89812de 更新版本号 2024-11-24 17:28:13 +08:00
CallMeR 968d0637dd 更新截图版本 2024-11-24 17:23:44 +08:00
CallMeR 1166516576 更新 DNS sysctl 参数 2024-11-02 15:37:49 +08:00
CallMeR f664975bcc 更新 DNS sysctl 参数 2024-10-29 14:01:39 +08:00
CallMeR 26fa0b0c10 修复描述错误,Fix: https://gitee.com/callmer/routeros_toss_notes/issues/IB0HER 2024-10-29 13:26:00 +08:00
CallMeR ac2740f888 更新系统 sysctl 参数 2024-10-28 00:32:12 +08:00
CallMeR aa1a12757b 更新系统 sysctl 参数 2024-10-24 18:23:26 +08:00
CallMeR ccef3195ff 更新系统 sysctl 参数 2024-10-23 10:12:01 +08:00
CallMeR dd3bda21f5 更新系统 sysctl 参数 2024-10-22 15:28:58 +08:00
CallMeR 547389c182 更新系统 sysctl 参数 2024-10-22 14:18:09 +08:00
CallMeR ace58ce24d 更新 TS 服务器流控算法 2024-10-21 23:30:53 +08:00
CallMeR adaeb4a650 新增 BTRFS 调整内容 2024-10-19 02:26:04 +08:00
CallMeR fa29b0d633 更新系统 sysctl 参数 2024-10-17 12:57:46 +08:00
CallMeR 94273ae2b6 RFC 9460
Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)
2024-10-14 17:53:10 +08:00
CallMeR 2d32561415 更新 SmartDNS 过期缓存 2024-10-13 17:06:50 +08:00
CallMeR 0dcfa86d11 更新 SmartDNS 加速脚本 2024-10-13 16:32:44 +08:00
CallMeR 557ae16217 更新清理缓存命令 2024-10-09 23:43:17 +08:00
CallMeR 49083bf184 更新 SmartDNS 清理缓存 2024-10-08 23:48:01 +08:00
CallMeR 9634a10686 更新清理命令 2024-10-08 23:30:52 +08:00
CallMeR 6f7c78b749 更新清理命令 2024-10-08 23:16:46 +08:00
CallMeR 04fc40c8e1 更新清理命令 2024-10-08 23:08:24 +08:00
CallMeR 05ba8586ae 更新 SmartDNS 参数 2024-10-08 22:56:27 +08:00
CallMeR e8cb9b14f4 更新示例输出 2024-10-07 18:08:24 +08:00
CallMeR 7b794c11e4 更新 NTP 服务器 2024-10-07 18:04:33 +08:00
CallMeR d4673a204a 更新实例输出 2024-10-07 18:00:03 +08:00
CallMeR 95913b4d0d 更新 NTP 服务器 2024-10-07 17:52:02 +08:00
CallMeR 964fc699e3 Revert 更新 SmartDNS 参数 2024-10-05 17:44:11 +08:00
CallMeR b3b147ab37 更新 SmartDNS 广告列表 2024-09-27 23:05:48 +08:00
CallMeR cdcc71462b 更新 SmartDNS 参数 2024-09-27 16:05:05 +08:00
CallMeR 999a06f938 更新 Nftables 规则 2024-09-27 14:30:48 +08:00
CallMeR 4bf1e1d523 更新 Nftables 规则 2024-09-27 14:01:18 +08:00
CallMeR ddc60fd6f1 更换 SmartDNS 广告列表 2024-09-19 15:44:11 +08:00
CallMeR c94872a931 更新 SmartDNS 缓存参数 2024-09-15 12:20:03 +08:00
CallMeR d09bd30a25 更新上游 DNS 2024-09-05 13:55:10 +08:00
CallMeR cc5ec05502 更新 SmartDNS 上游 DNS 2024-09-03 13:59:54 +08:00
CallMeR e0894f3e13 更新 PVE 版本 2024-08-24 19:44:32 +08:00
CallMeR 360d5b6cab 更新 DNS 缓存参数 2024-08-24 03:23:26 +08:00
CallMeR 8d2cab7155 更新备注 2024-08-17 22:37:05 +08:00
CallMeR afb5a5859c 更新 Dnsmasq 配置 2024-08-15 19:07:27 +08:00
CallMeR 53c3fe877a 更新 SmartDNS 上游 DoT / DoH 服务器 2024-08-14 21:40:22 +08:00
CallMeR 835cbf9b43 更新上游 DNS 服务器 2024-08-07 22:52:54 +08:00
CallMeR 1b97935413 更新 SmartDNS 插件 2024-08-07 13:30:38 +08:00
CallMeR fc67f6f575 更新 SmartDNS 上游 DNS 2024-08-07 13:22:22 +08:00
CallMeR bc5ea890ad 更新 Dnsmasq 参数 2024-08-02 20:14:17 +08:00
CallMeR fefcd16f82 更新 SmartDNS 参数 2024-08-02 20:10:24 +08:00
CallMeR 10050fa7ff 更新 SmartDNS Plugin 2024-08-02 10:46:49 +08:00
CallMeR 20086c63f7 调整 Dnsmasq 配置 2024-08-02 10:29:56 +08:00
CallMeR 619b96a6fc 调整 SmartDNS 参数 2024-08-02 00:37:42 +08:00
CallMeR 4fbb729d85 关闭 SmartDNS 过期缓存并调整响应 TTL 2024-07-29 01:13:05 +08:00
CallMeR 78fd87188c 停用 Dnsmasq 的 negative 缓存 2024-07-27 11:23:48 +08:00
CallMeR 8a737cfb34 优化 SmartDNS 配置 2024-07-24 23:31:45 +08:00
CallMeR fcfd177593 移除 SmartDNS EDNS 参数 2024-07-24 21:53:31 +08:00
CallMeR 1336af517e 更新 DNS 服务器流控算法 2024-07-22 17:12:01 +08:00
CallMeR b0beb5177f 更新 DNS 服务器流控算法 2024-07-19 12:37:05 +08:00
CallMeR 921bd8bb31 更新 TS 服务器流控算法 2024-07-19 12:35:08 +08:00
CallMeR ff1a1a43a7 更新截图 2024-07-02 15:23:20 +08:00
CallMeR 9a9173df92 更新系统更新命令 2024-07-02 11:01:58 +08:00
CallMeR e9ca2b5cda 更新备注信息 2024-06-28 15:33:05 +08:00
CallMeR 0695f8b6b9 Revert 替换广告屏蔽列表 2024-06-28 12:31:22 +08:00
CallMeR 1657411b7e 更新备注信息 2024-06-28 00:14:16 +08:00
CallMeR 14007e78b8 替换广告屏蔽列表 2024-06-27 16:56:10 +08:00
CallMeR 7318726847 修复段落标题 2024-06-26 15:05:08 +08:00
CallMeR 374c55cbb3 修复目录路径 2024-06-26 15:03:00 +08:00
CallMeR 7df6ea76b7 更新文案描述 2024-06-26 14:55:57 +08:00
CallMeR 5e0a8aac54 更新文案描述 2024-06-26 14:53:35 +08:00
CallMeR 8dd1f08f27 更新终端工具 2024-06-26 14:43:59 +08:00
CallMeR 9873dd74d1 更新 SmartDNS 版本 2024-06-13 11:29:38 +08:00
CallMeR ffaa26a050 更新配置文件备注 2024-05-23 02:12:07 +08:00
CallMeR b17ef026ad 更新文案描述 2024-05-21 12:50:30 +08:00
CallMeR 808094ae3c 更新脚本文件命名 2024-05-20 22:17:58 +08:00
CallMeR 609fcf579b 更新配置文件命名 2024-05-20 21:32:38 +08:00
CallMeR 022da7d3f9 更新配置文件命名 2024-05-20 16:18:29 +08:00
CallMeR afb2678f68 使用 btop 代替 htop 2024-05-16 13:21:15 +08:00
CallMeR 4ed96a4d38 更新文案说明 2024-04-28 12:09:53 +08:00
CallMeR f7ff85a805 更新 PVE 版本号 2024-04-26 13:50:02 +08:00
CallMeR 101fc96feb 更新自动备份截图 2024-04-26 13:48:52 +08:00
CallMeR 01f39562ff 新增 sshguard 工具 2024-04-26 12:36:28 +08:00
CallMeR 933bdca053 更新部分截图 2024-04-26 11:56:14 +08:00
CallMeR 748faac28b 更换 SmartDNS 广告列表 2024-04-23 13:28:57 +08:00
CallMeR fe8fbff04c 更新 Dnsmasq 缓存设置 2024-04-23 10:39:00 +08:00
CallMeR 50f49ed956 更新 SmartDNS 缓存设置 2024-04-23 10:36:39 +08:00
CallMeR b809ecd035 更新 PVE 软件源替换命令 2024-04-21 21:12:55 +08:00
CallMeR eda1d36130 更新 Dnsmasq 配置 2024-03-21 10:52:33 +08:00
CallMeR c9bf9ae2fd 更新 Dnsmasq 配置 2024-03-20 22:41:13 +08:00
CallMeR 38ac1f9702 更新 Dnsmasq 配置 2024-03-19 18:36:36 +08:00
CallMeR f493c774ab 更新 SmartDNS 配置 2024-03-19 12:06:18 +08:00
CallMeR 09a35e9c31 关闭 Dnsmasq 缓存 2024-03-19 10:13:17 +08:00
CallMeR a1e992c956 更新 SmartDNS 配置 2024-03-19 10:04:27 +08:00
CallMeR 360542f9d4 更新 Dnsmasq 参数 2024-03-18 21:45:12 +08:00
CallMeR e5a8d8b491 更新截图 2024-03-18 14:14:47 +08:00
CallMeR 3ce5fdba6a 更新截图 2024-03-18 14:09:10 +08:00
CallMeR 5ec78ce639 更新 Debian 云镜像 2024-03-18 13:50:30 +08:00
CallMeR b597af908d 更新 SmartDNS 缓存参数 2024-03-16 13:34:26 +08:00
CallMeR 6f085030b3 更新 Dnsmasq 缓存参数 2024-03-16 13:25:07 +08:00
CallMeR 82497488ed 更新 TS 自动更新 2024-03-01 20:26:31 +08:00
CallMeR ee7b34ddf4 更新 SmartDNS 配置 2024-02-20 02:08:33 +08:00
CallMeR 353dc12fca 更新文案描述 2024-02-14 01:54:23 +08:00
CallMeR a410d925f4 更新清理命令 2024-02-13 22:35:06 +08:00
CallMeR 2c48e3a330 优化 ls 命令 2024-02-11 02:11:06 +08:00
CallMeR 2344cd77bf 更新 SmartDNS 参数 2024-02-11 01:55:18 +08:00
CallMeR aba1e70956 更新 SmartDNS 参数 2024-02-11 01:39:02 +08:00
CallMeR bbcbc9fe1e 更新 Dnsmasq 参数 2024-02-09 00:36:35 +08:00
CallMeR 5bce9e1d44 SmartDNS 配置重命名 2024-02-09 00:29:47 +08:00
CallMeR 80f7041632 更新 SmartDNS 参数 2024-02-09 00:27:03 +08:00
CallMeR ffcae17092 更新 SmartDNS 版本 2024-02-09 00:04:29 +08:00
CallMeR 0bd3a7cd36 整合清理命令 2024-01-30 18:17:58 +08:00
CallMeR eddc39bc40 修复 typo 2024-01-30 18:14:52 +08:00
CallMeR 564d56e56f 更新流表语法 2024-01-20 21:52:47 +08:00
CallMeR 80556cacaf 更新流表语法 2024-01-20 19:27:06 +08:00
CallMeR 2c8d775e9e 更新 README 2024-01-17 14:02:25 +08:00
CallMeR 19532baa21 更新 README 2024-01-17 13:59:58 +08:00
CallMeR 2ff27e96c3 默认不启用 IPv6 ULA 网络 2024-01-17 13:54:39 +08:00
CallMeR 979f03052e 修复 typo 2024-01-17 13:22:45 +08:00
CallMeR 3a7a506645 更新文案描述 2024-01-10 16:16:56 +08:00
CallMeR 62c55d9750 调整 Dnsmasq 配置 2024-01-10 15:13:49 +08:00
CallMeR 101b5c64b2 整理文档 2024-01-10 15:05:59 +08:00
CallMeR 497a8c0685 更新 Dnsmasq 配置 2024-01-10 14:46:26 +08:00
CallMeR 00e4fd27e5 调整 Dnsmasq 配置 2024-01-10 14:29:51 +08:00
CallMeR 85d5a3bee5 更新文案描述 2024-01-08 22:31:32 +08:00
CallMeR 2ae4bda8b3 调整 Dnsmasq 格式 2024-01-08 21:55:32 +08:00
CallMeR 12cadb86ad 更新说明 2024-01-08 21:46:38 +08:00
CallMeR 3c9927a362 关闭 TS 服务器 Dnsmasq 的 DNS 缓存 2024-01-08 21:40:23 +08:00
CallMeR d69101077b 更新 offload 匹配 2024-01-07 12:03:45 +08:00
CallMeR 6497efb00a 同步上游更新 2024-01-06 14:59:35 +08:00
CallMeR 79703f9d62 修改 systemd 服务路径 2024-01-05 21:46:56 +08:00
CallMeR 53994238c8 更新文案描述 2024-01-05 21:34:30 +08:00
CallMeR ddcdc18564 修复 Typo 2024-01-01 17:33:04 +08:00
CallMeR f505690ed6 更新文档 2024-01-01 16:29:11 +08:00
CallMeR 96cb5ddcdc 更新文档 2024-01-01 16:19:33 +08:00
CallMeR 2858ba97c4 更新文档 2024-01-01 14:07:06 +08:00
CallMeR 833817d85c 更新文档 2024-01-01 13:54:16 +08:00
CallMeR 7097fb5d73 更新文档 2024-01-01 13:49:38 +08:00
CallMeR 52f3be600b 更新文档 2024-01-01 13:36:04 +08:00
CallMeR 0a9a2ee8fe 更新文档 2024-01-01 13:13:36 +08:00
CallMeR ed3c106e27 更新文档 2024-01-01 13:10:07 +08:00
CallMeR c94d7d31fc 更新文档 2024-01-01 13:00:00 +08:00
CallMeR abf168587d 更新文档 2024-01-01 12:49:36 +08:00
CallMeR 3e9a8eae07 更新文档 2024-01-01 12:02:06 +08:00
CallMeR 090ab28970 整理文档 2023-12-31 22:07:01 +08:00
CallMeR 59ebf178c7 整理文档 2023-12-31 21:09:03 +08:00
CallMeR 249717ed89 更新 TS 测试配置 2023-12-30 22:16:07 +08:00
CallMeR 2520ce4839 更新 nf_conntrack 参数 2023-12-24 01:50:16 +08:00
CallMeR 5d5750f120 更新定时参数 2023-12-21 22:09:33 +08:00
CallMeR f90dd7a7c8 更新 resolv.conf 配置 2023-12-16 23:52:08 +08:00
CallMeR 730773e42b 更新 resolv 配置方法 2023-12-16 16:40:20 +08:00
CallMeR c00e178df3 新增 OVS 工具 2023-12-15 02:25:23 +08:00
CallMeR f8c7676c85 精简非相关配置 2023-12-14 11:32:51 +08:00
CallMeR 29592abb40 更换 SmartDNS 广告规则 2023-12-14 11:30:39 +08:00
CallMeR 62b2641413 更新命令备注 2023-12-14 00:29:13 +08:00
CallMeR 04023ac155 优化文案描述 2023-12-14 00:22:21 +08:00
CallMeR 4dcb3ff7a9 优化文案描述 2023-12-13 23:30:01 +08:00
CallMeR ca30a2f9e9 优化文案描述 2023-12-13 23:14:33 +08:00
CallMeR 88ea495d5a 优化文案描述 2023-12-13 23:12:03 +08:00
CallMeR d08a3acf74 优化文案描述 2023-12-13 20:59:27 +08:00
CallMeR d26f303437 优化文案描述 2023-12-13 20:51:04 +08:00
CallMeR ed0db21a9f 优化文案描述 2023-12-13 20:19:45 +08:00
CallMeR 18e02bc9c8 优化文案描述 2023-12-13 19:59:29 +08:00
CallMeR 6882b01afc 更新文件名 2023-12-13 16:55:19 +08:00
CallMeR fec6ae3e56 更新脚本 2023-12-13 14:45:57 +08:00
CallMeR 660551f2fc 更新 curl 参数 2023-12-12 21:32:02 +08:00
CallMeR 80afa7dfe7 更新 SmartDNS 下载链接 2023-12-12 20:05:34 +08:00
CallMeR 509b344c69 更新 systemd-resolved 配置 2023-12-11 13:22:00 +08:00
CallMeR 3b3a3361fa 更新 curl 参数 2023-12-11 09:47:01 +08:00
CallMeR fba7575503 更新 curl 参数 2023-12-11 02:55:16 +08:00
CallMeR 4d77f0415e 更新 curl 参数 2023-12-11 02:27:42 +08:00
CallMeR 8b35afeec5 修复 curl 命令 2023-12-11 01:12:27 +08:00
CallMeR e0c69c3fa5 统一 crontab 时间 2023-12-10 23:32:46 +08:00
CallMeR 410f6e8d2e 替换 wget 命令 2023-12-10 22:55:40 +08:00
CallMeR 56d9125152 替换 wget 命令 2023-12-10 22:47:21 +08:00
CallMeR 779b75f3a8 更新 SmartDNS 定时器 2023-12-10 19:19:46 +08:00
CallMeR b0c7a2d4ce 优化文案描述 2023-12-10 18:39:15 +08:00
CallMeR b84dbe3872 优化文案描述 2023-12-10 18:31:43 +08:00
CallMeR 1555ec02ca 更新 SmartDNS 配置 2023-12-10 18:00:16 +08:00
CallMeR 906db9eac4 更新脚本变量 2023-12-09 21:17:31 +08:00
CallMeR 0d091d93c1 更新脚本变量 2023-12-09 21:10:04 +08:00
CallMeR b347128ec5 更新脚本变量 2023-12-09 20:58:20 +08:00
CallMeR 1e5a55de64 更新说明信息 2023-12-09 15:22:57 +08:00
CallMeR d052923897 更新文件名 2023-12-09 01:32:16 +08:00
CallMeR ba0afba7eb 更新 SmartDNS 插件脚本 2023-12-08 23:49:03 +08:00
CallMeR 6aa24ecb61 更新 SmartDNS 插件脚本 2023-12-08 23:42:25 +08:00
CallMeR 454ae86aba 更新 SmartDNS 配置 2023-12-08 13:03:17 +08:00
CallMeR 24b087aa1e 更新 SmartDNS 默认端口 2023-12-02 12:22:57 +08:00
CallMeR 56317210a6 更新 lsof 参数 2023-12-02 01:11:16 +08:00
CallMeR d8e7753112 更新 TS 测试配置 2023-12-02 00:44:34 +08:00
CallMeR 4700bc1c52 更新截图 2023-12-01 23:47:29 +08:00
CallMeR 29f6296a1c 更新 TS 测试配置 2023-12-01 18:54:38 +08:00
CallMeR 891d8ef2f6 更新 TS 测试配置 2023-12-01 13:47:44 +08:00
CallMeR e4117816c5 更新 TS 测试配置 2023-12-01 13:30:52 +08:00
CallMeR b109b0d840 更新 TS 测试配置 2023-12-01 00:40:19 +08:00
CallMeR 8bc4dd8587 更新 dnsmasq 配置 2023-11-30 23:20:51 +08:00
CallMeR eef810d850 更新截图 2023-11-30 17:41:18 +08:00
CallMeR 752c233013 更新安装截图 2023-11-30 15:29:44 +08:00
CallMeR 8b62f62420 更新模板虚拟机配置 2023-11-30 12:47:45 +08:00
CallMeR 46d0e0ce4a 更新截图 2023-11-30 12:21:27 +08:00
CallMeR f643128cf5 更新截图 2023-11-30 10:48:20 +08:00
CallMeR 165f6ea9dc 更新 TS 防火墙备注 2023-11-29 14:06:15 +08:00
CallMeR 7fc7ab2466 更新 TS 防火墙备注 2023-11-29 14:01:12 +08:00
CallMeR 2407555015 更新 TS 防火墙 2023-11-29 13:48:55 +08:00
CallMeR 5b65602c07 更新 TS 防火墙 2023-11-28 21:59:39 +08:00
CallMeR a2b1278038 更新备注 2023-11-28 21:52:29 +08:00
CallMeR 07d5ea174a 更新 TS 测试配置 2023-11-28 19:01:35 +08:00
CallMeR 554b2bd6d4 整理文件名 2023-11-28 18:35:55 +08:00
CallMeR 145328fb3c 更新 LXC 文案 2023-11-27 18:00:16 +08:00
CallMeR 9691336e5c 更新 LXC 文案 2023-11-27 17:53:56 +08:00
CallMeR f7ce11e99d 更新 LXC 文案 2023-11-27 17:51:16 +08:00
CallMeR eb631a1cdc 更新 LXC 文案 2023-11-27 14:36:30 +08:00
CallMeR 46ce4e4ee3 更新 SmartDNS 配置 2023-11-27 13:24:28 +08:00
CallMeR 0bd03af309 更新文件名 2023-11-27 12:56:34 +08:00
CallMeR 767c31694d 更新文件名 2023-11-27 12:54:07 +08:00
CallMeR b27372c20d 更新虚拟机 DEB822 配置 2023-11-26 20:58:59 +08:00
CallMeR b830088e5e 更新 PVE 版本 2023-11-25 22:24:54 +08:00
CallMeR 9f5884befb 优化 sysctl 配置 2023-11-24 12:07:45 +08:00
CallMeR 8af7ef896b 更新 dnsmasq 配置 2023-11-18 16:37:19 +08:00
CallMeR 09a60d3ae4 Dnsmasq 插件设置 2023-11-13 12:31:57 +08:00
CallMeR 830655bd52 更新定时任务 2023-11-13 12:21:25 +08:00
CallMeR 95023d68d3 回滚 SmartDNS 配置 2023-11-08 11:55:55 +08:00
CallMeR d8e6a50166 更新 dnsmasq 配置 2023-11-08 11:47:01 +08:00
CallMeR e6d805fba5 更新 SmartDNS 配置 2023-11-07 13:47:34 +08:00
CallMeR 9386f961d1 整理文档 2023-10-29 10:28:30 +08:00
CallMeR b84666a6b6 修复备注信息 2023-10-14 23:34:52 +08:00
CallMeR 07526b9ada 修复备注信息 2023-10-14 23:17:07 +08:00
CallMeR e31338113d 修复 cpupower 文案 2023-10-14 22:36:54 +08:00
CallMeR 7eda1b4eef 更新 SmartDNS 缓存参数 2023-10-10 22:10:45 +08:00
CallMeR 3b1a9e4f00 替换 ldnsutils 2023-10-07 01:45:36 +08:00
CallMeR 7288a7ba8b 更新 N6005 CPU 调度器输出 2023-09-15 14:48:52 +08:00
CallMeR 63631e6ad3 优化 CPU 调度器配置 2023-09-13 13:48:05 +08:00
CallMeR 5ed5ac768b 更新系统默认 qdisc 2023-09-10 16:32:42 +08:00
CallMeR ae5b3e1e82 更新本地域名后缀 2023-09-09 19:17:40 +08:00
CallMeR b7857fcd66 更新本地域名后缀 2023-09-09 19:03:26 +08:00
CallMeR 81101cde20 更新本地域名后缀 2023-09-09 18:30:25 +08:00
CallMeR 99e4a94a9f 更新安装截图 2023-09-09 16:45:06 +08:00
CallMeR c4294612eb 更新安装截图 2023-09-09 16:13:54 +08:00
CallMeR 38df9bd3e4 更新本地域名后缀 2023-09-07 22:36:50 +08:00
CallMeR 0019ac0fbc 修复时间参数说明 2023-08-18 14:32:13 +08:00
CallMeR 1b8caefe58 修复时间参数说明 2023-08-18 14:25:41 +08:00
CallMeR 9804c8964e 修复时间参数说明 2023-08-18 14:20:31 +08:00
CallMeR 861e468aa6 修复定时重启时间 2023-08-18 14:15:36 +08:00
CallMeR 90bc8f942b 修复定时重启时间 2023-08-18 14:12:26 +08:00
CallMeR 09f4738295 更新 SmartDNS 版本 2023-08-13 17:05:53 +08:00
CallMeR ea71df8c8c 更新说明信息 2023-08-07 21:35:47 +08:00
CallMeR 1a8c107333 更新 PVE 官网截图 2023-08-07 21:29:53 +08:00
CallMeR c40ba60a6e 更新 PVE 官网截图 2023-08-07 21:26:36 +08:00
CallMeR 9494d82747 更新 PVE 官网截图 2023-08-07 21:22:59 +08:00
CallMeR f89c38f8d8 更新 PVE 官网截图 2023-08-07 21:14:57 +08:00
CallMeR 6a9202a62b 更新示例 2023-08-01 13:39:06 +08:00
CallMeR 8a10db07d1 更新示例 2023-08-01 13:30:56 +08:00
CallMeR 17ab25b998 统一时间规划 2023-07-26 14:57:51 +08:00
CallMeR 17ae656734 更新 SmartDNS 配置 2023-07-25 18:31:52 +08:00
CallMeR b28bb464c1 更新 SmartDNS 配置 2023-07-23 13:39:18 +08:00
CallMeR 0fd5dc83f2 更新 SmartDNS 配置 2023-07-23 03:28:02 +08:00
CallMeR ee64d1e961 更新 SmartDNS 描述 2023-07-16 23:55:33 +08:00
CallMeR 636bbfb62b 更新 Adguard Home 描述 2023-07-16 23:49:43 +08:00
CallMeR bb19e4f7dd 更新 SmartDNS 测试配置 2023-07-16 20:14:59 +08:00
CallMeR b8a0db90a3 更新 SmartDNS 测试配置 2023-07-16 04:29:23 +08:00
CallMeR ec7034f2f1 更新代码编辑器 2023-07-16 01:59:58 +08:00
CallMeR 60f0b0940c 更新 SmartDNS 配置 2023-07-16 01:52:45 +08:00
CallMeR a8da3fa115 更新 SmartDNS 配置 2023-07-16 01:48:13 +08:00
CallMeR 37373fbdcd 更新 SmartDNS 配置 2023-07-16 01:34:05 +08:00
CallMeR e96b379620 更新 PVE 制作虚拟机模板 2023-07-16 01:23:04 +08:00
CallMeR 4795c730c9 更新文案描述 2023-07-06 18:05:56 +08:00
CallMeR bf4d22b10b 更新代码编辑器 2023-07-01 21:54:05 +08:00
CallMeR 22806b5657 修复文案描述 2023-06-29 17:45:25 +08:00
CallMeR 9f86e73f61 更新 PVE 虚拟机克隆 2023-06-28 13:04:33 +08:00
CallMeR fdceec75ba 更新 PVE 制作虚拟机模板 2023-06-28 00:30:32 +08:00
CallMeR 182a939f5e 更新 PVE 系统调整 2023-06-28 00:24:19 +08:00
CallMeR b71d013431 更新 PVE 虚拟机克隆 2023-06-28 00:12:07 +08:00
CallMeR e64d6f9b7f 更新 PVE 创建模板虚拟机 2023-06-27 22:32:10 +08:00
156 changed files with 3304 additions and 1445 deletions
+43 -41
View File
@@ -4,17 +4,13 @@ PVE 系统正式安装之前,需要准备 PVE 的安装镜像和一些必要
### 0.1. PVE 镜像下载
PVE 下载地址:https://www.proxmox.com/en/downloads
PVE 下载地址:[Proxmox Virtual Environment](https://www.proxmox.com/en/downloads/proxmox-virtual-environment/iso)
页面中可能有多个 PVE 的安装 ISO ,可以根据需要进行选择,目前最新的 `Proxmox VE 8.0 ISO` 作为演示。
![下载PVE ISO文件](img/p01/pve_download_iso.jpeg)
点击 `Proxmox VE 8.x ISO Installer` 链接。
页面中有多个 PVE 相关文件,本文以目前最新的 `Proxmox VE 9.x ISO Installer` 作为演示。
下载 ISO 时请注意 `SHA256SUM` ,后续将使用该校验信息对下载下来的 ISO 进行校验,以确保 ISO 文件的完整性。
![输入图片说明](img/p01/pve_iso_hash.jpeg)
![PVE下载页面](img/p01/pve_download_iso.jpeg)
### 0.2.启动盘制作工具
@@ -24,11 +20,9 @@ PVE 下载地址:https://www.proxmox.com/en/downloads
官方网站地址:https://www.ventoy.net/cn/index.html
强烈推荐的引导盘制作工具,优点是可以在一个 U 盘中放入复数个可引导 ISO 文件。
其优点在于可在单个 U 盘内存储多个可引导 ISO 文件,省去多次格式化 U 盘并写入 ISO 的操作,使用便捷
免去了多次格式化 U 盘再写入 ISO 文件的操作,非常友好
缺点是只支持 Windows 、Linux 。
缺点是仅支持 Windows 与 Linux 系统,且部分机型可能无法在 UEFI 模式下启用 Secure Boot(安全启动)
![Ventoy写盘工具](img/p01/pve_ventoy.jpeg)
@@ -50,25 +44,31 @@ PVE 下载地址:https://www.proxmox.com/en/downloads
![Rufus写盘工具](img/p01/pve_rufus.jpeg)
### 0.3. SSH 工具
### 0.3.终端工具
考虑到配置 PVE 服务器、路由器DNS 服务器时,需要在 CLI 中输入命令,因此这里推荐几常用的 SSH 工具。
考虑到配置 PVE 服务器、路由器DNS 服务器时在 CLI 中执行命令,以下推荐几常用终端工具。
#### Tabby
#### Windows Terminal
官方网站地址:https://tabby.sh
官方网站地址:https://aka.ms/terminal
基于 Electron 开发的开源跨平台终端工具,内部集成了 SFTP ,可以在 Github 平台上进行下载。
Microsoft 官方终端工具,可以在 Github 平台或 Microsoft 应用商店中进行下载。
支持 Windows 、macOS 、Linux 。
![Windows Terminal](img/p01/pve_win_terminal.png)
![Tabby SSH工具](img/p01/pve_tabby.png)
#### Termius
官方地址:https://termius.com/
企业级终端工具,支持 Windows、macOS、Linux 系统以及移动端系统。
![Termius](img/p01/pve_termius.jpeg)
#### MobaXterm
官方地址:https://mobaxterm.mobatek.net
功能强大的 SSH 工具,仅支持 Windows 。
功能强大的终端工具,仅支持 Windows 系统
![MobaXterm](img/p01/pve_mobaxterm.png)
@@ -78,19 +78,21 @@ PVE 下载地址:https://www.proxmox.com/en/downloads
在设置 BIOS 时需要注意以下几点:
- 建议暂时关闭 **安全启动**
- 确保启用了硬件虚拟化支持
- 确保打开硬件虚拟化支持
- 确保设备来电自动启动
- 对于不支持 `UEFI` 启动的设备,检查 `Legacy` 引导模式
- 确保启用了设备来电自启动
- 检查 CPU 的功耗设置(可选)
- PVE 8.1 及后续版本支持安全启动,详情参考 [PVE - Secure Boot Setup](https://pve.proxmox.com/wiki/Secure_Boot_Setup)
- 若通过 Ventoy 引导安装 PVE 系统,建议参考 [UEFI 模式安全启动操作说明](https://www.ventoy.net/cn/doc_secure.html) 或 **临时关闭** 安全启动
- 对设备安全性有要求时,建议使用 Etcher 工具制作启动 U 盘并直接安装 PVE 系统
### 1.1.设备引导
使用 Ventoy 进行设备引导后出现如下画面,选择 PVE 的安装 ISO 。
使用 Ventoy 进行设备引导后出现如下画面,选择 PVE 的安装 ISO 进行系统引导
![Ventoy引导设备](img/p01/pve_ventoy_boot.jpeg)
@@ -112,23 +114,23 @@ PVE 下载地址:https://www.proxmox.com/en/downloads
使用 `方向键` 选择第一项 `Install Proxmox VE (Graphical)` 图形化安装界面,按键盘 `Enter` 进入下一步骤。
![PVE安装选项](img/p01/pve_option.jpeg)
![PVE安装选项](img/p01/pve_option.jpg)
设备将继续跑码,直到出现最终用户许可协议 EULA ,按键盘组合键 `ALT + N ` 进入下一步骤。
![PVE用户协议](img/p01/pve_eula.jpeg)
![PVE用户协议](img/p01/pve_eula.jpg)
### 1.3. PVE 硬盘选项
此时会出现 `Target Harddisk` 选项,会显示出设备中存在的硬盘列表,可通过下拉框选择安装 PVE 的目标硬盘。
![PVE选择安装硬盘](img/p01/pve_hd_choose.jpeg)
![PVE选择安装硬盘](img/p01/pve_hd_choose.jpg)
点击硬盘列表右侧的 `Options` ,对 PVE 的硬盘安装参数进行一些调整。
推荐将 `Filesystem` 也就是硬盘的文件系统,设置成 `xfs`
![PVE文件系统](img/p01/pve_hd_fs.jpeg)
![PVE文件系统](img/p01/pve_hd_fs.jpg)
### 1.4. PVE 时区选项
@@ -136,7 +138,7 @@ PVE 下载地址:https://www.proxmox.com/en/downloads
`Contry` 处手动输入 `China` ,下方的 `Time zone` 将自动变更为 `Asia/Shanghai`
![PVE时区](img/p01/pve_timezone.jpeg)
![PVE时区](img/p01/pve_timezone.jpg)
### 1.5. PVE 账户与邮箱
@@ -144,7 +146,7 @@ PVE 为最关键的虚拟化层,建议使用强密码,包含大小写字母
`Email` 必须为一个 “合法” 的邮箱地址,不然系统会判定邮箱地址不合法并拒绝继续安装。
![PVE邮箱设置](img/p01/pve_email.jpeg)
![PVE邮箱设置](img/p01/pve_email.jpg)
### 1.6. PVE 网络设置
@@ -152,36 +154,36 @@ PVE 为最关键的虚拟化层,建议使用强密码,包含大小写字母
而某些设备,其物理网口顺序与该页面显示的网口顺序 **不一致** ,因此保持默认设置即可。
![PVE管理网口设置](img/p01/pve_eth.jpeg)
![PVE管理网口设置](img/p01/pve_eth.jpg)
FQDN 为 PVE 的域,PVE 将使用 FQDN 中的二级域名作为其主机名。
演示中 FQDN 为 `node01.fox.local` ,因此 PVE 的主机名为 `node01`
演示中 FQDN 为 `node01.fox.internal` ,因此 PVE 的主机名为 `node01`
根据规划,PVE 的 IPv4 管理地址为 `172.16.1.254`
未来主路由的 IPv4 地址为 `172.16.1.1` ,因此均使用该地址作为 PVE 的网关地址和 DNS 地址。
PVE 安装完成后, 将使用 PVE 提供的 WEB 管理面,进一步对该管理口的设置进行调整
PVE 安装完成后,可通过其提供的 Web 管理面,进一步调整管理口的相关设置。
|参数|值|说明|
|--|--|--|
|Hostname (FQDN)|`node01.fox.local`|设置 PVE `域``主机名` |
|Hostname (FQDN)|`node01.fox.internal`|设置 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 |
![PVE管理IP地址](img/p01/pve_ip.jpeg)
![PVE管理IP地址](img/p01/pve_ip.jpg)
### 1.7. PVE 参数确认
该页面会显示当前 PVE 的安装配置总览,确认无误后即可开始安装。
![PVE安装确认](img/p01/pve_install_confirm.jpeg)
![PVE安装确认](img/p01/pve_install_confirm.jpg)
安装完成后,PVE 会告知用户登录的 `IP 地址``端口`
![PVE安装完成](img/p01/pve_install_finish.jpeg)
![PVE安装完成](img/p01/pve_install_finish.jpg)
## 2. PVE 安装后检查
@@ -205,9 +207,9 @@ $ cat /etc/fstab
$ cat /etc/os-release
```
此处显示出 PVE 底层使用的是 Debian 的系统,代号为 `bookworm` ,该代号后续会使用到。
此处显示出 PVE 底层使用的是 Debian 的系统,代号为 `trixie` ,该代号后续会使用到。
![PVE系统信息](img/p01/pve_sys_info.jpeg)
![PVE系统信息](img/p01/pve_sys_info.jpg)
至此 PVE 的安装步骤已经完成。
+128 -142
View File
@@ -2,112 +2,116 @@
在上一篇文章 [01.PVE系统安装](./01.PVE系统安装.md) 中,从刚装好的 PVE 系统中获取了系统的一些参数。
![PVE系统信息](img/p01/pve_sys_info.jpeg)
![PVE系统信息](img/p01/pve_sys_info.jpg)
此处显示出 PVE 底层使用的是 Debian 的系统,代号为 `bookworm`
此处显示出 PVE 底层使用的是 Debian 的系统,代号为 `trixie`
为了后续能对 PVE 系统进行升级,需要更换其镜像仓库,也就是大家熟知的软件源。
由于目前处于 **“离线”** 安装状态,因此更换软件源后,在没有网络的情况下无法对系统更新。
前处于 “离线” 安装状态,更换软件源后,因无网络连接,无法执行系统更新操作
### 1.1.系统软件源
使用 SSH 工具登录到 PVE 服务器,首先对现有软件源配置进行备份
使用终端工具登录到 PVE 服务器,查看现有软件源配置文件
```bash
## 进入系统软件源配置文件目录
$ cd /etc/apt
## 查看系统默认软件源
$ cat /etc/apt/sources.list.d/debian.sources
## 查看系统默认镜像配置
$ cat sources.list
#### 系统默认软件源示例输出
Types: deb
URIs: http://deb.debian.org/debian/
Suites: trixie trixie-updates
Components: main contrib non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
## 将默认软件源配置文件进行备份
$ cp sources.list sources.list.bak
Types: deb
URIs: http://security.debian.org/debian-security/
Suites: trixie-security
Components: main contrib non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
```
系统默认镜像配置记录如下
这里将使用 [中国科技大(USTC](http://mirrors.ustc.edu.cn/help/proxmox.html) 的镜像仓库进行替换,执行以下命令
```bash
deb http://ftp.debian.org/debian bookworm main contrib
## 配置 PVE 系统默认软件源脚本
$ tee /etc/apt/sources.list.d/debian.sources >/dev/null <<'EOF'
Types: deb
URIs: https://mirrors.ustc.edu.cn/debian
Suites: trixie trixie-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
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
Types: deb
URIs: https://mirrors.ustc.edu.cn/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF
```
### 1.2. PVE 软件源
默认情况下,PVE 额外启用了 2 个官方源,且为订阅收费制,因此需要替换为免源。
默认情况下,PVE 额外启用了 2 个官方源,且为订阅收费制,因此需要替换为免订阅源。
删除 PVE 官方付费软件源,使用以下命令。
首先创建 PVE 免订阅软件源,执行以下命令。
```bash
## 配置 PVE 系统免订阅软件源脚本
$ tee /etc/apt/sources.list.d/pve-no-subscription.sources >/dev/null <<'EOF'
Types: deb
URIs: https://mirrors.ustc.edu.cn/proxmox/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
```
对于 Proxmox Backup Server 和 Proxmox Mail Gateway,请将以上命令路径中的 `pve` 分别替换为 `pbs``pmg`
进一步创建 PVE Ceph 免订阅软件源,Ceph 软件源为 PVE 8 之后默认安装,执行以下命令。
```bash
## 配置 PVE Ceph 免订阅软件源脚本
$ if [ -f /etc/apt/sources.list.d/ceph.sources ]; then
(
. /etc/os-release
CEPH_CODENAME=$(ceph -v | awk '/^ceph version / { print $(NF - 1); exit }')
if [ -z "$CEPH_CODENAME" ] || [ -z "${VERSION_CODENAME:-}" ]; then
echo "Unable to determine Ceph or Debian codename." >&2
exit 1
fi
tee /etc/apt/sources.list.d/pve-ceph-no-subscription.sources >/dev/null <<EOF
Types: deb
URIs: https://mirrors.ustc.edu.cn/proxmox/debian/ceph-$CEPH_CODENAME
Suites: $VERSION_CODENAME
Components: no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
)
fi
```
最后,删除 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
$ rm -rvf /etc/apt/sources.list.d/pve-enterprise.sources /etc/apt/sources.list.d/ceph.sources
```
创建完成后对其进行检查。
```bash
## 检查PVE免费源
$ cat /etc/apt/sources.list.d/ceph-no-subscription.list
$ cat /etc/apt/sources.list.d/pve-no-subscription.list
## 检查 PVE 免费源
$ cat /etc/apt/sources.list.d/*
```
如果输出结果中 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
```
如果输出结果中均为 USTC 的镜像地址,则表示命令已经正确执行。
### 1.3. PVE CT 源
@@ -116,19 +120,21 @@ deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bookworm pve-no-subscription
由于该功能暂时未被使用,因此本文只做记录。
```bash
## 替换 CT Templates
## 替换 CT Templates 链接
$ sed -i.bak 's|http://download.proxmox.com|https://mirrors.ustc.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
$ 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
## 重启 PVE API 守护进程
$ systemctl restart pvedaemon.service
## 更新 CT Templates 列表
$ pveam update
```
### 1.4.镜像同步
更换完成系统源之后,需要同步系统源数据。
考虑到 **“离线”** 安装时无法同步系统源,因此该步骤可以等到 PVE 正确连接 Internet 后再执行。
“离线” 安装时无法同步系统源,此步骤可待 PVE 成功连接 Internet 后再执行。
```bash
## 清理软件包
@@ -138,54 +144,57 @@ $ apt clean && apt autoclean && apt autoremove --purge
$ apt update
## 更新系统
$ apt dist-upgrade
$ apt full-upgrade
```
## 2.安装必要软件
安装软件前,同样需要让 PVE 能够访问外网。
安装 `iperf3` 后,系统将询问是否将其作为系统服务开机自启,选择 `no` 即可。
其中 `unattended-upgrades` 为系统自动更新服务,后续会对其进行配置。
`cpufrequtils` 为 CPU 调度器的配置工具,后续会对 CPU 调度算法进行调整。
`linux-cpupower` 为 CPU 调度器的配置工具,后续会对 CPU 调度进行调整。
```bash
## 同步镜像仓库
$ apt update
## 安装系统软件
$ apt install htop lm-sensors unzip vim tmux unattended-upgrades powermgmt-base
## 安装网络工具
$ apt install iperf iperf3 iftop
$ apt install btop curl knot-dnsutils lm-sensors neovim powermgmt-base unattended-upgrades sshguard tmux
## 安装 CPU 调度调整工具
$ apt install cpufrequtils
## 根据 CPU 厂商安装 CPU 微码工具
$ apt install intel-microcode (amd64-microcode)
$ apt install linux-cpupower
## 更新 PCI 数据库
$ update-pciids
## 安装 Open vSwitch(可选)
$ apt install openvswitch-switch
## 安装网络检测工具(可选)
$ apt install iftop iperf iperf3
## 根据 CPU 厂商安装 CPU 微码工具(可选,现已默认安装)
$ apt install intel-microcode (amd64-microcode)
## 刷新 systemd 日志分类索引
$ journalctl --update-catalog
```
## 3.配置 PVE 网络
设置电脑的 IPv4 地址为静态地址,电脑 IPv4 地址段需要与 PVE 的地址段保持一致。
用网线电脑网口与 PVE 管理网口此时应为编号最小的第一个网口,相连接
用网线连接电脑网口与 PVE 管理网口此时应为编号最小的第一个网口
访问 PVE 的 WEB 管理界面,对 PVE 的网络进行一些调整。
根据 **网络设备** 规划, PVE 中虚拟机规划如下。
访问 PVE 的 Web 管理界面,根据 **网络设备** 规划调整其网络配置。
|系统|作用|说明|
|--|--|--|
|RouterOS|主路由|PPPoE 拨号上网|
|Debian12|Linux 服务器|内网 DNS 服务器|
|OpenWrt|旁路由|内网插件服务|
|Debian|DNS 服务器|内网 DNS 服务器|
|Debian|TS 服务器|内网 TS 组网服务|
|OpenWrt|旁路网关|内网插件服务|
根据 **内部网络地址** 规划,PVE IP 地址规划如下。
@@ -194,23 +203,19 @@ $ update-pciids
|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 服务器|
|IPv6|管理地址|`fdac::fe`|PVE IPv6 地址(可选)|
||网关地址|`-`|PVE IPv6 网关将使用 `SLAAC` 自动配置|
||DNS 地址|`fdac::1`|PVE IPv6 DNS 服务器(可选)|
![PVE网络规划](img/p02/pve_net_schematization.png)
![PVE网络规划](img/p02/pve_net_schematization.jpeg)
初次登录 PVE 的 WEB 管理后台,打开网络管理页面,此时只有一个 `vmbr0`
`vmbr0` 与列表中的第一个物理网口绑定,且在 `CIDR``网关` 处有 IP 地址参数,说明 `vmbr0` 为当前管理网口。
![PVE网桥最终设置显示](img/p02/pve_net_default.jpeg)
接下来将修改 PVE 网络配置,在修改完成前, **请不要点击 “应用配置”** ,否则会导致 PVE 无法访问。
在 PVE 内部网络设置完成后,将如图所示。
![PVE网桥最终设置显示](img/p02/pve_net_preview.jpeg)
![PVE默认网桥](img/p02/pve_net_default.jpg)
### 3.1.修改 vmbr0
@@ -218,21 +223,17 @@ $ update-pciids
删除 `IPv4/CIDR``网关` 信息,确保 `自动启动` 为勾选状态。
在备注处填写 `wan` ,然后点击 `OK` 按钮
在备注处填写 `wan` ,然后点击 `OK`
![修改vmbr0](img/p02/pve_modify_vmbr0.jpeg)
### 3.2.创建网桥
点击左上角的 `创建` 按钮,选择 `Linux Bridge`
点击左上角的 `创建` 选项,选择 `Linux Bridge`
![创建物理接口网桥](img/p02/pve_br_create.jpeg)
![创建物理接口网桥](img/p02/pve_br_create.jpg)
因为 `vmbr0` 名称已被使用,因此名称填写 `vmbr1`
桥接端口填写顺序的第二个网卡名称,演示中为 `enp3s0`
确保 `自动启动` 为勾选状态,在备注处填写 `lan1` ,点击 `创建` 按钮。
桥接端口填写顺序的第二个网卡名称,演示中为 `nic1` ,在备注处填写 `lan1` ,并点击 `创建`
然后,依次创建所有物理接口的内部网桥,直到最后一个网桥,即 PVE 的管理网口。
@@ -240,59 +241,44 @@ $ update-pciids
### 3.3.创建管理网口
在创建最后一个物理网口的网桥时,需要额外配置 `IPv4` 地址和对应的 `网关` 参数。
在创建最后一个物理网口的网桥时,需配置 `IPv4` 地址和对应的 `网关` 参数。
![最后的物理接口网桥](img/p02/pve_br_last_phyport.jpeg)
额外说明:
1. 如非特殊需求,通常情况下 PVE 系统无需使用 IPv6 网络。
2. 根据实际测试,仅 PVE 纯内部网桥( `vmbr4` )可通过主路由获取公网 GUA IPv6 地址。
3. 主路由未配置 ULA IPv6 网段时,例如本文演示地址 `fdac::/64` ,无需填写 `IPv6/CIDR` 参数。
4. 通常情况下 IPv6 无需填写 `网关` 参数,IPv6 网关将通过 LLA IPv6 地址自动配置。
**额外说明:**
- 如非特殊需求,通常情况下 PVE 系统无需使用 IPv6 网络
- 当主路由未配置 IPv6 ULA 网段时,无需填写 `IPv6/CIDR` 参数(如本文演示地址 `fdac::fe/64`
- 多数情况下无需填写 IPv6 `网关` 参数,其网关将通过 IPv6 LLA (链路本地地址)自动配置
![最后的物理接口网桥](img/p02/pve_br_last_phyport_ipv6.jpeg)
所有物理网口的 PVE 网桥创建完成后,可以点击 `应用配置` 按钮,此时页面会失去连接。
所有物理网口的 PVE 网桥创建完成后,点击 `应用配置` 页面会断开连接。
无需担心,只需将电脑网线从 PVE 物理机的第一个网口拔出,并插入最后一个网口即可。
此时,只需将电脑网线从 PVE 物理机的第一个网口拔出,并插入最后一个网口即可恢复
如果万一还是无法访问 PVE,可尝试使用网线 “拔插” 方法,挨个测试 PVE 网口的访问情况
若仍无法访问 PVE,可尝试通过网线拔插的方式,逐一测试 PVE 网口的访问连通性
### 3.4.创建内部网桥
纯内部网桥,在没有内部路由系统提供额外桥接的情况下,无法直接通过物理网口进行访问。
纯内部网桥在无其他系统提供额外桥接,无法直接通过物理网口访问。
只有在主路由(例如 RouterOS )安装完成并建立了内部网桥后,才可正常使用
该纯内部网桥,其主要作用是通过 **主路由** 给内部其他虚拟机提供 **统一** 的网络访问接口。
其主要作用是借助其他系统创建的虚拟网桥,为内部虚拟机提供统一的网络访问接口
创建纯内部网桥的方法,与创建物理网口网桥的方法基本一致,唯一区别是 `桥接端口` 参数为 **空** 即可。
![纯内部网桥](img/p02/pve_br_nophyport.jpeg)
当然,内部网桥的作用不仅如此,比如还可以作为内部级联路由的连接器
在 PVE 内部网络设置完成后,将如图所示
例如,安装了 OPNsense 和 RouterOS 两个虚拟机,OPNsense 作为网关防火墙使用。
此时 RouterOS 作为二级路由系统,OPNsense 的 LAN 口需要与 RouterOS 的 WAN 口相连。
如果 OPNsense 和 RouterOS 均使用了绑定物理网口的 PVE 网桥,则需用网线在 PVE 服务器上连接两个物理网口。
浪费了宝贵的网线不说,还占用了网口,得不偿失。
而纯内部网桥则能很好的解决该问题,有了纯内部网桥,不论多少个虚拟机使用该网桥,只要 IP 地址段相同,即可相互访问。
![PVE网桥最终设置显示](img/p02/pve_net_preview.jpg)
## 4.配置 PVE DNS
在 PVE 系统的安装过程中,设置了 DNS 的 IPv4 地址 `172.16.1.1` ,但并未设置 DNS 的 IPv6 地址。
在 PVE 的 DNS 设置页面,手动添加 DNS IPv6 地址,即主路由 LAN 口 ULA IPv6 地址。
在 PVE 的 DNS 设置页面,手动添加 DNS IPv6 地址,即主路由 LAN 口 IPv6 ULA 地址。
同样,若 PVE 不使用 IPv6 网络或主路由未配置 ULA IPv6 网段,本步骤可跳过。
同样,若 PVE 不使用 IPv6 网络或主路由未配置 IPv6 ULA 网段,本步骤可跳过。
![PVE添加IPv6DNS](img/p02/pve_add_ipv6_dns.jpeg)
+248 -218
View File
@@ -4,31 +4,43 @@
在 PVE 系统调整之前,请确认必要的软件包已经安装完成,本文后续命令均在 SSH 终端下执行。
Debian 系统默认编辑器为 `nano` ,推荐将其更换为 `neovim` ,关于 [Neovim](https://neovim.io/) 的基础使用方法,请参阅:[Neovim 基础教程](https://cn.bing.com/search?q=Neovim+%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B) 。
```bash
## 同步镜像仓库
$ apt update
## 修改系统默认编辑器(选择 nvim 所在条目,即可将 neovim 设为默认编辑器)
$ update-alternatives --config editor
## 安装系统软件
$ apt install htop lm-sensors unzip vim tmux unattended-upgrades powermgmt-base
#### 系统默认编辑器示例输出
There are 3 choices for the alternative editor (providing /usr/bin/editor).
## 安装网络工具
$ apt install iperf iperf3 iftop
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/nano 40 manual mode
2 /usr/bin/nvim 30 manual mode
3 /usr/bin/vim.tiny 15 manual mode
## 安装 CPU 调度调整工具
$ apt install cpufrequtils
Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/nvim to provide /usr/bin/editor (editor) in manual mode
```
## 根据 CPU 厂商安装 CPU 微码工具
$ apt install intel-microcode (amd64-microcode)
若需完全禁用 `neovim` 鼠标功能;即关闭所有鼠标交互,右键行为完全交给终端 / 控制台处理,需执行以下命令。
## 更新 PCI 数据库
$ update-pciids
```bash
## 创建 nvim 配置目录
$ mkdir -p /etc/xdg/nvim
## 配置 nvim 鼠标交互行为脚本
$ tee /etc/xdg/nvim/sysinit.vim >/dev/null <<'EOF'
set mouse=
EOF
```
## 1.系统时区
如果在安装 PVE 系统时选错了时区,导致系统时间和北京时间不一致,可以使用以下命令修正。
如果在安装 PVE 系统时选错了时区,导致系统时间和北京时间不一致,可以执行以下命令修正。
输出结果如果和北京时间一致,则代表修改正确。
输出结果和北京时间一致,则代表修改正确。
```bash
## 修改系统时区
@@ -38,18 +50,16 @@ $ timedatectl set-timezone Asia/Shanghai
$ date -R
#### 系统时间示例输出
Sun, 25 Jun 2023 12:12:12 +0800
Wed, 27 Aug 2025 15:12:21 +0800
```
Debian 系统常用 `systemd-timesyncd.service` 来同步时间,而 PVE 系统使用 `chrony.service` 来同步时间。
为了使用国内的 NTP 服务器,需要对 `chrony.service` 进行配置。
执行以下命令对 `chrony` 的配置文件进行修改。
为了使用国内的 NTP 服务器,需要对 `chrony.service` 进行配置,执行以下命令
```bash
## 编辑 chrony 配置文件
$ nano /etc/chrony/chrony.conf
$ editor /etc/chrony/chrony.conf
```
在编辑器对话框中,将 `pool 2.debian.pool.ntp.org iburst` “注释” 掉,并添加国内的 NTP 服务器。
@@ -61,15 +71,16 @@ $ nano /etc/chrony/chrony.conf
# pool 2.debian.pool.ntp.org iburst ## 在这行前面增加注释符 # 来注释
# Use Custom vendor zone.
pool ntp.tencent.com iburst
pool ntp.aliyun.com iburst
pool ntp.tencent.com iburst
pool cn.pool.ntp.org iburst
```
保存该配置文件后,需重启 `chrony` 服务,并再次检查系统 NTP 服务器地址。
配置文件编辑完成后,需重启 `chrony.service` ,并再次检查系统 NTP 服务器地址。
```bash
## 重启 chrony 服务
## 重启 chrony.service
$ systemctl restart chrony.service
## 检查系统 NTP 服务器
@@ -78,71 +89,66 @@ $ 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
^* 203.107.6.88 2 6 17 0 -875us[-2496us] +/- 22ms
^- 106.55.184.199 2 6 17 3 -1331us[-1331us] +/- 50ms
^- time.neu.edu.cn 2 6 17 8 +935us[ +935us] +/- 23ms
^- 119.28.206.193 2 6 65 5 +33us[ +33us] +/- 65ms
^- electrode.felixc.at 2 6 17 11 -1320us[-1320us] +/- 126ms
^- dns1.synet.edu.cn 1 6 17 13 -44us[ -44us] +/- 22ms
```
## 2. CPU 调度器
安装 `cpufrequtils` 后,需检查 CPU 当前调度器。
安装 `linux-cpupower` 后,需检查 CPU 当前调度器。
```bash
## 检查 CPU 当前调度器
$ cpufreq-info
$ cpupower -c all frequency-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.
maximum transition latency: 20.0 us
hardware limits: 800 MHz - 2.70 GHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil
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
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 1.84 GHz.
current CPU frequency: Unable to call hardware
current CPU frequency: 2.60 GHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: yes
#### 设备 CPU - N6005 示例输出
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
#### 设备 CPU - N100 示例输出
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.
maximum transition latency: Cannot determine or is not supported.
hardware limits: 800 MHz - 3.30 GHz
available cpufreq governors: performance, powersave
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.
current CPU frequency: Unable to call hardware
current CPU frequency: 2.00 GHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: yes
```
这里面主要关注两个点:
- driver: `intel_cpufreq``intel_pstate`
- `driver` CPU 调频驱动方案,例如 `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
```
- `governor` :调频策略中使用的调度器,例如 `performance`
CPU 驱动一般不建议手动调整,而 `governor` 后面的参数表示 CPU 当前调度器设置。
接下来,需要了解 CPU 支持的调度器有哪些,使用以下命令。
接下来,需要了解 CPU 支持的调度器有哪些,执行以下命令。
```bash
## 检查 CPU 调度器支持情况
@@ -151,7 +157,7 @@ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
#### 设备 CPU - J4125 示例输出
conservative ondemand userspace powersave performance schedutil
#### 设备 CPU - N6005 示例输出
#### 设备 CPU - N100 示例输出
performance powersave
```
@@ -161,30 +167,52 @@ performance powersave
- CPU 驱动为 `intel_pstate` 时,推荐使用 `powersave` 调度器。
本文使用 `powersave` 调度器为演示,使用 `nano` 编辑器来编辑 `cpufrequtils` 的配置文件。
因为该配置文件很长,完整的配置文件可查看 [pve_cpufrequtils.conf](./src/pve_cpufrequtils.conf) 以便对比。
修改完成后,需要重启 PVE 服务器来使参数生效。
本文使用 `powersave` 调度器创建 `cpupower` 的配置文件。
```bash
## 编辑 cpufrequtils 配置文件
$ nano /etc/init.d/cpufrequtils
## 创建 cpupower 默认配置文件
$ tee /etc/default/cpupower >/dev/null <<'EOF'
# This configuration file is customized by fox,
# Optimize CPU governor settings.
CPUPOWER_START_OPTS="frequency-set -g powersave"
CPUPOWER_STOP_OPTS="frequency-set -g performance"
EOF
```
在配置文件中修改以下配置项,并保存
进一步创建 `cpupower` 服务配置文件,以满足系统自动化设置需求
```bash
## cpufrequtils 配置
## 创建 cpupower.service 配置文件
$ systemctl edit --force --full cpupower.service
```
ENABLE="true"
GOVERNOR="powersave" ## 修改本行的调度器为 powersave
MAX_SPEED="0"
MIN_SPEED="0"
在服务配置文件中输入以下内容,并保存。
```bash
[Unit]
Description=CPU Power Governor Management
ConditionVirtualization=!container
After=syslog.target
[Service]
Type=oneshot
EnvironmentFile=/etc/default/cpupower
ExecStart=/usr/bin/cpupower $CPUPOWER_START_OPTS
ExecStop=/usr/bin/cpupower $CPUPOWER_STOP_OPTS
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
```
PVE 服务器重启完成后需再次查看 CPU 调度器,检验配置文件是否生效
执行以下命令让 `cpupower` 服务立即启动并置为开机自启状态
```bash
## 设置 cpupower 服务开机自启
$ systemctl enable --now cpupower.service
```
这里提供两个额外命令,方便实时查看 CPU 当前频率和温度状况。
@@ -196,36 +224,13 @@ $ watch cat /sys/devices/system/cpu/cpu[0-9]*/cpufreq/scaling_cur_freq
$ watch -d sensors
```
## 3. PVE 定时重启
## 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.系统定时器
### 3.1.系统定时器
配置系统自动更新之前,需检查系统当前定时器状态。
后续将手动调整该定时器的时间,使其每 `5`凌晨 `02:00` 进行触发。
后续将手动调整该定时器的时间,使其每 `10` `01:30` 进行触发。
```bash
## 检查系统定时器
@@ -233,18 +238,18 @@ $ 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
Loaded: loaded (/usr/lib/systemd/system/apt-daily-upgrade.timer; enabled; preset: enabled)
Active: active (waiting) since Mon 2026-08-10 09:51:05 CST; 27min ago
Invocation: edb5962fda4c4a8395cb2c04c736db45
Trigger: Tue 2026-08-11 06:21:38 CST; 20h 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.
Aug 10 09:51:05 node01 systemd[1]: Started apt-daily-upgrade.timer - Daily apt upgrade and clean activities.
```
### 4.2.配置更新策略
### 3.2.配置更新策略
使用以下命令,启用系统自动更新。
执行以下命令,启用系统自动更新。
执行命令后,使用 “左右” 方向键进行选择,“回车” 键进行确认。
@@ -252,46 +257,34 @@ Jun 23 18:55:58 node01 systemd[1]: Started apt-daily-upgrade.timer - Daily apt u
## 配置自动更新策略
$ dpkg-reconfigure -plow unattended-upgrades
## 选择 “是” (“YES”)
#### 系统自动更新示例输出
Creating config file /etc/apt/apt.conf.d/20auto-upgrades with new version
## 选择 “是”
<Yes>
```
进一步调整 apt 的 `20auto-upgrades` 配置文件。
开始调整 `20auto-upgrades` 配置文件。
配置文件中,用来控制更新周期的参数为 `APT::Periodic::Unattended-Upgrade` `10` 表示更新周期为 `10` 天。
```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
## 系统更新周期配置项
$ tee /etc/apt/apt.conf.d/20auto-upgrades >/dev/null <<'EOF'
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "5";
APT::Periodic::Unattended-Upgrade "10";
APT::Periodic::AutocleanInterval "1";
APT::Periodic::CleanInterval "1";
EOF
```
进一步调整 apt 的 `50unattended-upgrades` 配置文件。
进一步调整 `50unattended-upgrades` 配置文件。
```bash
## 编辑 50unattended-upgrades 配置文件
$ nano /etc/apt/apt.conf.d/50unattended-upgrades
$ editor /etc/apt/apt.conf.d/50unattended-upgrades
```
配置文件中,被修改的参数解释如下:
- 启用了 Debian `bookworm-updates` 相关更新。
- 启用了 Debian `trixie-updates` 相关更新。
- 增加并启用 PVE 自有仓库的更新。
@@ -307,9 +300,9 @@ $ nano /etc/apt/apt.conf.d/50unattended-upgrades
- 自动重启:开启。
- 自动重启时间:`05:00`
- 自动重启时间:`02:30`
因为该配置文件很长,完整的配置文件可查看 [pve_50unattended_upgrades.conf](./src/pve_50unattended_upgrades.conf) 以便对比。
因为该配置文件很长,完整的配置文件可查看 [pve_50unattended_upgrades.conf](./src/pve/pve_50unattended_upgrades.conf) 以便对比。
```bash
## 删除以下行前面的注释符 // ,代表启用
@@ -322,9 +315,9 @@ $ nano /etc/apt/apt.conf.d/50unattended-upgrades
## 按需添加 PVE Ceph 更新项目
"origin=Proxmox,codename=${distro_codename},label=Proxmox Ceph Debian Repository";
"origin=Proxmox,codename=${distro_codename},label=Proxmox Ceph 19 Squid Debian Repository";
## 在配置文件末尾增加以下配置项,代表启用,并调整参数
## 在配置文件末尾增加以下内容,代表启用,并调整参数
Unattended-Upgrade::AutoFixInterruptedDpkg "true";
@@ -336,29 +329,29 @@ Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "05:00";
Unattended-Upgrade::Automatic-Reboot-Time "02:30";
```
### 4.3.重设触发器
### 3.3.重设触发器
系统自动更新配置文件修改完成后,需要重设自动更新定时器,执行以下命令。
完整的配置文件可查看 [pve_apt_daily_upgrade.conf](./src/pve_apt_daily_upgrade.conf) 以便对比。
完整的配置文件可查看 [pve_apt_daily_upgrade.conf](./src/pve/pve_apt_daily_upgrade.conf) 以便对比。
```bash
## 配置系统定时器
$ systemctl edit apt-daily-upgrade.timer
```
根据配置文件中的提示,在中间空白处填入以下配置项
根据配置文件中的提示,在中间空白处填入以下内容
```bash
## 定时器配置项
[Timer]
OnCalendar=
OnCalendar=02:00
OnCalendar=01:30
RandomizedDelaySec=0
```
@@ -374,30 +367,30 @@ $ 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)
Loaded: loaded (/usr/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
Active: active (waiting) since Mon 2026-08-10 10:35:09 CST; 5s ago
Invocation: e73c9dd167cc4814836a1da4dab015db
Trigger: Tue 2026-08-11 01:30:00 CST; 14h 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.
Aug 10 10:35:09 node01 systemd[1]: Stopping apt-daily-upgrade.timer - Daily apt upgrade and clean activities...
Aug 10 10:35:09 node01 systemd[1]: Stopped apt-daily-upgrade.timer - Daily apt upgrade and clean activities.
Aug 10 10:35:09 node01 systemd[1]: Started apt-daily-upgrade.timer - Daily apt upgrade and clean activities.
```
## 5.硬件直通
## 4.硬件直通
### 5.1.修改 Grub
### 4.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`
使用终端工具登录到 PVE 服务器,编辑系统 `Grub` 的配置文件 `/etc/default/grub`
```bash
## 编辑 Grub 配置文件
$ nano /etc/default/grub
$ editor /etc/default/grub
```
在编辑器对话框中修改 `GRUB_CMDLINE_LINUX_DEFAULT` 参数,注意命令中间的空格。
@@ -425,36 +418,32 @@ GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
$ update-grub
```
### 5.2.添加内核模块
### 4.2.添加内核模块
修改系统 `/etc/modules` 配置文件,增加必要的系统模块。
编辑 **内核模块** 配置文件,增加必要的系统模块,执行以下命令
```bash
## 编辑系统配置文件
$ nano /etc/modules
```
在配置文件中添加以下配置项,并保存。
```bash
## 硬件直通配置项
$ tee /etc/modules-load.d/10-server-modules.conf >/dev/null <<'EOF'
# This configuration file is customized by fox,
# Optimize vfio related modules at system boot.
vfio
vfio_iommu_type1
vfio_pci
EOF
```
使用以下命令更新 `initramfs` ,更新完成后,建议重启 PVE 服务器。
执行以下命令更新 `initramfs` ,更新完成后,建议重启 PVE 服务器。
```bash
## 更新 initramfs
$ update-initramfs -u -k all
```
### 5.3.检查硬件直通
### 4.3.检查硬件直通
PVE 服务器重启完成后,再次使用 SSH 工具登录,并使用以下命令检查硬件直通状态。
PVE 服务器重启完成后,再次使用终端工具登录,并执行以下命令检查硬件直通状态。
主要查看 `IOMMU``Directed I/O``Interrupt Remapping` 的启用状态。
@@ -462,89 +451,130 @@ PVE 服务器重启完成后,再次使用 SSH 工具登录,并使用以下
## 检查系统硬件直通状态
$ 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
#### 设备 CPU - J4125 示例输出
[ 0.008356] ACPI: DMAR 0x000000007953E000 0000A8 (v01 INTEL GLK-SOC 00000003 BRXT 0100000D)
[ 0.008406] ACPI: Reserving DMAR table memory at [mem 0x7953e000-0x7953e0a7]
[ 0.055618] AMD-Vi: Unknown option - 'on'
[ 0.220916] DMAR: Host address width 39
[ 0.220919] DMAR: DRHD base: 0x000000fed64000 flags: 0x0
[ 0.220939] DMAR: dmar0: reg_base_addr fed64000 ver 1:0 cap 1c0000c40660462 ecap 9e2ff0505e
[ 0.220944] DMAR: DRHD base: 0x000000fed65000 flags: 0x1
[ 0.220954] DMAR: dmar1: reg_base_addr fed65000 ver 1:0 cap d2008c40660462 ecap f050da
[ 0.220960] DMAR: RMRR base: 0x000000794a9000 end: 0x000000794c8fff
[ 0.220963] DMAR: RMRR base: 0x0000007b800000 end: 0x0000007fffffff
[ 0.220967] DMAR-IR: IOAPIC id 1 under DRHD base 0xfed65000 IOMMU 1
[ 0.220970] DMAR-IR: HPET id 0 under DRHD base 0xfed65000
[ 0.220973] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[ 0.223069] DMAR-IR: Enabled IRQ remapping in x2apic mode
[ 0.493005] DMAR: No ATSR found
[ 0.493008] DMAR: No SATC found
[ 0.493010] DMAR: dmar0: Using Queued invalidation
[ 0.493018] DMAR: dmar1: Using Queued invalidation
[ 0.494092] DMAR: Intel(R) Virtualization Technology for Directed I/O
```
检查系统 `IOMMU` 分组,使用以下命令。
检查系统 `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
#### 设备 CPU - J4125 示例输出
/sys/kernel/iommu_groups/17/devices/0000:04:00.0
/sys/kernel/iommu_groups/7/devices/0000:00:13.3
/sys/kernel/iommu_groups/15/devices/0000:02:00.0
/sys/kernel/iommu_groups/5/devices/0000:00:13.0
/sys/kernel/iommu_groups/13/devices/0000:00:1f.0
/sys/kernel/iommu_groups/13/devices/0000:00:1f.1
/sys/kernel/iommu_groups/3/devices/0000:00:0f.0
/sys/kernel/iommu_groups/11/devices/0000:00:17.0
/sys/kernel/iommu_groups/11/devices/0000:00:17.3
/sys/kernel/iommu_groups/11/devices/0000:00:17.1
/sys/kernel/iommu_groups/11/devices/0000:00:17.2
/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/18/devices/0000:05:00.0
/sys/kernel/iommu_groups/8/devices/0000:00:14.0
/sys/kernel/iommu_groups/16/devices/0000:03:00.0
/sys/kernel/iommu_groups/6/devices/0000:00:13.2
/sys/kernel/iommu_groups/14/devices/0000:01:00.0
/sys/kernel/iommu_groups/4/devices/0000:00:12.0
/sys/kernel/iommu_groups/12/devices/0000:00:1c.0
/sys/kernel/iommu_groups/2/devices/0000:00:0e.0
/sys/kernel/iommu_groups/10/devices/0000:00:15.0
/sys/kernel/iommu_groups/0/devices/0000:00:02.0
/sys/kernel/iommu_groups/9/devices/0000:00:1c.6
/sys/kernel/iommu_groups/9/devices/0000:00:14.1
```
## 5. BTRFS 调整
**额外说明:**
- 本节专为 `BTRFS` 单盘 `RAID0`(条带模式)安装的 PVE 系统设计,使用其他安装模式时,请跳过此节
- `BTRFS` 文件系统当前仍为技术预览状态,请谨慎操作
- 有关在 PVE 中使用 `BTRFS` 的详情,请参阅 [Proxmox VE - BTRFS](https://pve.proxmox.com/wiki/BTRFS)
安装 PVE 时,若使用了 `BTRFS` 单盘 `RAID0` 的安装模式,系统默认未启用 swap 和 zstd 压缩,需要手动开启。
通常情况下,内存与 swap 的 **推荐** 比例为 `1:1` 。本机具有 `16GB` 内存,因此设置 `16GB` swap 空间。
执行以下命令,在 `BTRFS` 文件系统中创建子卷,并配置激活 swapfile 。
```bash
## 创建用于存放交换文件的子卷
$ btrfs subvolume create /swap
## 在子卷中创建 16GB 的交换文件
$ btrfs filesystem mkswapfile --size 16g --uuid clear /swap/swapfile
## 激活交换文件
$ swapon /swap/swapfile
```
此时还需进一步修改系统的 `fstab` 配置文件,以启用 `BTRFS` 的 zstd 压缩功能并确保 swap 在系统启动时自动激活。
```bash
## 编辑 fstab 配置文件
$ editor /etc/fstab
```
`fstab` 为系统关键配置文件,直接影响系统启动,修改此文件时,请注意以下几点:
- 仅修改根目录 `/` 对应的挂载选项,添加 `compress=zstd` 参数。
- 在文件末尾新增一行,添加 swap 的自动挂载。
-**不要** 修改其余配置参数,尤其是设备的唯一标识符( `UUID` ),切勿修改。
修改完成后,示例如下。
```bash
#### 系统 fstab 示例配置
# <file system> <mount point> <type> <options> <dump> <pass>
UUID=<DO-NOT-EDIT-YOUR-UUID> / btrfs defaults,compress=zstd 0 1
UUID=<YOUR-UUID> /boot/efi vfat defaults 0 1
proc /proc proc defaults 0 0
/swap/swapfile none swap defaults 0 0
```
## 6.系统清理
PVE 系统配置完成后,可逐条执行以下命令,对系统进行清理。
PVE 系统配置完成后,可执行以下命令,对系统进行清理。
```bash
## 清理系统软件包
$ apt clean && apt autoclean && apt autoremove --purge
## 清理系统缓存
$ rm -rvf /var/cache/apt/* /var/lib/apt/lists/* /tmp/*
$ bash -c 'find /var/cache/apt/ /var/lib/apt/lists/ /tmp/ -type f -print -delete'
## 清理系统日志
$ find /var/log/ -type f | xargs rm -rvf
$ bash -c 'find /var/log/ -type f -print -delete'
## 清理命令历史记录文件
$ rm -rvf ~/.bash_history
## 清理命令历史
$ history -c
$ rm -rvf ~/.bash_history && history -c
```
至此 PVE 的系统调整已经完成。
+151 -104
View File
@@ -2,13 +2,13 @@
将虚拟机制作成模板,可在后续新建虚拟机时快速从模板中创建,减少系统安装配置时间。
该虚拟机模板主要作内网 DNS 服务器使用,并会安装 Adguard Home
该虚拟机模板主要作内网 DNS 服务器,由 `Adguard Home``SmartDNS` 提供 DNS 解析服务
本文将使用 Debian 的云镜像 `debian-12-genericcloud-amd64.qcow2` 作为模板虚拟机的镜像。
本文将使用 Debian 的云镜像 `debian-13-generic-amd64.qcow2` 作为模板虚拟机的镜像。
访问 [Debian Official Cloud Images](https://cloud.debian.org/images/cloud/) 官方网站,下载最新版 `Bookworm` 云镜像以及对应的校验文件。
访问 [Debian Official Cloud Images](https://cloud.debian.org/images/cloud/) 官方网站,下载最新版 `Trixie` 云镜像以及对应的校验文件。
![下载镜像](img/p04/download_genericcloud_image_qcow2.jpeg)
![下载镜像](img/p04/download_generic_image_qcow2.jpeg)
## 1.创建虚拟机
@@ -18,163 +18,190 @@
勾选底部 `高级` 选项,显示完整的配置参数,节点即 “本机” ,`VM ID``名称` 可自定义。
![虚拟机名称](img/p04/vm_id.jpeg)
![虚拟机名称](img/p04/vm_id.jpg)
### 1.2.操作系统
无需使用任何安装介质,客户机操作系统类别选择 `Linux` 版本选择 `6.x - 2.6 Kernel` 即可。
无需使用任何安装介质,客户机操作系统类别选择 `Linux` 版本选择 `7.x - 2.6 Kernel` 即可。
![虚拟机操作系统](img/p04/vm_os.jpeg)
![虚拟机操作系统](img/p04/vm_os.jpg)
### 1.3.系统
SCSI 控制器保持默认 `VirtIO SCSI single` ,并勾选 `Qemu代理` 选项。
SCSI 控制器保持默认 `VirtIO SCSI single` ,机型可选 `q35` ,并勾选 `Qemu 代理` 选项。
![虚拟机系统](img/p04/vm_system.jpeg)
固件可选 `OVMF (UEFI)` ,并勾选 `添加 TPM` 选项,存储路径需根据实际情况进行调整,演示为 `local-lvm`
`预注册密钥` 可启用,启用后将预装特定于发行版和 Microsoft 标准的安全启动密钥。
![虚拟机系统](img/p04/vm_system.jpg)
### 1.4.磁盘
一般情况下,如果该虚拟机仅为 Adguard Home 服务器,`20G` 磁盘空间足够使用
因使用 Debian 云镜像制作虚拟机模板,此处需删除所有 `磁盘`
由于使用 Debian 云镜像制作虚拟机模板,此处删除所有 `磁盘`
![虚拟机磁盘](img/p04/vm_hd.jpeg)
![虚拟机磁盘](img/p04/vm_hd.jpg)
### 1.5.CPU
CPU `类` 选择 `host` `插槽``核心` 数根据物理 CPU 核心数进行酌情设置。
CPU `类` 选择 `host` `插槽``核心` 数根据物理 CPU 核心数进行酌情设置。
若 PVE 服务器内有多颗物理 CPU ,则推荐勾选 `启用NUMA` 选项。
若 PVE 服务器内有多颗物理 CPU ,则推荐勾选 `启用 NUMA` 选项。
![虚拟机CPU](img/p04/vm_cpu.jpeg)
![虚拟机CPU](img/p04/vm_cpu.jpg)
### 1.6.内存
内存一般 `2G` 足够使用,取消勾选 `Ballooning设备`
建议将 `内存` 设置为业务峰值需求,`最小内存` 原则上不低于 `内存` `75%`
![虚拟机内存](img/p04/vm_mem.jpeg)
默认启用 `Ballooning 设备` ,使 PVE 能够获取虚拟机内部的内存统计,并在宿主机出现内存压力时动态回收和调配内存。
`最小内存` 设置为与 `内存` 相同,可保留统计能力,同时为虚拟机提供固定的内存保障。
对于 `允许 KSM` 内核同页合并功能,建议保留勾选状态。
![虚拟机内存](img/p04/vm_mem.jpg)
### 1.7.网络
在 [02.PVE初始化配置](./02.PVE初始化配置.md) 中,曾创建了一个没有桥接任何物理网口的内部网桥
通常情况下,模板虚拟机的 `桥接` 参数设为 PVE 管理口所在虚拟网桥即可
该内部网桥接口同属于主路由内部网桥成员接口
因在 [02.PVE初始化配置](./02.PVE初始化配置.md) 中曾创建未桥接物理网口的内部网桥,故可根据实际需求选择是否使用纯内部网桥作为该参数值
因此,模板虚拟机的 `桥接` 参数可设置为该纯内部网桥。
![虚拟机网口](img/p04/vm_network_port.jpg)
![虚拟机网口](img/p04/vm_network_port.jpeg)
由于演示环境中暂未安装主路由系统,因此选择其他网桥接口替代。
通常情况下无需使用 PVE 内建防火墙,因此 **取消勾选** 网络设备的 `防火墙` 选项。
多数情况下,无需使用 PVE 内建防火墙,因此 **取消勾选** 网络设备的 `防火墙` 选项。
推荐在 `Multiqueue` 处根据前面设置的 CPU 核心数进行网卡多队列设置,设置比例为 1:1 。
即有 n 个 CPU 核心,此处多队列也设置为 n 。
![虚拟机网卡多队列](img/p04/vm_network_queue.jpeg)
![虚拟机网卡多队列](img/p04/vm_network_queue.jpg)
### 1.8.确认
接下来查看设置总览,确认无误后即可点击 `完成`
![虚拟机确认](img/p04/vm_confirm.jpeg)
![虚拟机确认](img/p04/vm_confirm.jpg)
## 2.调整硬件参数
### 2.1.删除光驱
查看虚拟机详情页,在虚拟机硬件配置页面,移除其 `CD/DVD驱动器`
查看虚拟机详情页,在虚拟机 `硬件` 配置页面,移除其 `CD/DVD驱动器`
![虚拟机删除光驱](img/p04/vm_delete_cd.jpeg)
![虚拟机删除光驱](img/p04/vm_delete_cd.jpg)
### 2.2.导入镜像文件
### 2.2.添加 VirtIO RNG
使用 SSH 工具登录 PVE 服务器,并进入 `tmp` 目录,逐条执行以下命令创建一个文件夹
为确保系统拥有充足的可用熵,需为模板虚拟机添加 `VirtIO RNG` 熵源
点击顶部 `新增` 菜单,选择 `VirtIO RNG`
![虚拟机添加RNG](img/p04/vm_rng.jpg)
`熵源` 选择 `/dev/urandom` ,其余参数保持默认即可。
![虚拟机RNG参数](img/p04/vm_rng_details.jpg)
### 2.3.添加串行端口
在基于 Debian Cloud Image 创建 VM 时,须在虚拟机硬件列表中添加 `串行端口` 设备 `serial0`
补全串口硬件可避免系统因缺失 `/dev/ttyS0` 而无限循环报 `agetty` 输入/输出错误,同时可启用 PVE 的 `xterm.js` 控制台(支持原生复制粘贴)。
![虚拟机添加串行端口](img/p04/vm_serial.jpg)
`串行端口` 设置为 `0` 即可。
![虚拟机RNG参数](img/p04/vm_serial_details.jpg)
### 2.4.导入镜像文件
使用终端工具登录到 PVE 服务器,在 `/tmp` 目录中创建一个目录用于下载 Debian 云镜像文件。
```bash
## 进入 tmp 目录
$ cd /tmp
## 创建并进入目录
$ mkdir -p /tmp/Debian && cd /tmp/Debian
## 创建文件夹
$ mkdir Debian
## 进入文件夹
$ cd Debian
```
将 Debian 云镜像传输到该文件夹,并检查 `hash`
```bash
## 下载云镜像校验文件
$ wget https://cloud.debian.org/images/cloud/bookworm/latest/SHA512SUMS
$ curl -LR -O https://cloud.debian.org/images/cloud/trixie/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
$ curl -LR -O https://cloud.debian.org/images/cloud/trixie/latest/debian-13-generic-amd64.qcow2
```
确认无误后,将镜像文件导入刚才创建的虚拟机,命令中的 `VM ID` 需要根据实际情况替换,演示为 `1000`
镜像文件下载完成后,使用官方提供的校验文件验证镜像完整性
```bash
## 检查文件是否存在
$ ls -lah
## 执行镜像文件校验
$ sha512sum --check --ignore-missing SHA512SUMS
#### 镜像校验成功示例输出
debian-13-generic-amd64.qcow2: OK
```
确认无误后,将镜像文件导入刚才创建的虚拟机,命令中的 `VM ID` 需要根据实际情况替换,演示为 `1001`
```bash
## 将 qcow2 镜像导入虚拟机中
$ qm importdisk 1000 debian-12-genericcloud-amd64.qcow2 local-lvm
$ qm importdisk 1001 debian-13-generic-amd64.qcow2 local-lvm
#### 镜像导入示例输出
Successfully imported disk as 'unused0:local-lvm:vm-1000-disk-0'
unused0: successfully imported disk 'local-lvm:vm-1001-disk-2'
```
![虚拟机新磁盘](img/p04/vm_unused_hd.jpeg)
磁盘导入成功后,虚拟机硬件列表中将显示一块未使用的磁盘设备,可鼠标 **双击** 该设备进行配置调整。
鼠标 **双击** 该未使用的磁盘,点击 `添加`
![虚拟机新磁盘](img/p04/vm_unused_hd.jpg)
![虚拟机使用该磁盘](img/p04/vm_enable_hd.jpeg)
当宿主机使用 SSD 作为物理存储设备,并且虚拟磁盘采用 Thin Provisioning (精简置备)模式时,可考虑开启以下选项:
导入的镜像只有 `2G` 磁盘空间,为了后续方便使用,需要对磁盘进行扩容
- `丢弃` `Discard` 选项,有助于存储空间回收
鼠标 **单击** 选中该磁盘,选择页面顶部 `磁盘操作` 菜单的子菜单 `调整大小`
- `SSD 仿真` `SSD Emulation` ) 选项,让虚拟机将虚拟磁盘视为 SSD 存储设备
![虚拟机磁盘扩容](img/p04/vm_hd_resize.jpeg)
在弹出的对话框中,确认 `IO thread` 选项为 **勾选** 状态,并点击 `新增`
在弹出的对话框中,给该磁盘增加 `18G` 磁盘空间。
![虚拟机使用该磁盘](img/p04/vm_enable_hd.jpg)
![虚拟机磁盘增加18G](img/p04/vm_hd_18g.jpeg)
导入的镜像仅具备 `3G` 磁盘空间,为方便后续使用,可通过 `qm` 命令直接将该磁盘调整至目标容量。
### 2.3.添加 CloudInit
```bash
## 将镜像容量设置为 24G
$ qm disk resize 1001 scsi0 24G
为了能够正常使用 Cloud-Init 初始化系统,需要给模板虚拟机添加 `CloudInit设备`
#### 镜像扩容示例输出
Size of logical volume pve/vm-1001-disk-2 changed from 3.00 GiB (768 extents) to 24.00 GiB (6144 extents).
Logical volume pve/vm-1001-disk-2 successfully resized.
```
点击顶部 `添加` 菜单,选择 `CloudInit设备`
**单击** 选中该磁盘,然后使用 `磁盘操作` 菜单中的 `调整大小` 选项对磁盘镜像进行扩容
![虚拟机添加ci](img/p04/vm_cloudinit.jpeg)
![虚拟机磁盘扩容](img/p04/vm_hd_resize.jpg)
`总线/设备` 选择 `SCSI` ,编号为 `1` `存储` 选择 `local-lvm`
在弹出的对话框中,给该磁盘增加 `21G` 磁盘空间
![虚拟机ci参数](img/p04/vm_ci_details.jpeg)
![虚拟机磁盘增加18G](img/p04/vm_hd_scale_up.jpg)
### 2.4.添加串行端口
### 2.5.添加 CloudInit
部分云镜像需要使用 `serial` 端口作为视频输出端口,否则虚拟机无法启动,因此给模板虚拟机添加串行端口
为确保 Cloud-Init 能正常初始化系统,需为模板虚拟机添加 `CloudInit 设备`
点击顶部 `添加` 菜单,选择 `串行端口`
同样通过 `新增` 菜单,选择 `CloudInit 设备`
![虚拟机添加串口](img/p04/vm_serial.jpeg)
![虚拟机添加ci](img/p04/vm_cloudinit.jpg)
串行端口编号为 `0`
`总线/设备` 选择 `SCSI` ,编号为 `1` ,存储路径需根据实际情况进行调整,演示为 `local-lvm`
![虚拟机串口参数](img/p04/vm_serial_details.jpeg)
![虚拟机ci参数](img/p04/vm_ci_details.jpg)
虚拟机硬件设备修改完成后,如下图所示。
![虚拟机全部硬件](img/p04/vm_hardware_all.jpeg)
![虚拟机全部硬件](img/p04/vm_hardware_all.jpg)
## 3.调整配置参数
@@ -194,21 +221,19 @@ Successfully imported disk as 'unused0:local-lvm:vm-1000-disk-0'
鼠标 **双击** `引导顺序` 选项,进入编辑界面。
`scsi0` 设备处勾选前面的 “已启用” 复选框,并使用行首的排序功能,将该设备拖拽到第一个
`scsi0` 设备处勾选 “已启用” 复选框,并通过排序功能将其拖拽至首位,点击 `确定` 即可
然后点击 `OK` 按钮。
![虚拟机引导顺序](img/p04/vm_boot.jpeg)
![虚拟机引导顺序](img/p04/vm_boot.jpg)
### 3.2.设置平板指针
关闭 `使用平板指针` 选项,可以一定程度上降低虚拟机的 CPU 使用率。
![虚拟机平板指针](img/p04/vm_tablet.jpeg)
![虚拟机平板指针](img/p04/vm_tablet.jpg)
## 4.设置 Cloud-Init
进入左侧虚拟机 `Cloud-Init` 菜单,可以看到当前虚拟机的初始化参数。
进入左侧虚拟机 `Cloud-Init` 页面,可以看到当前虚拟机的初始化参数。
### 4.1.自动配置 IPv6
@@ -216,47 +241,69 @@ Successfully imported disk as 'unused0:local-lvm:vm-1000-disk-0'
|参数|值|说明|
|--|--|--|
|用户|fox|新系统的管理员账户|
|密码|********|使用强密码|
|DNS域|fox.local|内网域名(可选)|
|DNS服务器|`172.16.1.1 127.0.0.1`|本机DNS服务器,用空格隔开|
|SSH公钥||使用秘钥登录服务器,暂不使用|
|IP配置(net0)|`ip=172.16.1.250/24,gw=172.16.1.1,ip6=auto`|模板的 IP 设置|
|用户|`fox`|新系统的管理员账户|
|密码|`********`|使用强密码|
|DNS 域|`fox.internal`|内网域名(可选)|
|DNS 服务器|`172.16.1.1`|本机 DNS 服务器|
|SSH 公钥|`无`|使用秘钥登录服务器,暂不使用|
|升级程序包|`是`|启动时更新软件包,保持默认即可|
|IP 配置 (net0)|`ip=172.16.1.250/24,gw=172.16.1.1,ip6=auto`|模板的 IP 设置|
**额外说明:**
1. 修改 `Cloud-Init` 参数时,需要在虚拟机关机情况下修改才会生效。
2.`DNS服务器` 设置部分,如果先设置了 `127.0.0.1` 作为 DNS 服务器,后续其他 DNS 的 IP 地址将被忽略。
此时内网没有其他 DNS 服务器,因此将 `DNS服务器` 设置为 `172.16.1.1 127.0.0.1` IP 之间用空格隔开。
- 修改 `Cloud-Init` 参数时,需要在虚拟机关机情况下修改才会生效
- `DNS服务器` 参数支持输入多个 IPv4 / IPv6 地址,使用空格隔开
- 当前 `DNS服务器` 参数为主路由 LAN 口 IPv4 地址,确保虚拟机能正常联网
![CI网络配置](img/p04/vm_ci_dns.jpeg)
`Cloud-Init``IP配置` IPv4 使用静态地址,IPv6 使用 `SLAAC` 自动配置,如下图所示。
`Cloud-Init``IP 配置` IPv4 使用 `静态` 地址,IPv6 使用 `SLAAC` 自动配置,如下图所示。
![CI网络配置](img/p04/vm_ci_network_slaac.jpeg)
### 4.2.手动配置 IPv6
当主路由配置了 ULA IPv6 网段,且希望指定内网 DNS 服务器的 ULA IPv6 地址时,需要调整 `Cloud-Init` 参数。
当主路由配置了 IPv6 ULA 网段,且希望指定内网 DNS 服务器的 IPv6 ULA 地址时,需要调整 `Cloud-Init` 参数。
本文 ULA IPv6 演示地址为 `fdac::/64` `DNS服务器``IP配置` 参数调整如下。
本文 IPv6 ULA 演示地址`fdac::/64` `DNS 服务器``IP 配置` 参数调整如下。
|参数|值|说明|
|--|--|--|
|DNS服务器|`172.16.1.1 fdac::1 127.0.0.1`|本机DNS服务器,用空格隔开|
|DNS域|`fox.internal`|内网域名(可选)|
|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 地址。
`DNS 服务器` 参数中需要加入主路由 LAN 口 IPv6 ULA 地址。
![CI网络配置](img/p04/vm_ci_dns_ula.jpeg)
`IP配置` 参数,IPv4 使用静态地址,IPv6 同样使用静态地址,如下图所示。
`IP 配置` 参数,IPv4 使用 `静态` 地址,IPv6 同样使用 `静态` 地址,如下图所示。
IPv6 使用静态地址后,并不影响虚拟机通过主路由获取公网 GUA IPv6 地址。
IPv6 使用 `静态` 地址后,并不影响虚拟机通过主路由获取 IPv6 GUA 公网地址。
![CI网络配置](img/p04/vm_ci_network_static.jpeg)
## 5.设置备注信息
进入左侧虚拟机 `概要` 页面,修改虚拟机的备注信息。
```bash
### 服务器信息
- 系统: Debian 13
- 用途: 内网服务器 ( 模板 )
- 自启: 否
- 用户: fox
- IPv4 172.16.1.250/24
- IPv6 SLAAC
```
![虚拟机备注](img/p04/vm_notes.jpg)
至此,模板虚拟机创建完成,可将该虚拟机开机。
+175 -210
View File
@@ -1,31 +1,29 @@
## 1.配置系统
在上一篇文章 [04.PVE创建模板虚拟机](./04.PVE创建模板虚拟机.md) 中,已经创建好了用于制作虚拟机模板的模板虚拟机。
在上一篇文章 [04.PVE创建模板虚拟机](./04.PVE创建模板虚拟机.md) 中,已经创建好了用于制作 `虚拟机模板` 的虚拟机。
并调整了模板虚拟机的硬件参数、配置参数,但还需对 Debian 系统进行调整
此时将模板虚拟机开机后,使用 `Cloud-Init` 中设置的账号密码进行登录。
此时将该虚拟机开机后,使用 `Cloud-Init` 中设置的账号密码进行登录
### 1.1.配置 SSH
因为 Debian 的云镜像默认使用 SSH 秘钥登录,因此切换到左侧菜单的 `控制台` 进行登录。
![登录Debian操作系统](img/p05/os_login.jpeg)
![登录Debian操作系统](img/p05/os_login.jpg)
在虚拟机的命令行界面,使用 `vim` 编辑器编辑 `sshd` 服务的配置文件,执行以下命令。
`vim` 编辑器常用操作如下:
- 编辑文件按下键盘 `i` 键,进入编辑模式。
- 编辑文件按下键盘 `i` 键,进入编辑模式。
- 保存文件按下键盘 `Esc` 键,退出编辑模式,再输入组合键 `:wq` 即可保存。
- 保存文件按下键盘 `Esc` 键,退出编辑模式,再输入组合键 `:wq` 即可保存。
```bash
## 编辑 ssh 配置文件
$ sudo vim /etc/ssh/sshd_config.d/server_sshd.conf
## 编辑 SSH 配置文件
$ sudo vim /etc/ssh/sshd_config.d/10-server-sshd.conf
```
在配置文件中添加以下配置项,并保存。
在配置文件中输入以下内容,并保存。
```bash
## SSH 配置项
@@ -39,87 +37,35 @@ UseDNS no
修改完成后,需要重启 SSH 服务。
```bash
## 重启 sshd
## 重启 ssh.service
$ sudo systemctl restart ssh.service
```
### 1.2.配置软件源
使用 SSH 工具登录模板虚拟机,常用 SSH 工具请参阅 [01.PVE系统安装](./01.PVE系统安装.md) 。
使用终端工具登录模板虚拟机,常用终端工具请参阅 [01.PVE系统安装](./01.PVE系统安装.md) 。
首先需要对 Debian 系统软件源进行修改,这里使用 [USTC](http://mirrors.ustc.edu.cn/help/debian.html) 镜像站作为演示。
首先需要对 Debian 系统软件源进行修改,这里使用 [USTC](https://mirrors.ustc.edu.cn) 镜像站作为演示。
当系统版本发生变化时,请参考使用 snullp 大叔开发的 [配置生成器](https://mirrors.ustc.edu.cn/repogen/) 。
当系统版本发生变化时,请参考 USTC 镜像站的官方说明 [USTC Mirror Help - Debian](https://mirrors.ustc.edu.cn/help/debian.html) 。
Debian12 云镜像的软件源配置采用了 `DEB822` 格式,新版 `sources.list` 配置文件内容如下
使用如下命令对 `debian.sources` 配置文件进行修改
```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
## 系统软件源配置项
## 配置 Debian 系统默认软件源脚本
$ sudo tee /etc/apt/sources.list.d/debian.sources >/dev/null <<'EOF'
Types: deb
URIs: https://mirrors.ustc.edu.cn/debian
Suites: bookworm bookworm-updates bookworm-backports
Suites: trixie trixie-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb
URIs: https://mirrors.ustc.edu.cn/debian-security
Suites: bookworm-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF
```
为了防止 `Cloud-Init` 服务意外修改软件源配置,需要添加文件保护,执行以下命令。
@@ -137,85 +83,144 @@ $ lsattr /etc/apt/sources.list.d/debian.sources
### 1.3.安装软件
软件源设置完成后,需要更新系统,逐行执行以下命令。
软件源设置完成后,需要更新系统,执行以下命令。
```bash
## 清理不必要的包
$ sudo apt clean && sudo apt autoclean && sudo apt autoremove --purge
$ sudo bash -c 'apt clean && apt autoclean && apt autoremove --purge'
## 更新软件源
$ sudo apt update
## 更新系统
$ sudo apt dist-upgrade
$ sudo apt full-upgrade
```
接下来安装系统必要软件,安装 `iperf3` 后,系统将询问是否将其作为系统服务开机自启,选择 `no` 即可。
```bash
## 安装系统软件
$ sudo apt install qemu-guest-agent zsh git htop tmux cron nftables sshguard
$ sudo apt install btop cronie curl git logrotate neovim qemu-guest-agent tmux zsh
## 安装系统自动更新工具
$ sudo apt install unattended-upgrades powermgmt-base python3-gi
$ sudo apt install powermgmt-base unattended-upgrades
## 安装网络工具
$ sudo apt install iperf iperf3 iftop lsof ldnsutils
$ sudo apt install knot-dnsutils lsof nftables sshguard
## 安装网络检测工具(可选)
$ sudo apt install iftop iperf iperf3
## 刷新 systemd 日志分类索引
$ sudo journalctl --update-catalog
## 写入磁盘
$ sudo sync
```
### 1.4.调整内核参数
### 1.4.配置 ZSH
由于该 Debian 虚拟机模板将用于克隆内网 DNS 服务器,因此需要调整内核参数来简单优化性能
`Zsh` 是比 `Bash` 好用的 `Shell` 程序,使用 `oh-my-zsh` 进行配置
使用 `vim` 编辑器编辑 **内核参数** 配置文件,执行以下命令。
```bash
## 安装 oh-my-zsh
$ sh -c "$(curl -fsSL https://install.ohmyz.sh)"
## 询问是否切换默认 shell,输入 Y
#### 示例输出
Time to change your default shell to zsh:
Do you want to change your default shell to zsh? [Y/n] y
## oh-my-zsh 安装后清理
$ cd && rm -rvf .bash_history .zsh_history .shell.pre-oh-my-zsh
```
### 1.5.配置默认编辑器
Debian 系统默认编辑器为 `nano` ,推荐将默认编辑器更换为 `neovim` ,执行以下命令。
```bash
## 修改系统默认编辑器(选择 nvim 所在条目,即可将 neovim 设为默认编辑器)
$ sudo update-alternatives --config editor
#### 系统默认编辑器示例输出
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/nano 40 manual mode
2 /usr/bin/nvim 30 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 15 manual mode
Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/nvim to provide /usr/bin/editor (editor) in manual mode
```
若需完全禁用 `neovim` 鼠标功能;即关闭所有鼠标交互,右键行为完全交给终端 / 控制台处理,需执行以下命令。
```bash
## 创建 nvim 配置目录
$ sudo mkdir -p /etc/xdg/nvim
## 配置 nvim 鼠标交互行为脚本
$ sudo tee /etc/xdg/nvim/sysinit.vim >/dev/null <<'EOF'
set mouse=
EOF
```
### 1.6.调整内核参数
由于该虚拟机将作为内网 DNS 服务器的克隆模板,需调整内核参数以优化性能。
编辑 **内核参数** 配置文件,执行以下命令。
```bash
## 编辑 内核参数 配置文件
$ sudo vim /etc/sysctl.d/99-sysctl.conf
```
在配置文件末尾输入以下配置项,注意配置中间的空格。
```bash
# This configuration file is customized by fox
# Optimize system parameters
$ sudo tee /etc/sysctl.d/99-sysctl.conf >/dev/null <<'EOF'
# This configuration file is customized by fox,
# Optimize sysctl parameters for local TPL server.
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.core.netdev_budget = 600
net.core.netdev_max_backlog = 4096
net.ipv4.igmp_max_memberships = 100
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_challenge_ack_limit = 1000
net.ipv4.tcp_fastopen = 3
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.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_notsent_lowat = 131072
net.ipv4.tcp_rmem = 4096 524288 16777216
net.ipv4.tcp_wmem = 4096 524288 16777216
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.default.use_tempaddr = 0
EOF
```
保存该配置文件后,重启系统或者执行以下命令让配置生效。
配置文件编辑完成后,重启系统或者执行以下命令让配置生效。
```bash
## 让内核参数生效
$ sudo sysctl -f
$ sudo sysctl --system
```
### 1.5.调整系统时间
### 1.7.调整系统时间
默认情况下 Debian 云镜像的系统时间需要调整,执行以下命令将系统时区设置为中国时区。
默认情况下 Debian 云镜像的系统时间需要调整,执行以下命令将系统时区设置为中国时区。
```bash
## 设置系统时区
@@ -225,35 +230,31 @@ $ sudo timedatectl set-timezone Asia/Shanghai
$ date -R
#### 系统时间示例输出
Mon, 26 Jun 2023 16:16:16 +0800
Mon, 10 Aug 2026 11:23:56 +0800
```
Debian 云镜像默认使用 `systemd-timesyncd.service` 同步时间,且需要调整为使用国内 NTP 服务器。
调整 NTP 服务器参数,逐行执行以下命令。
调整 NTP 服务器参数,执行以下命令。
```bash
## 创建 NTP 配置文件的文件夹
$ sudo mkdir /etc/systemd/timesyncd.conf.d
## 创建 NTP 配置目录
$ sudo mkdir -p /etc/systemd/timesyncd.conf.d
## 创建 NTP 配置文件
$ sudo vim /etc/systemd/timesyncd.conf.d/server_ntp.conf
```
在配置文件中添加以下配置项,并保存。
```bash
## NTP 配置项
$ sudo tee /etc/systemd/timesyncd.conf.d/10-server-ntp.conf >/dev/null <<'EOF'
# This configuration file is customized by fox,
# Optimize system NTP server.
[Time]
NTP=ntp.tencent.com ntp.aliyun.com
NTP=ntp.aliyun.com ntp.tencent.com cn.pool.ntp.org
EOF
```
保存该配置文件后,需重启 `systemd-timesyncd.service` 服务,并再次检查系统 NTP 服务器地址。
配置文件编辑完成后,需重启 `systemd-timesyncd.service` 服务,并再次检查系统 NTP 服务器地址。
```bash
## 重启 chrony 服务
## 重启 systemd-timesyncd.service
$ sudo systemctl restart systemd-timesyncd.service
## 检查系统 NTP 服务器
@@ -265,24 +266,25 @@ $ sudo systemctl status systemd-timesyncd.service
```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
Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-08-10 11:24:43 CST; 5s ago
Invocation: 95cd4555913e45d8a7235347cf3d571a
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
Main PID: 6516 (systemd-timesyn)
Status: "Contacted time server 203.107.6.88:123 (ntp.aliyun.com)."
Tasks: 2 (limit: 2189)
Memory: 1.6M (peak: 2.3M)
CPU: 136ms
CGroup: /system.slice/systemd-timesyncd.service
└─18829 /lib/systemd/systemd-timesyncd
└─6516 /usr/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.
Aug 10 11:24:43 TPL01 systemd[1]: Starting systemd-timesyncd.service - Network Time Synchronization...
Aug 10 11:24:43 TPL01 systemd[1]: Started systemd-timesyncd.service - Network Time Synchronization.
Aug 10 11:24:43 TPL01 systemd-timesyncd[6516]: Contacted time server 203.107.6.88:123 (ntp.aliyun.com).
Aug 10 11:24:43 TPL01 systemd-timesyncd[6516]: Initial clock synchronization to Mon 2026-08-10 11:24:43.569158 CST.
```
### 1.6.配置自动更新
### 1.8.配置自动更新
配置 Debian 云镜像的系统自动更新,与配置 PVE 系统自动更新方法基本一致,参阅 [03.PVE系统调整](./03.PVE系统调整.md) 。
@@ -299,50 +301,39 @@ $ sudo systemctl status apt-daily-upgrade.timer
## 配置自动更新策略
$ sudo dpkg-reconfigure -plow unattended-upgrades
## 选择 “是” (“YES”)
#### 系统自动更新示例输出
Creating config file /etc/apt/apt.conf.d/20auto-upgrades with new version
## 选择 “是”
<Yes>
```
接下来调整 apt 的 `20auto-upgrades` 配置文件。
```bash
## 编辑 20auto-upgrades 配置文件
$ sudo vim /etc/apt/apt.conf.d/20auto-upgrades
```
删除里面全部内容,添加以下配置项,并保存。
开始调整 `20auto-upgrades` 配置文件。
配置文件中,用来控制更新周期的参数为 `APT::Periodic::Unattended-Upgrade` `3` 表示更新周期为 `3` 天。
```bash
## 系统更新周期配置项
## 编辑 20auto-upgrades 配置文件
$ sudo tee /etc/apt/apt.conf.d/20auto-upgrades >/dev/null <<'EOF'
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "3";
APT::Periodic::AutocleanInterval "1";
APT::Periodic::CleanInterval "1";
EOF
```
进一步调整 apt 的 `50unattended-upgrades` 配置文件。
进一步调整 `50unattended-upgrades` 配置文件。
```bash
## 编辑 50unattended-upgrades 配置文件
$ sudo vim /etc/apt/apt.conf.d/50unattended-upgrades
$ sudo editor /etc/apt/apt.conf.d/50unattended-upgrades
```
根据 “注释” 中相关说明,调整配置文件
因为该配置文件很长,完整的配置文件可查看 [debian_50unattended_upgrades.conf](./src/debian_50unattended_upgrades.conf) 以便对比。
因为该配置文件很长,完整的配置文件可查看 [debian_tpl_50unattended_upgrades.conf](./src/debian/debian_tpl_50unattended_upgrades.conf) 以便对比
```bash
## 删除以下行前面的注释符 // ,代表启用
"origin=Debian,codename=${distro_codename}-updates";
## 在配置文件末尾增加以下配置项,代表启用,并调整参数
## 在配置文件末尾增加以下内容,代表启用,并调整参数
Unattended-Upgrade::AutoFixInterruptedDpkg "true";
@@ -354,18 +345,18 @@ Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:30";
Unattended-Upgrade::Automatic-Reboot-Time "03:00";
```
系统自动更新配置文件修改完成后,需要重设自动更新定时器,执行以下命令。
系统自动更新配置文件修改完成后,需调整自动更新定时器,执行以下命令。
```bash
## 配置系统定时器
$ sudo systemctl edit apt-daily-upgrade.timer
```
根据配置文件中的提示,在中间空白处填入以下配置项
根据配置文件中的提示,在中间空白处填入以下内容
```bash
## 定时器配置项
@@ -379,7 +370,7 @@ RandomizedDelaySec=0
设置完成后,重启自动更新定时器并检查其状态,执行以下命令。
在输出结果中看到系统自动更新的触发时间为凌晨 `02:00` 则表示设置正确。
在输出结果中看到系统自动更新的触发时间为 `02:00` 则表示设置正确。
```bash
## 重启触发器
@@ -389,85 +380,59 @@ $ sudo systemctl restart apt-daily-upgrade.timer
$ sudo systemctl status apt-daily-upgrade.timer
```
### 1.7.配置定时任务
### 1.9.配置定时任务
本步骤为可选操作,主要设置系统定时重启。
```bash
## 创建本机定时重启任务
$ sudo tee /etc/cron.d/guest-os-reboot >/dev/null <<'EOF'
30 4 8,24 * * root /usr/sbin/shutdown --reboot now
EOF
## 设置定时任务文件权限
$ sudo chmod 0644 /etc/cron.d/guest-os-reboot
```
系统全局定时任务排期状态可使用以下命令进行查看。
```bash
## 查看系统定时任务
$ sudo crontab -l
## 编辑系统定时任务,编辑器选择 nano
$ sudo crontab -e
$ sudo cronnext -acl
```
在配置文件末尾,增加以下配置项。
```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.清理系统
### 1.10.清理系统
Debian 模板虚拟机已经配置完成,在将其转换为模板前需要对系统进行清理。
逐条执行以下命令,注意命令中的空格。
```bash
## 清理系统软件包
$ sudo apt clean && sudo apt autoclean && sudo apt autoremove --purge
$ sudo bash -c 'apt clean && apt autoclean && apt autoremove --purge'
## 清理系统缓存
$ sudo rm -rvf /var/cache/apt/* /var/lib/apt/lists/* /tmp/*
$ sudo bash -c 'find /var/cache/apt/ /var/lib/apt/lists/ /tmp/ -type f -print -delete'
## 重置机器标识符
$ sudo truncate -s 0 /etc/machine-id /var/lib/dbus/machine-id
## 清理系统日志
$ sudo find /var/log/ -type f | xargs sudo rm -rvf
$ sudo bash -c 'find /var/log/ -type f -print -delete'
## 清理命令历史记录文件
$ rm -rvf ~/.bash_history ~/.zsh_history
## 清理命令历史
$ history -c
## 关闭系统
$ sudo shutdown now
## 清理命令历史记录文件并关闭系统
$ rm -rvf ~/.bash_history ~/.zsh_history ~/.zcompdump* && history -c && sudo shutdown now
```
## 2.虚拟机转为模板
Debian 模板虚拟机关机后,进入 PVE 的 WEB 管理界面。
在模板虚拟机关机后,进入 PVE 的 WEB 管理界面。
在左侧虚拟机列表中,鼠标 **右键单击** Debian 模板虚拟机,在弹出的菜单中选择 `转换成模板`
在左侧虚拟机列表中,鼠标 **右键单击** 模板虚拟机,在弹出的菜单中选择 `转换成模板`
需要说明的是,虚拟机 `转换成模板` 的操作不可逆
需要说明的是,虚拟机 `转换成模板` 的操作具有不可逆
如果某些 Debian 系统配置项有问题,能在该模板克隆出来的新虚拟机中进行修改,或删除并重新制作模板
系统配置存在问题,能在该模板克隆的新虚拟机中修改,或删除现有模板并重新制作。
![虚拟机转模板](img/p05/vm_to_template.jpeg)
![虚拟机转模板](img/p05/vm_to_template.jpg)
至此 Debian 虚拟机模板制作完成。
+484
View File
@@ -0,0 +1,484 @@
## 1.克隆虚拟机
在上一篇文章 [05.PVE制作虚拟机模板](./05.PVE制作虚拟机模板.md) 中,已经制作好了虚拟机模板。
接下来将基于该模板克隆新虚拟机,并通过安装 DNS 服务器软件,完成内网 DNS 服务器的搭建。
鼠标 **右键单击** 虚拟机模板,在弹出的菜单中选择 `克隆`
![克隆虚拟机](img/p06/vm_clone.jpg)
在弹出的虚拟机克隆对话框中,根据实际情况及下方表格内容,修改虚拟机参数。
|参数|值|说明|
|--|--|--|
|目标节点|`node01`|当前 PVE 服务器节点|
|VM ID|`201`|可自定义,不能与现存虚拟机 `VM ID` 相同|
|名称|`DNS01`|可自定义,`Cloud-Init` 将使用该名称作为虚拟机 `hostname` |
|模式|`完整克隆`|选择虚拟机的克隆模式|
|目标存储|`local-lvm`|克隆出的虚拟机文件存储位置|
修改参数后,点击 `克隆` ,即可使用该模板克隆出新的虚拟机。
![克隆虚拟机参数](img/p06/vm_clone_vmid.jpeg)
## 2.调整 Cloud-Init
克隆出来的虚拟机的 `Cloud-Init` 参数默认与模板完全一致。
根据 **内部网络地址** 规划,内网 DNS 服务器 IPv4 地址规划如下:
- `172.16.1.2/24`
- `172.16.1.3/24`
因此需要调整新虚拟机的 `Cloud-Init` 参数。
- `IP配置` 中的 IPv4 地址参数为 `172.16.1.2/24` ,网关保持 `172.16.1.1` 不变。
- `IP配置` 中的 IPv6 地址参数为 `auto` ,网关保持为空。
需要注意的是,如果修改了 `用户` 参数,相当于新建了一个系统管理员,之前设置的 `oh-my-zsh` 需要在新管理员下重新设置。
![调整新虚拟机Cloud-Init](img/p06/vm_clone_ci_slaac.jpeg)
当主路由配置了 IPv6 ULA 网段,内网 DNS 服务器 IPv6 ULA 地址规划如下:
- `fdac::2/64`
- `fdac::3/64`
此时需进一步调整新虚拟机的 `Cloud-Init` 参数,让该虚拟机使用指定的 IPv6 ULA 地址,参数如下。
![调整新虚拟机Cloud-Init](img/p06/vm_clone_ci_static.jpeg)
## 3.调整配置参数
在 [04.PVE创建模板虚拟机](./04.PVE创建模板虚拟机.md) 中提到过,新虚拟机需要修改配置参数才能自动启动。
进入左侧虚拟机 `选项` 页面,将虚拟机 `开机自启动` 参数设置为 `是`
![克隆虚拟机自动启动](img/p06/vm_clone_autostart.jpeg)
鼠标 **双击** `启动/关机顺序` 选项,可调整虚拟机的自动开机参数。
`启动/关机顺序``2` ,表示该虚拟机第 `2` 个启动,倒数第 `2` 个关机。
`启动延时``15` ,表示该虚拟机启动后,延迟 `15` 秒再启动下一个虚拟机。
![克隆虚拟机自动启动顺序](img/p06/vm_clone_autostart_order.jpeg)
## 4.调整系统端口
设置完成后,将该虚拟机开机,使用终端工具登录,并执行以下命令检查端口占用。
```bash
## 检查 53 端口占用
$ sudo lsof -n -i :53
#### 端口占用示例输出
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd-r 357 systemd-resolve 18u IPv4 3293 0t0 UDP 127.0.0.53:domain
systemd-r 357 systemd-resolve 19u IPv4 3294 0t0 TCP 127.0.0.53:domain (LISTEN)
systemd-r 357 systemd-resolve 20u IPv4 3295 0t0 UDP 127.0.0.54:domain
systemd-r 357 systemd-resolve 21u IPv4 3296 0t0 TCP 127.0.0.54: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 tee /etc/systemd/resolved.conf.d/10-server-dns.conf >/dev/null <<'EOF'
# This configuration file is customized by fox,
# Optimize system resolve parameters for local DNS server.
[Resolve]
DNS=127.0.0.1
DNS=::1
DNSStubListener=no
EOF
```
配置文件编辑完成后,还需调整系统 `resolv.conf` 配置文件,执行以下命令。
```bash
## 创建 resolv.conf 软链接
$ sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
```
配置完成后,需重启 `systemd-resolved.service` 服务,并再次检查系统 `53` 端口占用。
```bash
## 重启 systemd-resolved.service
$ 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
## 创建 Adguard Home 定时重启任务
$ sudo tee /etc/cron.d/adguard-home-restart >/dev/null <<'EOF'
30 4 * * * root /usr/bin/snap restart adguard-home
EOF
## 设置定时任务文件权限
$ sudo chmod 0644 /etc/cron.d/adguard-home-restart
```
## 6. SmartDNS
若需使用 `SmartDNS` 代替 `Adguard Home` ,可使用 Debian 官方源进行安装,但其版本通常较为 “过时” 。
因此,更推荐使用其 Github 仓库中的最新稳定版进行安装,官方仓库请参阅 [pymumu/smartdns](https://github.com/pymumu/smartdns/releases) 。
多数情况下,`SmartDNS` 足以提供良好的 DNS 解析服务,但为了进一步优化 DNS 解析流程,推荐与 `Dnsmasq` 嵌套使用。
```bash
## 安装 Dnsmasq
$ sudo apt install dnsmasq
```
检查 `dnsmasq.service` 服务状态,确保该服务开机自启。
```bash
## 检查 dnsmasq.service
$ sudo systemctl status dnsmasq.service
## 设置 dnsmasq.service 开机自启
$ sudo systemctl enable dnsmasq.service
## 停止 dnsmasq.service
$ sudo systemctl stop dnsmasq.service
```
下载 `SmartDNS` 当前最新版本时,请根据系统架构选择合适的版本,执行以下命令。
```bash
## 下载 SmartDNS 安装包
$ curl -LR https://github.com/pymumu/smartdns/releases/download/Release48.4/smartdns.1.2026.08.05-0921.x86_64-linux-all.tar.gz | tar -xz -C /tmp
## 安装 SmartDNS
$ sudo /tmp/smartdns/install -i
```
后续 `SmartDNS` 推出新版本需原位升级时:先下载最新版本,再将以下命令替代原安装命令执行,升级后现有配置不会丢失。
```bash
## 升级 SmartDNS
$ sudo /tmp/smartdns/install -U
```
修改 `SmartDNS` 配置之前,需检查 `smartdns.service` 服务状态,确保该服务开机自启。
```bash
## 检查 smartdns.service
$ sudo systemctl status smartdns.service
## 设置 smartdns.service 开机自启
$ sudo systemctl enable smartdns.service
```
### 6.1. SmartDNS 附加配置
本步骤为可选操作,通过安装 `SmartDNS` 附加配置文件,以达到屏蔽广告或加速中国境内域名解析速度的目的。
若需使用 `SmartDNS` 屏蔽广告,则需下载广告规则配置文件。
```bash
## 创建 SmartDNS 配置目录
$ sudo mkdir -p /etc/smartdns.d
## 下载广告规则配置文件
$ sudo curl -LR -o /etc/smartdns.d/anti-ad.smartdns.conf https://anti-ad.net/anti-ad-for-smartdns.conf
```
`SmartDNS` 的加速规则通过 `bash` 脚本安装,脚本生成的配置文件位于 `/etc/smartdns.d` 目录。
关于脚本的详细介绍,请参阅 [SmartDNS China List 安装脚本](https://gitee.com/callmer/smartdns_china_list_installer) 。
```bash
## 下载加速规则安装脚本
$ sudo curl -LR -o /usr/local/bin/smartdns-cnlist https://gitee.com/callmer/smartdns_china_list_installer/raw/main/smartdns-china-list-installer.sh
## 设置脚本可执行权限
$ sudo chmod +x /usr/local/bin/smartdns-cnlist
## 设置脚本文件防篡改
$ sudo chattr +i /usr/local/bin/smartdns-cnlist
## 执行脚本
$ sudo /usr/local/bin/smartdns-cnlist
```
### 6.2.定时任务
本步骤为可选操作,主要用于设置 `SmartDNS` 定时更新附加配置文件和定时重启。
若使用了 `SmartDNS` 加速规则的安装脚本,由于脚本自带服务重启功能,因此定时任务可设置如下。
```bash
## 创建 SmartDNS 规则更新任务
$ sudo tee /etc/cron.d/smartdns-rules-update >/dev/null <<'EOF'
20 9 * * * root /usr/bin/curl --retry-connrefused --retry 5 --retry-delay 5 --retry-max-time 60 -fsSLR -o /etc/smartdns.d/anti-ad.smartdns.conf https://anti-ad.net/anti-ad-for-smartdns.conf
30 9 * * * root /usr/local/bin/smartdns-cnlist
EOF
## 设置定时任务文件权限
$ sudo chmod 0644 /etc/cron.d/smartdns-rules-update
```
若仅需定时重启 `SmartDNS` 服务,可使用以下命令覆盖该定时任务文件。
```bash
## 创建 SmartDNS 规则更新任务
$ sudo tee /etc/cron.d/smartdns-rules-update >/dev/null <<'EOF'
20 9 * * * root /usr/bin/curl --retry-connrefused --retry 5 --retry-delay 5 --retry-max-time 60 -fsSLR -o /etc/smartdns.d/anti-ad.smartdns.conf https://anti-ad.net/anti-ad-for-smartdns.conf
30 9 * * * root /usr/bin/systemctl restart smartdns.service
EOF
## 设置定时任务文件权限
$ sudo chmod 0644 /etc/cron.d/smartdns-rules-update
```
### 6.3. SmartDNS 主配置
`SmartDNS` 配置较为复杂,可按需制定各类 DNS 请求规则,建议先查阅官方提供的 [配置指导](https://pymumu.github.io/smartdns/config/basic-config/) 和 [配置选项](https://pymumu.github.io/smartdns/configuration/) 。
修改 `SmartDNS` 主配置文件之前,建议关闭 `SmartDNS` 并清理 DNS 缓存文件。
```bash
## 关闭 smartdns.service
$ sudo systemctl stop smartdns.service
## 清理进程标识文件
$ sudo rm -rvf /var/run/smartdns.pid /run/smartdns.pid
```
`SmartDNS` 的主配置文件一般位于 `/etc/smartdns` 目录下,修改配置文件之前,执行以下命令将其备份。
```bash
## 备份 SmartDNS 主配置文件
$ sudo mv /etc/smartdns/smartdns.conf /etc/smartdns/smartdns.conf.bak
```
创建 `SmartDNS` 主配置文件,执行以下命令。
```bash
## 创建 SmartDNS 主配置文件
$ sudo editor /etc/smartdns/smartdns.conf
```
在编辑器对话框中输入以下内容,并保存。
**额外说明:**
- `SmartDNS` 端口监听参数为 `6053@lo` WebUI 端口监听参数为 `5380` ,请根据实际情况进行调整
- WebUI 默认用户名密码为 `admin/password` ,若需公网访问建议将默认密码修改为强密码
```bash
# This configuration file is customized by fox,
# Optimize SmartDNS parameters for local DNS server.
#
# For use common DNS server as upstream DNS server,
# please modify 'server' parameter according to
# your network environment.
#
# eg:
# server 223.5.5.5
# server 180.184.1.1
# server 119.29.29.29
# server 114.114.114.114
# server 2402:4e00::
# server 2400:3200::1
conf-file /etc/smartdns.d/*.conf
log-level notice
log-console yes
log-size 16M
log-num 8
audit-enable yes
audit-SOA yes
audit-size 16M
audit-num 8
plugin smartdns_ui.so
smartdns-ui.ip https://[::]:5380
smartdns-ui.token-expire 1800
smartdns-ui.max-query-log-age 604800
bind [::]:6053@lo
bind-tcp [::]:6053@lo
cache-size 32768
max-query-limit 1024
max-reply-ip-num 16
prefetch-domain yes
serve-expired yes
serve-expired-ttl 129600
serve-expired-reply-ttl 30
serve-expired-prefetch-time 28800
rr-ttl-min 60
rr-ttl-max 28800
rr-ttl-reply-max 14400
server-tcp 180.184.1.1 -bootstrap-dns
server-tcp 101.226.4.6 -bootstrap-dns
server-tcp 2400:3200::1 -bootstrap-dns
server-tcp 2400:3200:baba::1 -bootstrap-dns
server-tls dot.pub
server-tls dns.alidns.com
server-https https://doh.pub/dns-query
server-https https://dns.alidns.com/dns-query
server-h3 h3://dns.alidns.com/dns-query -fallback
server-https https://doh.360.cn/dns-query -fallback
```
`SmartDNS` 主配置文件配置完成后,执行以下命令修正文件权限
```bash
## 修正 SmartDNS 主配置文件权限
$ sudo chmod 0640 /etc/smartdns/smartdns.conf
```
### 6.4.配置 Dnsmasq
`Dnsmasq` 的主配置文件一般位于 `/etc` 目录下,修改配置文件之前,执行以下命令。
```bash
## 创建 Dnsmasq 配置目录
$ sudo mkdir -p /etc/dnsmasq.d
```
创建 `Dnsmasq` 主配置文件,执行以下命令。
```bash
## 创建 Dnsmasq 主配置文件
$ sudo editor /etc/dnsmasq.d/10-server-dnsmasq.conf
```
在编辑器对话框中输入以下内容,并保存。
**额外说明:**
- 请根据系统内存使用情况,调整缓存参数 `cache-size`
- 配置文件中监听的网卡名为 `eth0` ,请根据实际情况进行调整
- 配置文件中内网域名为 `fox.internal` ,请根据实际情况进行调整
- `Dnsmasq` 有且仅有 `SmartDNS` 作为上游 DNS 服务器
```bash
# This configuration file is customized by fox,
# Optimize dnsmasq parameters for local DNS server.
# Main Config
log-facility=/var/log/dnsmasq.log
log-async=20
cache-size=2048
max-cache-ttl=7200
fast-dns-retry=1800
interface=eth0
bind-dynamic
bogus-priv
domain-needed
no-hosts
no-ident
no-resolv
no-round-robin
rebind-localhost-ok
stop-dns-rebind
rebind-domain-ok=/fox.internal/
# DNS Filter
local=/alt/
local=/bind/
local=/example/
local=/home.arpa/
local=/internal/
local=/invalid/
local=/lan/
local=/local/
local=/localhost/
local=/onion/
local=/test/
# DNS Server
server=/fox.internal/172.16.1.1
server=127.0.0.1#6053
```
## 7.清理系统
内网 DNS 服务器已部署配置完毕,正式投产前,可按需对系统进行清理优化。
```bash
## 清理系统软件包
$ sudo bash -c 'apt clean && apt autoclean && apt autoremove --purge'
## 清理系统缓存
$ sudo bash -c 'find /var/cache/apt/ /var/lib/apt/lists/ /tmp/ -type f -print -delete'
## 清理 SmartDNS 缓存、持久化数据文件(WebUI 自定义密码存储于此文件)
$ sudo bash -c 'find /var/cache/smartdns/ /var/lib/smartdns/ -type f -print -delete'
## 清理系统日志
$ sudo bash -c 'find /var/log/ -type f -print -delete'
## 清理命令历史记录文件并关闭系统
$ rm -rvf ~/.bash_history ~/.zsh_history ~/.zcompdump* && history -c && sudo shutdown now
```
-125
View File
@@ -1,125 +0,0 @@
## 1.克隆虚拟机
在上一篇文章 [05.PVE制作虚拟机模板](./05.PVE制作虚拟机模板.md) 中,已经制作好了虚拟机模板。
接下来将使用该模板克隆出新的虚拟机,并安装 Adguard Home 作为内网的 DNS 服务器。
鼠标 **右键单击** 虚拟机模板,在弹出的菜单中选择 `克隆`
![克隆虚拟机](img/p06/vm_clone.jpeg)
在弹出的虚拟机克隆对话框中,根据实际情况及下方表格内容,修改虚拟机参数。
|参数|值|说明|
|--|--|--|
|目标节点|`node01`|当前 PVE 服务器节点|
|VM ID|`201`|可自定义,不能与现存虚拟机 `VM ID` 相同|
|名称|`DNS01`|可自定义,`Cloud-Init` 将使用该名称作为虚拟机 `hostname` |
|模式|`完整克隆`|选择虚拟机的克隆模式|
|目标存储|`local-lvm`|克隆出的虚拟机文件存储位置|
修改参数后,点击 `克隆` ,即可使用该模板克隆出新的虚拟机。
![克隆虚拟机参数](img/p06/vm_clone_vmid.jpeg)
## 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` 需要在新管理员下重新设置。
![调整新虚拟机Cloud-Init](img/p06/vm_clone_ci_slaac.jpeg)
当主路由配置了 ULA IPv6 网段,且指定了内网 DNS 服务器的 ULA IPv6 地址时,参数如下。
![调整新虚拟机Cloud-Init](img/p06/vm_clone_ci_static.jpeg)
## 3.调整配置参数
在 [04.PVE创建模板虚拟机](./04.PVE创建模板虚拟机.md) 中提到过,新虚拟机需要修改配置参数才能自动启动。
进入左侧虚拟机 `选项` 页面,将虚拟机 `开机自启动` 参数设置为 `是`
![克隆虚拟机自动启动](img/p06/vm_clone_autostart.jpeg)
鼠标 **双击** `启动/关机顺序` 选项,可调整虚拟机的自动开机参数。
`启动/关机顺序``2` ,表示该虚拟机第 `2` 个启动,倒数第 `2` 个关机。
`启动延时``10` ,表示该虚拟机在 PVE 启动后,延迟 `10` 秒后自动启动。
![克隆虚拟机自动启动顺序](img/p06/vm_clone_autostart_order.jpeg)
## 4.安装 Adguard Home
设置完成后,将该虚拟机开机,并使用 SSH 工具登录。
Adguard Home 将采用 `snap` 形式安装,逐行执行以下命令。
```bash
## 安装 snap
$ sudo apt install snapd
## 安装 Adguard Home
$ sudo snap install adguard-home
```
### 4.1. 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
```
### 4.2. Snap 定时任务
本步骤为可选操作,主要设置定时重启 Snap 服务。
```bash
## 查看系统定时任务
$ sudo crontab -l
## 编辑系统定时任务,编辑器选择 nano
$ sudo crontab -e
```
在配置文件末尾,增加以下配置项。
```bash
## 定时任务配置项
0 5 * * * /usr/bin/snap restart adguard-home
```
## 5.配置 Adguard Home
关于 Adguard Home 配置相关内容,请参阅 [Adguard Home 折腾手记](https://gitee.com/callmer/agh_toss_notes) 。
至此,新虚拟机已配置完成,可作为内网 DNS 服务器使用。
+762
View File
@@ -0,0 +1,762 @@
## 0.前期准备
某些业务场景下需要构建安全可靠的网络隧道,来打通异地内网环境或从外部访问内网的私有资源。
经过实际测试,当 TS 服务器具有 IPv6 GUA 地址时,能稳定建立隧道。
本文将使用 Debian 云镜像以及 `Tailscale` 来制作内网组网服务器。
对于虚拟机创建部分,请参考 [04.PVE创建模板虚拟机](./04.PVE创建模板虚拟机.md) ,其他 `Cloud-Init` 相关参数如下。
|参数|值|说明|
|--|--|--|
|虚拟机名称|`SVR01`| TS 服务器 `主机名` |
|DNS 域|`fox.internal`| TS 服务器 `Cloud-Init` |
|DNS 服务器|`172.16.1.1`| TS 服务器 `Cloud-Init` |
|IPv4|`172.16.1.4/24`| TS 服务器 `Cloud-Init` |
|IPv4 网关|`172.16.1.1`| TS 服务器 `Cloud-Init` |
|IPv6|`SLAAC`| TS 服务器 `Cloud-Init` |
## 1.配置系统
由于 TS 服务器具备路由功能,所以在配置方法和系统参数方面与内网 DNS 服务器有一些区别。
### 1.1.配置 SSH
与配置 Debian 模板虚拟机时一样,首先需要调整系统的 SSH 登录权限参数。
在虚拟机的命令行界面,使用 `vim` 编辑器编辑 `sshd` 服务的配置文件,执行以下命令。
```bash
## 编辑 SSH 配置文件
$ sudo vim /etc/ssh/sshd_config.d/10-server-sshd.conf
```
在配置文件中输入以下内容,并保存。
```bash
## SSH 配置项
PasswordAuthentication yes
PermitEmptyPasswords no
UseDNS no
```
修改完成后,需要重启 SSH 服务。
```bash
## 重启 ssh.service
$ sudo systemctl restart ssh.service
```
### 1.2.配置软件源
使用如下命令对 `debian.sources` 配置文件进行修改。
```bash
## 配置 Debian 系统默认软件源脚本
$ sudo tee /etc/apt/sources.list.d/debian.sources >/dev/null <<'EOF'
Types: deb
URIs: https://mirrors.ustc.edu.cn/debian
Suites: trixie trixie-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb
URIs: https://mirrors.ustc.edu.cn/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF
```
为了防止 `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 bash -c 'apt clean && apt autoclean && apt autoremove --purge'
## 更新软件源
$ sudo apt update
## 更新系统
$ sudo apt full-upgrade
```
接下来安装系统必要软件,安装 `iperf3` 后,系统将询问是否将其作为系统服务开机自启,选择 `no` 即可。
```bash
## 安装系统软件
$ sudo apt install btop cronie curl git logrotate neovim qemu-guest-agent tmux zsh
## 安装系统自动更新工具
$ sudo apt install powermgmt-base unattended-upgrades
## 安装网络工具
$ sudo apt install conntrack dnsmasq ethtool knot-dnsutils lsof networkd-dispatcher nftables sshguard
## 安装 TS
$ curl -fsSL https://tailscale.com/install.sh | sh
## 安装网络检测工具(可选)
$ sudo apt install iftop iperf iperf3
## 刷新 systemd 日志分类索引
$ sudo journalctl --update-catalog
## 写入磁盘
$ sudo sync
```
### 1.4.配置 ZSH
`Zsh` 是比 `Bash` 好用的 `Shell` 程序,使用 `oh-my-zsh` 进行配置。
```bash
## 安装 oh-my-zsh
$ sh -c "$(curl -fsSL https://install.ohmyz.sh)"
## 询问是否切换默认 shell,输入 Y
#### 示例输出
Time to change your default shell to zsh:
Do you want to change your default shell to zsh? [Y/n] y
## oh-my-zsh 安装后清理
$ cd && rm -rvf .bash_history .zsh_history .shell.pre-oh-my-zsh
```
### 1.5.配置默认编辑器
Debian 系统默认编辑器为 `nano` ,推荐将默认编辑器更换为 `neovim` ,执行以下命令。
```bash
## 修改系统默认编辑器(选择 nvim 所在条目,即可将 neovim 设为默认编辑器)
$ sudo update-alternatives --config editor
#### 系统默认编辑器示例输出
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/nano 40 manual mode
2 /usr/bin/nvim 30 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 15 manual mode
Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/nvim to provide /usr/bin/editor (editor) in manual mode
```
若需完全禁用 `neovim` 鼠标功能;即关闭所有鼠标交互,右键行为完全交给终端 / 控制台处理,需执行以下命令。
```bash
## 创建 nvim 配置目录
$ sudo mkdir -p /etc/xdg/nvim
## 配置 nvim 鼠标交互行为脚本
$ sudo tee /etc/xdg/nvim/sysinit.vim >/dev/null <<'EOF'
set mouse=
EOF
```
### 1.6.调整内核模块
编辑 **内核模块** 配置文件,执行以下命令。
```bash
## 创建 内核模块 配置文件
$ sudo tee /etc/modules-load.d/10-server-modules.conf >/dev/null <<'EOF'
# This configuration file is customized by fox,
# Optimize netfilter related modules at system boot.
nf_conntrack
EOF
```
### 1.7.调整内核参数
编辑 **内核参数** 配置文件,执行以下命令。
```bash
## 编辑 内核参数 配置文件
$ sudo tee /etc/sysctl.d/99-sysctl.conf >/dev/null <<'EOF'
# This configuration file is customized by fox,
# Optimize sysctl parameters for local TS server.
kernel.panic = 20
kernel.panic_on_oops = 1
net.core.default_qdisc = fq_pie
net.ipv4.tcp_congestion_control = bbr
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.default.forwarding = 1
# Other adjustable system parameters
net.core.netdev_budget = 800
net.core.netdev_max_backlog = 8192
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.igmp_max_memberships = 256
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_notsent_lowat = 131072
net.ipv4.tcp_rmem = 4096 1048576 67108864
net.ipv4.tcp_wmem = 4096 1048576 67108864
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.default.use_tempaddr = 0
net.netfilter.nf_conntrack_acct = 1
net.netfilter.nf_conntrack_checksum = 1
net.netfilter.nf_conntrack_tcp_timeout_established = 7440
EOF
```
配置文件编辑完成后,重启系统或者执行以下命令让配置生效。
```bash
## 让内核参数生效
$ sudo sysctl --system
```
### 1.8.调整系统时间
默认情况下 Debian 云镜像的系统时间需要调整,执行以下命令将系统时区设置为中国时区。
```bash
## 设置系统时区
$ sudo timedatectl set-timezone Asia/Shanghai
## 检查系统时间
$ date -R
```
Debian 云镜像默认使用 `systemd-timesyncd.service` 同步时间,且需要调整为使用国内 NTP 服务器。
调整 NTP 服务器参数,执行以下命令。
```bash
## 创建 NTP 配置目录
$ sudo mkdir -p /etc/systemd/timesyncd.conf.d
## 创建 NTP 配置文件
$ sudo tee /etc/systemd/timesyncd.conf.d/10-server-ntp.conf >/dev/null <<'EOF'
# This configuration file is customized by fox,
# Optimize system NTP server.
[Time]
NTP=ntp.aliyun.com ntp.tencent.com cn.pool.ntp.org
EOF
```
配置文件编辑完成后,需重启 `systemd-timesyncd.service` 服务,并再次检查系统 NTP 服务器地址。
```bash
## 重启 systemd-timesyncd.service
$ sudo systemctl restart systemd-timesyncd.service
## 检查系统 NTP 服务器
$ sudo systemctl status systemd-timesyncd.service
```
### 1.9.配置自动更新
配置系统自动更新策略,执行以下命令,使用键盘 `左右方向键` 进行选择,`回车键` 进行确认。
```bash
## 配置自动更新策略
$ sudo dpkg-reconfigure -plow unattended-upgrades
## 选择 “是”
<Yes>
```
开始调整 `20auto-upgrades` 配置文件。
配置文件中,用来控制更新周期的参数为 `APT::Periodic::Unattended-Upgrade` `5` 表示更新周期为 `5` 天。
```bash
## 编辑 20auto-upgrades 配置文件
$ sudo tee /etc/apt/apt.conf.d/20auto-upgrades >/dev/null <<'EOF'
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "5";
APT::Periodic::AutocleanInterval "1";
APT::Periodic::CleanInterval "1";
EOF
```
进一步调整 `50unattended-upgrades` 配置文件。
```bash
## 编辑 50unattended-upgrades 配置文件
$ sudo editor /etc/apt/apt.conf.d/50unattended-upgrades
```
因为该配置文件很长,完整的配置文件可查看 [debian_ts_50unattended_upgrades.conf](./src/debian/debian_ts_50unattended_upgrades.conf) 以便对比。
```bash
## 删除以下行前面的注释符 // ,代表启用
"origin=Debian,codename=${distro_codename}-updates";
## 添加 TS 更新项目
"origin=Tailscale,codename=${distro_codename},label=Tailscale";
## 在配置文件末尾增加以下内容,代表启用,并调整参数
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 "13:00";
```
系统自动更新配置文件修改完成后,需调整自动更新定时器,执行以下命令。
```bash
## 配置系统定时器
$ sudo systemctl edit apt-daily-upgrade.timer
```
根据配置文件中的提示,在中间空白处填入以下内容。
```bash
## 定时器配置项
[Timer]
OnCalendar=
OnCalendar=12:00
RandomizedDelaySec=0
```
设置完成后,重启自动更新定时器并检查其状态,执行以下命令。
在输出结果中,看到系统自动更新的触发时间为 `12:00` 则表示设置正确。
```bash
## 重启触发器
$ sudo systemctl restart apt-daily-upgrade.timer
## 再次检查触发器状态
$ sudo systemctl status apt-daily-upgrade.timer
```
### 1.10.配置防火墙
修改防火墙配置之前,需检查 `nftables.service` 服务状态,确保该服务开机自启。
```bash
## 检查 nftables.service
$ sudo systemctl status nftables.service
## 设置 nftables.service 开机自启
$ sudo systemctl enable nftables.service
```
由于防火墙规则内容较多,请打开文件 [debian_ts_nftables.conf](./src/debian/debian_ts_nftables.conf) ,复制全文内容,完整替换 `nftables` 配置文件中的现有配置。
```bash
## 编辑 nftables 配置文件
$ sudo editor /etc/nftables.conf
```
配置完成后,先检查防火墙规则,再重启 `nftables.service` 服务。
```bash
## 检查 nftables 配置文件
$ sudo nft --check --file /etc/nftables.conf
## 重启 nftables.service
$ sudo systemctl restart nftables.service
```
### 1.11.调整系统端口
为了正常使用 `53` 端口,需要对 `systemd-resolved.service` 进行配置,执行以下命令。
```bash
## 创建 systemd-resolved 配置目录
$ sudo mkdir -p /etc/systemd/resolved.conf.d
## 创建 systemd-resolved 配置文件
$ sudo tee /etc/systemd/resolved.conf.d/10-server-dns.conf >/dev/null <<'EOF'
# This configuration file is customized by fox,
# Optimize system resolve parameters for local TS server.
[Resolve]
DNS=127.0.0.1
DNS=::1
DNSStubListener=no
EOF
```
配置文件编辑完成后,还需调整系统 `resolv.conf` 配置文件,执行以下命令。
```bash
## 创建 resolv.conf 软链接
$ sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
```
配置完成后,需重启 `systemd-resolved.service` 服务。
```bash
## 重启 systemd-resolved.service
$ sudo systemctl restart systemd-resolved.service
```
### 1.12.配置 Dnsmasq
检查 `dnsmasq.service` 服务状态,确保该服务开机自启。
```bash
## 检查 dnsmasq.service
$ sudo systemctl status dnsmasq.service
## 设置 dnsmasq.service 开机自启
$ sudo systemctl enable dnsmasq.service
```
`Dnsmasq` 的主配置文件一般位于 `/etc` 目录下,修改配置文件之前,执行以下命令。
```bash
## 创建 Dnsmasq 配置目录
$ sudo mkdir -p /etc/dnsmasq.d
```
创建 `Dnsmasq` 主配置文件,执行以下命令。
```bash
## 创建 Dnsmasq 主配置文件
$ sudo editor /etc/dnsmasq.d/10-server-dnsmasq.conf
```
在编辑器对话框中输入以下内容,并保存。
**额外说明:**
- 请根据系统内存使用情况,调整缓存参数 `cache-size`
- 配置文件中监听的网卡名为 `eth0``tailscale0` ,请根据实际情况进行调整
- 配置文件中内网域名为 `fox.internal` ,请根据实际情况进行调整
- `Dnsmasq` 上游 DNS 服务器分为三类,请根据实际情况进行调整
- `server=/ts.net/100.100.100.100` TS 服务 `MagicDNS` 专用 DNS 服务器
- `server=/fox.internal/172.16.1.1` :内网域名解析 DNS 服务器,通常为主路由地址
- `server` 参数中的其他 DNS 服务器供 TS 服务器自身及其下游设备使用
```bash
# This configuration file is customized by fox,
# Optimize dnsmasq parameters for local TS server.
# Main Config
log-facility=/var/log/dnsmasq.log
log-async=20
cache-size=2048
max-cache-ttl=7200
fast-dns-retry=1800
interface=eth0,tailscale0
bind-dynamic
bogus-priv
domain-needed
no-hosts
no-ident
no-resolv
no-round-robin
rebind-localhost-ok
stop-dns-rebind
rebind-domain-ok=/fox.internal/
# DNS Filter
local=/alt/
local=/bind/
local=/example/
local=/home.arpa/
local=/internal/
local=/invalid/
local=/lan/
local=/local/
local=/localhost/
local=/onion/
local=/test/
# DNS Server
server=/ts.net/100.100.100.100
server=/fox.internal/172.16.1.1
server=172.16.1.1
```
配置完成后,需重启 `dnsmasq.service` 服务。
```bash
## 重启 dnsmasq.service
$ sudo systemctl restart dnsmasq.service
```
## 2. Tailscale
根据不同的启动参数,TS 服务将具有不同的业务能力。
### 2.1.网卡调优
根据 TS 官方文档 [Performance best practices](https://tailscale.com/docs/reference/best-practices/performance) 的技术指引,Linux 转发节点可通过调整网卡 Offload 参数提升 UDP 性能。
为了在网卡重新上线后自动恢复参数,本文使用 `networkd-dispatcher` 监听 `routable` 状态。
优化脚本直接使用事件中的 `IFACE`,仅处理由 `systemd-networkd` 配置的底层网卡,并跳过 `tailscale0` 和其他 TUN 设备。
首先检查 TS 服务器的底层出口网卡。
```bash
## 检查 systemd-networkd 状态
$ systemctl is-active systemd-networkd
## 获取由 networkd 配置且已上线的以太网卡
$ NETDEV=$(networkctl list --no-legend --no-pager | awk '$3 == "ether" && $4 == "routable" && $5 == "configured" {print $2; exit}')
## 检查网卡管理状态
$ networkctl status "$NETDEV"
```
`systemd-networkd` 应显示为 `active`,底层出口网卡应显示为 `State: routable (configured)`
检查完成后,创建 `networkd-dispatcher``routable` 事件脚本。
```bash
## 创建 routable 事件脚本目录
$ sudo install -d -o root -g root -m 0755 /etc/networkd-dispatcher/routable.d
## 创建 TS 网卡优化脚本
$ sudo editor /etc/networkd-dispatcher/routable.d/50-tailscale
```
在脚本文件中输入以下内容,并保存。
**额外说明:**
- 脚本会记录跳过、成功或失败原因,并在执行失败时保留 `ethtool` 的原始退出状态
- `networkd-dispatcher` 会记录非零退出警告,但不会停止服务或立即重试
- 网卡再次进入 `routable` 状态时,脚本会重新执行
```bash
#!/bin/sh
#
# This script is customized by fox,
# Optimize NIC offload parameters for local TS server.
#
if [ -z "${IFACE:-}" ]; then
echo "Error: IFACE is not set." >&2
exit 1
fi
if [ -z "${AdministrativeState:-}" ]; then
echo "Error: AdministrativeState is not set for $IFACE." >&2
exit 1
fi
if [ "$AdministrativeState" != "configured" ]; then
echo "Skipping network device $IFACE: administrative state is $AdministrativeState."
exit 0
fi
if [ ! -e "/sys/class/net/$IFACE/device" ]; then
echo "Skipping network device $IFACE: no hardware device is associated."
exit 0
fi
ETHTOOL_PATH=$(command -v ethtool 2>/dev/null)
if [ -z "$ETHTOOL_PATH" ]; then
echo "Error: ethtool command not found in PATH. Please install ethtool." >&2
exit 127
fi
if "$ETHTOOL_PATH" -K "$IFACE" rx-udp-gro-forwarding on rx-gro-list off; then
echo "Configured network device $IFACE using $ETHTOOL_PATH successfully."
else
exit_status=$?
echo "Error: $ETHTOOL_PATH failed to configure network device $IFACE (exit status $exit_status)." >&2
exit "$exit_status"
fi
```
`networkd-dispatcher` 仅执行属于 `root` 且具有可执行权限的脚本,执行以下命令进行设置。
```bash
## 设置脚本所有者
$ sudo chown root:root /etc/networkd-dispatcher/routable.d/50-tailscale
## 设置脚本可执行权限
$ sudo chmod 0755 /etc/networkd-dispatcher/routable.d/50-tailscale
## 设置脚本文件防篡改
$ sudo chattr +i /etc/networkd-dispatcher/routable.d/50-tailscale
```
设置完成后,手动模拟网卡事件,检查脚本能否正常应用参数。
```bash
## 测试 TS 网卡优化脚本
$ sudo env IFACE="$NETDEV" AdministrativeState=configured /etc/networkd-dispatcher/routable.d/50-tailscale
```
由于 TS 虚拟机不包含无线网卡,可通过 `systemd` 日志过滤器忽略无线工具探测信息。
```bash
## 编辑 networkd-dispatcher.service 服务扩展配置
$ sudo systemctl edit networkd-dispatcher.service
```
根据配置文件中的提示,在中间空白处填入以下内容。
```bash
## 日志过滤配置项
[Service]
LogFilterPatterns=~^No valid path found for iw(config)?$
```
测试通过后,启动 `networkd-dispatcher` 并设置为开机自启状态。
```bash
## 设置 networkd-dispatcher 开机自启
$ sudo systemctl enable --now networkd-dispatcher.service
## 验证启动状态事件补发机制
$ sudo systemctl restart networkd-dispatcher.service
```
最后检查网卡优化参数。
```bash
## 检查网卡优化参数
$ sudo ethtool -k "$NETDEV" | grep -E 'rx-udp-gro-forwarding|rx-gro-list'
#### 网卡优化后 ethtool 示例输出
rx-gro-list: off
rx-udp-gro-forwarding: on
```
### 2.2.启动模式
若仅需 TS 组网功能,执行以下命令。
```bash
## TS 普通组网模式
$ sudo tailscale up
```
若需 TS 提供 `Exit Node` 功能,执行以下命令。
```bash
## TS Exit Node 模式
$ sudo tailscale up --advertise-exit-node --reset
## TS Exit Node 模式,但不使用 MagicDNS
$ sudo tailscale up --advertise-exit-node --accept-dns=false --reset
```
若需 TS 提供内网路由功能并能访问内网私有服务,执行以下命令。
**额外说明:**
- 请根据内网网段,调整 TS 内网路由参数 `advertise-routes`
```bash
## TS 内网路由模式
$ sudo tailscale up --advertise-exit-node --accept-routes --advertise-routes=172.16.1.0/24 --reset
```
执行命令后,TS 将自动显示登录链接,只需根据链接进行登录操作即可。
### 2.3.自动更新
目前 TS 将跟随系统自动更新,若需额外开启 TS 的自动更新功能,执行以下命令。
```bash
## TS 开启自动更新
$ sudo tailscale set --auto-update
## TS 关闭自动更新
$ sudo tailscale set --auto-update=false
```
### 2.4.定时任务
本步骤为可选操作,主要用于设置 TS 定时重启。
```bash
## 创建 Tailscale 定时重启任务
$ sudo tee /etc/cron.d/tailscale-restart >/dev/null <<'EOF'
30 10 * * * root /usr/bin/systemctl restart tailscaled.service
EOF
## 设置定时任务文件权限
$ sudo chmod 0644 /etc/cron.d/tailscale-restart
```
至此,TS 服务器已配置完成。
-72
View File
@@ -1,72 +0,0 @@
## 1.添加备份作业
在所有虚拟机创建并配置完成后,可以使用 PVE 自带的备份功能周期性的将虚拟机备份。
点击 PVE 的 `数据中心` ,在右侧菜单中选择 `备份` 功能。
点击顶部 `添加` 按钮,添加一个 `备份作业`
![添加备份作业](img/p07/vm_new_backup_job.jpeg)
### 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. 虚拟机列表中,勾选 `备份作业` 需要备份的虚拟机(可多选)。
![备份作业常规选项](img/p07/vm_job_normal.jpeg)
### 1.2.保留选项
该选项将控制备份文件的保留个数,选择保留最近 `3` 份备份文件。
![备份作业保留选项](img/p07/vm_job_keep.jpeg)
### 1.3.日志模板
该选项将按照设置的内容,自动重命名备份文件。
`备份日志` 右侧文本框中输入 `{{vmid}}_{{guestname}}_Auto_Backup`
点击 `创建` 按钮,`备份作业` 创建完成。
![备份作业备注选项](img/p07/vm_job_notes.jpeg)
## 2.调度模拟器
在创建完成 `备份作业` 后,可以使用 `调度模拟器` 来模拟 `备份作业` 的执行时间。
鼠标 **单击** 选中一个 `备份作业` ,点击右上角的 `调度模拟器`
![备份作业调度模拟器](img/p07/vm_job_time_test.jpeg)
`计划` 处将显示 `备份作业` 的执行时间参数,点击 `模拟` 按钮,在右侧将显示模拟的时间结果。
确认 `备份作业` 的执行时间周期是否符合预期。
![备份作业时间模拟](img/p07/vm_job_time.jpeg)
至此,虚拟机的自动备份已配置完成。
+77
View File
@@ -0,0 +1,77 @@
## 1.添加备份作业
在所有虚拟机创建并配置完成后,可以使用 PVE 自带的备份功能周期性的将虚拟机备份。
点击 PVE 的 `数据中心` ,在右侧菜单中选择 `备份` 功能,并点击顶部 `添加`
![添加备份作业](img/p08/vm_new_backup_job.jpeg)
### 1.1.常规
在弹出的 `创建:备份作业` 对话框中,勾选底部 `高级` 选项,`备份作业` 的各项参数如下。
|参数|值|说明|
|--|--|--|
|节点|`node01`|选择当前 PVE 服务器节点|
|存储|`local`|选择存放备份文件的路径|
|计划|`*-01,16 03:30`|`备份作业` 执行的时间计划|
|选择模式|`包括选中的虚拟机`|执行备份的虚拟机对象|
|压缩|`ZSTD`|选择备份文件的压缩算法|
|模式|`停止`|选择备份虚拟机的方式,推荐使用 `停止` |
|启用|**勾选**|表示该 `备份作业` 为启用状态|
|作业评论|`Backup Your Server :)`|`备份作业` 的备注信息,使用英文输入|
**额外说明:**
- 计划中的 `*-01,16 03:30` 表示每月 `1``16` 号的 `03:30` 执行备份任务
- `备份作业` 在正确配置收件人邮箱之前,并不能发出邮件
- `停止` 模式表示备份时会将虚拟机置于关机状态,备份完成后再恢复至之前的状态
- 虚拟机列表中,勾选 `备份作业` 需要备份的虚拟机(可多选)
![备份作业常规选项](img/p08/vm_job_normal.jpeg)
### 1.2.通知
|参数|值|说明|
|--|--|--|
|通知模式|`使用全局通知设置`|执行备份时的通知模式,保持默认即可|
![备份作业通知选项](img/p08/vm_job_email.jpeg)
### 1.3.保留
该选项将控制备份文件的保留个数,选择保留最近 `3` 份备份文件。
![备份作业保留选项](img/p08/vm_job_keep.jpeg)
### 1.4.备注模板
该选项将按照设置的内容,自动重命名备份文件。
`备份日志` 右侧文本框中输入 `{{vmid}}-{{guestname}}-Autobackup`
![备份作业备注选项](img/p08/vm_job_notes.jpeg)
### 1.5.高级
该选项提供 `备份作业` 执行时的高级可调参数,仅需勾选 `重复错过` 选项即可。
点击 `创建` ,此 `备份作业` 即完成设置与创建。
![备份作业高级选项](img/p08/vm_job_advanced.jpeg)
## 2.调度模拟器
在创建完成 `备份作业` 后,可以使用 `调度模拟器` 来模拟 `备份作业` 的执行时间。
鼠标 **单击** 选中一个 `备份作业` ,点击右上角的 `调度模拟器`
![备份作业调度模拟器](img/p08/vm_job_time_test.jpeg)
`计划` 处将显示 `备份作业` 的执行时间参数,点击 `模拟` ,在右侧将显示模拟的时间结果。
确认 `备份作业` 的执行时间周期是否符合预期。
![备份作业时间模拟](img/p08/vm_job_time.jpeg)
至此,虚拟机的自动备份已配置完成。
+15 -21
View File
@@ -3,13 +3,7 @@
## 介绍
PVE 虚拟化平台的安装以及折腾手记。
- PVE ISO 版本:8.0-2 (更新时间: 2023-06-22)
- 演示机:
- CPU:英特尔奔腾 Silver N6005 处理器
- 内存:16 GB
- 网卡:英特尔以太网控制器 I226-V
- 硬盘:500 GB NVMe 固态硬盘
- PVE ISO 版本:9.1-1 (更新时间: 2025-11-19)
- PVE 网络:
- IPv4 网络
@@ -18,23 +12,23 @@ PVE 虚拟化平台的安装以及折腾手记。
- 网关:`172.16.1.1`
- DNS`172.16.1.1`
- IPv6 网络
- 前缀:`fdac::/64`
- IP 地址:`fdac::fe`
- DNS`fdac::1`
- 首选 `SLAAC` 自动配置
- IPv6 ULA 网络使用 `fdac::/64` 作为演示
### 系列章节
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)
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 制作 DNS 服务器](./06.PVE制作DNS服务器.md)
7. [PVE 制作 TS 服务器](./07.PVE制作TS服务器.md)
8. [PVE 自动备份虚拟机](./08.PVE自动备份虚拟机.md)
### 文章说明
1. 本系列文章涉及的部分参数需要手动调整来符合切实使用需求。
2. 随着 PVE 系统的迭代更新,截图中的内容和实际页面显示可能存在差异。
3. 如需引用,请注明本文出处。
1. 本系列文章涉及的部分参数需要手动调整来符合切实使用需求。
2. 随着 PVE 系统的迭代更新,截图中的内容和实际页面显示可能存在差异。
3. 如需引用,请注明本文出处。
Binary file not shown.

Before

Width:  |  Height:  |  Size: 205 KiB

After

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 272 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 283 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 594 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 339 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 279 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 599 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 413 KiB

After

Width:  |  Height:  |  Size: 375 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 KiB

After

Width:  |  Height:  |  Size: 403 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 KiB

After

Width:  |  Height:  |  Size: 404 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 664 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

Some files were not shown because too many files have changed in this diff Show More