Compare commits

..
38 Commits
Author SHA1 Message Date
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
38 changed files with 365 additions and 101 deletions
+7 -7
View File
@@ -4,17 +4,17 @@ 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)
页面中可能有多个 PVE 的安装 ISO ,可以根据需要进行选择,目前最新的 `Proxmox VE 8.0 ISO` 作为演示。
页面中有多个 PVE 相关文件,本文以目前最新的 `Proxmox VE 8.0 ISO Installer` 作为演示。
![下载PVE ISO文件](img/p01/pve_download_iso.jpeg)
点击 `Proxmox VE 8.x ISO Installer` 链接,进入 PVE 下载页面。
点击 `Proxmox VE 8.x ISO Installer` 链接。
![PVE下载页面](img/p01/pve_download_iso.jpeg)
下载 ISO 时请注意 `SHA256SUM` ,后续将使用该校验信息对下载下来的 ISO 进行校验,以确保 ISO 文件的完整性。
![输入图片说明](img/p01/pve_iso_hash.jpeg)
![下载PVE](img/p01/pve_iso_hash.jpeg)
### 0.2.启动盘制作工具
@@ -156,7 +156,7 @@ PVE 为最关键的虚拟化层,建议使用强密码,包含大小写字母
FQDN 为 PVE 的域,PVE 将使用 FQDN 中的二级域名作为其主机名。
演示中 FQDN 为 `node01.fox.local` ,因此 PVE 的主机名为 `node01`
演示中 FQDN 为 `node01.fox.home.arpa` ,因此 PVE 的主机名为 `node01`
根据规划,PVE 的 IPv4 管理地址为 `172.16.1.254`
@@ -166,7 +166,7 @@ FQDN 为 PVE 的域,PVE 将使用 FQDN 中的二级域名作为其主机名。
|参数|值|说明|
|--|--|--|
|Hostname (FQDN)|`node01.fox.local`|设置 PVE `域``主机名` |
|Hostname (FQDN)|`node01.fox.home.arpa`|设置 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 |
+6 -8
View File
@@ -90,7 +90,7 @@ $ echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/pve $VERSION_CODENAME pve
创建完成后对其进行检查。
```bash
## 检查PVE免费源
## 检查 PVE 免费源
$ cat /etc/apt/sources.list.d/ceph-no-subscription.list
@@ -149,20 +149,20 @@ $ apt dist-upgrade
其中 `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 htop lm-sensors unzip neovim tmux unattended-upgrades powermgmt-base
## 安装网络工具
$ apt install iperf iperf3 iftop
## 安装 CPU 调度调整工具
$ apt install cpufrequtils
$ apt install linux-cpupower
## 根据 CPU 厂商安装 CPU 微码工具
$ apt install intel-microcode (amd64-microcode)
@@ -248,11 +248,9 @@ $ update-pciids
1. 如非特殊需求,通常情况下 PVE 系统无需使用 IPv6 网络。
2. 根据实际测试,仅 PVE 纯内部网桥( `vmbr4` )可通过主路由获取公网 GUA IPv6 地址
2. 主路由未配置 ULA IPv6 网段时,例如本文演示地址 `fdac::/64` ,无需填写 `IPv6/CIDR` 参数
3. 主路由未配置 ULA IPv6 网段时,例如本文演示地址 `fdac::/64` ,无需填写 `IPv6/CIDR` 参数
4. 通常情况下 IPv6 无需填写 `网关` 参数,IPv6 网关将通过 LLA IPv6 地址自动配置。
3. 通常情况下 IPv6 无需填写 `网关` 参数,IPv6 网关将通过 LLA IPv6 地址自动配置
![最后的物理接口网桥](img/p02/pve_br_last_phyport_ipv6.jpeg)
+85 -44
View File
@@ -9,13 +9,13 @@
$ apt update
## 安装系统软件
$ apt install htop lm-sensors unzip vim tmux unattended-upgrades powermgmt-base
$ apt install htop lm-sensors unzip neovim tmux unattended-upgrades powermgmt-base
## 安装网络工具
$ apt install iperf iperf3 iftop
## 安装 CPU 调度调整工具
$ apt install cpufrequtils
$ apt install linux-cpupower
## 根据 CPU 厂商安装 CPU 微码工具
$ apt install intel-microcode (amd64-microcode)
@@ -82,41 +82,45 @@ MS Name/IP address Stratum Poll Reach LastRx Last sample
## 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
within this range.
current CPU frequency is 1.84 GHz.
current CPU frequency: Unable to call hardware
current CPU frequency: 800 MHz (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.
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
```
这里面主要关注两个点:
@@ -159,30 +163,69 @@ performance powersave
- CPU 驱动为 `intel_pstate` 时,推荐使用 `powersave` 调度器。
本文使用 `powersave` 调度器为演示,使用 `nano` 编辑器来编辑 `cpufrequtils` 的配置文件。
因为该配置文件很长,完整的配置文件可查看 [pve_cpufrequtils.conf](./src/pve_cpufrequtils.conf) 以便对比。
修改完成后,需要重启 PVE 服务器来使参数生效。
本文使用 `powersave` 调度器为演示,使用 `nano` 编辑器创建 `linux-cpupower` 的配置文件。
```bash
## 编辑 cpufrequtils 配置文件
$ nano /etc/init.d/cpufrequtils
## 创建 linux-cpupower 配置文件
$ nano /etc/default/cpupower
```
在配置文件中修改以下配置项,并保存。
```bash
## cpufrequtils 配置项
# This configuration file is customized by fox
# Optimize system CPU governors
ENABLE="true"
GOVERNOR="powersave" ## 修改本行的调度器为 powersave
MAX_SPEED="0"
MIN_SPEED="0"
CPUPOWER_START_OPTS="frequency-set -g powersave"
CPUPOWER_STOP_OPTS="frequency-set -g performance"
```
PVE 服务器重启完成后需再次查看 CPU 调度器,检验配置文件是否生效
使用 `nano` 编辑器创建 `linux-cpupower` 服务配置文件,以满足系统自动化设置需求
```bash
## 创建 linux-cpupower 服务配置文件
$ nano /usr/lib/systemd/system/cpupower.service
```
在服务配置文件中修改以下配置项,并保存。
```bash
# This configuration file is customized by fox,
# Optimize for cpupower systemd service.
[Unit]
Description=Apply cpupower configuration
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
```
由于修改了服务项,需要使用以下命令进行重载。
```bash
## 服务重载
$ systemctl daemon-reload
```
使用以下命令让 `linux-cpupower` 服务开机自启动。
```bash
## 设置 PPPoE 拨号服务开机自启
$ systemctl enable cpupower.service
```
修改完成后,需重启 PVE 服务器,并再次查看 CPU 调度器,检验配置文件是否生效。
这里提供两个额外命令,方便实时查看 CPU 当前频率和温度状况。
@@ -198,7 +241,7 @@ $ watch -d sensors
有时需要让 PVE 服务器周期性的定时重启,则可使用以下命令。
参数表示每月 `1``16` 号的 `5``0` 执行系统重启命令。
参数表示每月 `1``16` 号的 `02:30` 执行系统重启命令。
```bash
## 查看系统定时任务
@@ -213,7 +256,7 @@ $ crontab -e
```bash
## 定时任务配置项
0 5 1,16 * * /usr/sbin/reboot
30 2 1,16 * * /usr/sbin/reboot
```
@@ -223,7 +266,7 @@ $ crontab -e
配置系统自动更新之前,需检查系统当前定时器状态。
后续将手动调整该定时器的时间,使其每 `5`凌晨 `02:00` 进行触发。
后续将手动调整该定时器的时间,使其每 `5` `01:30` 进行触发。
```bash
## 检查系统定时器
@@ -232,12 +275,11 @@ $ 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
Active: active (waiting) since Tue 2023-08-01 13:01:19 CST; 27min ago
Trigger: Wed 2023-08-02 06:14:50 CST; 16h left
Triggers: ● apt-daily-upgrade.service
Jun 23 18:55:58 node01 systemd[1]: Started apt-daily-upgrade.timer - Daily apt upgrade and clean activities.
Aug 01 13:01:19 node01 systemd[1]: Started apt-daily-upgrade.timer - Daily apt upgrade and clean activities.
```
### 4.2.配置更新策略
@@ -305,7 +347,7 @@ $ nano /etc/apt/apt.conf.d/50unattended-upgrades
- 自动重启:开启。
- 自动重启时间:`05:00`
- 自动重启时间:`02:30`
因为该配置文件很长,完整的配置文件可查看 [pve_50unattended_upgrades.conf](./src/pve_50unattended_upgrades.conf) 以便对比。
@@ -334,7 +376,7 @@ 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";
```
@@ -356,7 +398,7 @@ $ systemctl edit apt-daily-upgrade.timer
[Timer]
OnCalendar=
OnCalendar=02:00
OnCalendar=01:30
RandomizedDelaySec=0
```
@@ -375,14 +417,13 @@ $ systemctl status apt-daily-upgrade.timer
Loaded: loaded (/lib/systemd/system/apt-daily-upgrade.timer; enabled; preset: enabled)
Drop-In: /etc/systemd/system/apt-daily-upgrade.timer.d
└─override.conf
Active: active (waiting) since Sun 2023-06-25 14:35:06 CST; 9s ago
Until: Sun 2023-06-25 14:35:06 CST; 9s ago
Trigger: Mon 2023-06-26 02:00:00 CST; 11h left
Active: active (waiting) since Tue 2023-08-01 13:37:41 CST; 9s ago
Trigger: Wed 2023-08-02 01:30:00 CST; 11h left
Triggers: ● apt-daily-upgrade.service
Jun 25 14:35:06 node01 systemd[1]: Stopped apt-daily-upgrade.timer - Daily apt upgrade and clean activities.
Jun 25 14:35:06 node01 systemd[1]: Stopping apt-daily-upgrade.timer - Daily apt upgrade and clean activities...
Jun 25 14:35:06 node01 systemd[1]: Started apt-daily-upgrade.timer - Daily apt upgrade and clean activities.
Aug 01 13:37:41 node01 systemd[1]: Stopped apt-daily-upgrade.timer - Daily apt upgrade and clean activities.
Aug 01 13:37:41 node01 systemd[1]: Stopping apt-daily-upgrade.timer - Daily apt upgrade and clean activities...
Aug 01 13:37:41 node01 systemd[1]: Started apt-daily-upgrade.timer - Daily apt upgrade and clean activities.
```
## 5.硬件直通
@@ -526,7 +567,7 @@ $ find /sys/kernel/iommu_groups/ -type l
## 6.系统清理
PVE 系统配置完成后,可逐执行以下命令,对系统进行清理。
PVE 系统配置完成后,可逐执行以下命令,对系统进行清理。
```bash
## 清理系统软件包
+6 -9
View File
@@ -90,17 +90,14 @@ CPU `类别` 选择 `host` `插槽` 与 `核心` 数根据物理 CPU 核心
### 2.2.导入镜像文件
使用 SSH 工具登录 PVE 服务器,并进入 `tmp` 目录,逐执行以下命令创建一个文件夹。
使用 SSH 工具登录 PVE 服务器,并进入 `tmp` 目录,逐执行以下命令创建一个文件夹。
```bash
## 进入 tmp 目录
$ cd /tmp
## 创建文件夹
$ mkdir Debian
## 创建存放 Debian 云镜像的临时目录
$ mkdir -p /tmp/Debian
## 进入文件夹
$ cd Debian
$ cd /tmp/Debian
```
将 Debian 云镜像传输到该文件夹,并检查 `hash`
@@ -218,7 +215,7 @@ Successfully imported disk as 'unused0:local-lvm:vm-1000-disk-0'
|--|--|--|
|用户|`fox`|新系统的管理员账户|
|密码|`********`|使用强密码|
|DNS域|`fox.local`|内网域名(可选)|
|DNS域|`fox.home.arpa`|内网域名(可选)|
|DNS服务器|`172.16.1.1`|本机 DNS 服务器|
|SSH公钥|`无`|使用秘钥登录服务器,暂不使用|
|Upgrade packages|`是`|启动时更新软件包,保持默认即可|
@@ -246,7 +243,7 @@ Successfully imported disk as 'unused0:local-lvm:vm-1000-disk-0'
|参数|值|说明|
|--|--|--|
|DNS域|`fox.local`|内网域名(可选)|
|DNS域|`fox.home.arpa`|内网域名(可选)|
|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 设置|
+12 -12
View File
@@ -154,7 +154,7 @@ $ sudo apt dist-upgrade
```bash
## 安装系统软件
$ sudo apt install qemu-guest-agent zsh git htop tmux cron nftables sshguard
$ sudo apt install qemu-guest-agent zsh git htop tmux cron nftables sshguard neovim
## 安装系统自动更新工具
$ sudo apt install unattended-upgrades powermgmt-base python3-gi
@@ -170,11 +170,11 @@ $ sudo sync
由于该 Debian 虚拟机模板将用于克隆内网 DNS 服务器,因此需要调整内核参数来简单优化性能。
使用 `vim` 编辑器编辑 **内核参数** 配置文件,执行以下命令。
使用 `neovim` 编辑器编辑 **内核参数** 配置文件,执行以下命令。
```bash
## 编辑 内核参数 配置文件
$ sudo vim /etc/sysctl.d/99-sysctl.conf
$ sudo nvim /etc/sysctl.d/99-sysctl.conf
```
在配置文件末尾输入以下配置项,注意配置中间的空格。
@@ -186,7 +186,7 @@ $ sudo vim /etc/sysctl.d/99-sysctl.conf
kernel.panic = 20
kernel.panic_on_oops = 1
net.core.default_qdisc = fq_codel
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
# Other adjustable system parameters
@@ -234,10 +234,10 @@ Debian 云镜像默认使用 `systemd-timesyncd.service` 同步时间,且需
```bash
## 创建 NTP 配置文件的文件夹
$ sudo mkdir /etc/systemd/timesyncd.conf.d
$ sudo mkdir -p /etc/systemd/timesyncd.conf.d
## 创建 NTP 配置文件
$ sudo vim /etc/systemd/timesyncd.conf.d/server_ntp.conf
$ sudo nvim /etc/systemd/timesyncd.conf.d/server_ntp.conf
```
在配置文件中添加以下配置项,并保存。
@@ -309,7 +309,7 @@ Creating config file /etc/apt/apt.conf.d/20auto-upgrades with new version
```bash
## 编辑 20auto-upgrades 配置文件
$ sudo vim /etc/apt/apt.conf.d/20auto-upgrades
$ sudo nvim /etc/apt/apt.conf.d/20auto-upgrades
```
删除里面全部内容,添加以下配置项,并保存。
@@ -330,7 +330,7 @@ APT::Periodic::CleanInterval "1";
```bash
## 编辑 50unattended-upgrades 配置文件
$ sudo vim /etc/apt/apt.conf.d/50unattended-upgrades
$ sudo nvim /etc/apt/apt.conf.d/50unattended-upgrades
```
根据 “注释” 中相关说明,调整配置文件。
@@ -354,7 +354,7 @@ 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";
```
@@ -379,7 +379,7 @@ RandomizedDelaySec=0
设置完成后,重启自动更新定时器并检查其状态,执行以下命令。
在输出结果中看到系统自动更新的触发时间为凌晨 `02:00` 则表示设置正确。
在输出结果中看到系统自动更新的触发时间为 `02:00` 则表示设置正确。
```bash
## 重启触发器
@@ -406,7 +406,7 @@ $ sudo crontab -e
```bash
## 定时任务配置项
0 6 8,24 * * /usr/sbin/reboot
30 4 8,24 * * /usr/sbin/reboot
```
@@ -435,7 +435,7 @@ Do you want to change your default shell to zsh? [Y/n] y
Debian 模板虚拟机已经配置完成,在将其转换为模板前需要对系统进行清理。
执行以下命令,注意命令中的空格。
执行以下命令,注意命令中的空格。
```bash
## 清理系统软件包
+168 -16
View File
@@ -65,9 +65,7 @@
## 4.调整系统端口
设置完成后,将该虚拟机开机,使用 SSH 工具登录。
Adguard Home 需监听系统 `53` 端口来提供 DNS 服务,使用以下命令检查端口占用。
设置完成后,将该虚拟机开机,使用 SSH 工具登录,并使用以下命令检查端口占用
```bash
## 检查 53 端口占用
@@ -81,16 +79,16 @@ systemd-r 347 systemd-resolve 19u IPv4 13447 0t0 UDP localhost:domain
systemd-r 347 systemd-resolve 20u IPv4 13448 0t0 TCP localhost:domain (LISTEN)
```
当前系统 `53` 端口被 `systemd-resolved.service` 占用,会导致 Adguard Home 监听端口失败。
当前系统 `53` 端口被 `systemd-resolved.service` 占用,会导致设置 DNS 服务时监听端口失败。
为了正常使用 Adguard Home ,需要对 `systemd-resolved.service` 进行配置,逐行执行以下命令。
为了正常使用 `53` 端口,需要对 `systemd-resolved.service` 进行配置,逐行执行以下命令。
```bash
## 创建 systemd-resolved 配置文件夹
$ sudo mkdir -p /etc/systemd/resolved.conf.d
## 创建 systemd-resolved 配置文件
$ sudo vim /etc/systemd/resolved.conf.d/adguardhome.conf
$ sudo nvim /etc/systemd/resolved.conf.d/server_dns.conf
```
在配置文件中添加以下配置项,并保存。
@@ -121,9 +119,9 @@ $ sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
$ sudo systemctl restart systemd-resolved.service
```
## 5.安装 Adguard Home
## 5. Adguard Home
Adguard Home 将采用 `snap` 形式安装,逐行执行以下命令。
`Adguard Home` 将采用 `snap` 形式安装,逐行执行以下命令。
```bash
## 安装 snap
@@ -133,16 +131,16 @@ $ sudo apt install snapd
$ sudo snap install adguard-home
```
### 5.1. Snap 自动更新
### 5.1.自动更新
查看 Snap 当前的更新策略,执行以下命令。
查看 `Snap` 当前的更新策略,执行以下命令。
```bash
## 显示当前 Snap 自动更新设置
$ sudo snap refresh --time
```
将 Snap 自动更新时间设置为每天 `2:30-3:30``14:30-15:30` 两个时间段。
`Snap` 自动更新时间设置为每天 `2:30-3:30``14:30-15:30` 两个时间段。
```bash
## 修改 Snap 自动更新时间
@@ -152,9 +150,13 @@ $ sudo snap set system refresh.timer=2:30-3:30,14:30-15:30
$ sudo snap set system refresh.timer=mon,2:30,,fri,2:30
```
### 5.2. Snap 定时任务
### 5.2.配置 Adguard Home
本步骤为可选操作,主要设置定时重启 Snap 服务
关于 `Adguard Home` 配置相关内容,请参阅 [Adguard Home 折腾手记](https://gitee.com/callmer/agh_toss_notes)
### 5.3.定时任务
本步骤为可选操作,主要设置定时重启 `Adguard Home`
```bash
## 查看系统定时任务
@@ -169,13 +171,163 @@ $ sudo crontab -e
```bash
## 定时任务配置项
0 5 * * * /usr/bin/snap restart adguard-home
30 4 * * * /usr/bin/snap restart adguard-home
```
## 6.配置 Adguard Home
## 6. SmartDNS
关于 Adguard Home 配置相关内容,请参阅 [Adguard Home 折腾手记](https://gitee.com/callmer/agh_toss_notes)
若需使用 `SmartDNS` 代替 `Adguard Home` ,可使用 Debian 官方源进行安装,但其版本通常较为 “过时”
```bash
## 安装 SmartDNS
$ sudo apt install smartdns
```
因此,更推荐使用其 Github 仓库中的最新稳定版进行安装,官方仓库请参阅 [pymumu/smartdns](https://github.com/pymumu/smartdns/releases) 。
下载 `SmartDNS` 最新版本时,请根据系统架构选择合适的版本,逐行执行以下命令。
```bash
## 创建存放 SmartDNS 安装包的临时目录
$ mkdir -p /tmp/SmartDNS
## 进入文件夹
$ cd /tmp/SmartDNS
## 下载 SmartDNS 安装包
$ wget https://github.com/pymumu/smartdns/releases/download/Release43/smartdns.1.2023.08.11-1937.x86_64-linux-all.tar.gz
## 解压缩 SmartDNS 安装包
$ tar zxf smartdns.1.2023.08.11-1937.x86_64-linux-all.tar.gz
## 进入安装包目录
$ cd smartdns
## 赋予安装脚本执行权限
$ chmod +x ./install
## 安装 SmartDNS
$ sudo ./install -i
```
修改 `SmartDNS` 配置之前,需检查 `smartdns.service` 服务状态,确保该服务开机自启动。
```bash
## 检查 smartdns.service
$ sudo systemctl status smartdns.service
## 设置 smartdns.service 开机自启动
$ sudo systemctl enable smartdns.service
```
### 6.1.配置 SmartDNS
`SmartDNS` 配置较为复杂,可按需制定各类 DNS 请求规则,建议先查阅官方提供的 [配置指导](https://pymumu.github.io/smartdns/config/basic-config/) 和 [配置选项](https://pymumu.github.io/smartdns/configuration/) 。
若需使用 `SmartDNS` 过滤广告,则需下载其广告过滤配置文件,为可选操作。
```bash
## 下载广告过滤配置文件
$ sudo wget https://anti-ad.net/anti-ad-for-smartdns.conf -O /etc/smartdns/anti-ad-smartdns.conf
```
`SmartDNS` 的主配置文件一般位于 `/etc/smartdns` 目录下,修改配置文件之前,使用以下命令将其备份。
```bash
## 备份 SmartDNS 主配置文件
$ sudo mv /etc/smartdns/smartdns.conf /etc/smartdns/smartdns.conf.bak
```
使用 `neovim` 编辑器创建 `SmartDNS` 主配置文件,执行以下命令。
```bash
## 创建 SmartDNS 主配置文件
$ sudo nvim /etc/smartdns/smartdns.conf
```
在编辑器对话框中输入以下内容,并保存。
**额外说明:**
- 当不使用 `anti-ad-smartdns.conf` 进行广告过滤时,需移除主配置文件中对应配置项。
- 检查配置文件中关于本地域名及其上游 DNS 服务器相关配置,请根据实际情况进行调整。
```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 119.29.29.29
# server 223.5.5.5
# server 114.114.114.114
# server 2402:4e00::
# server 2400:3200::1
conf-file /etc/smartdns/anti-ad-smartdns.conf
cache-file /tmp/smartdns.cache
bind [::]:53
bind-tcp [::]:53
serve-expired yes
serve-expired-ttl 86400
serve-expired-reply-ttl 3
prefetch-domain yes
serve-expired-prefetch-time 43200
speed-check-mode ping,tcp:80,tcp:443
force-qtype-SOA 65
log-level notice
server-tcp 119.29.29.29 -group dnspod -exclude-default-group
server-tcp 2402:4e00:: -group dnspod -exclude-default-group
nameserver /doh.pub/dnspod
nameserver /dot.pub/dnspod
server-tcp 223.5.5.5 -group alidns -exclude-default-group
server-tcp 2400:3200::1 -group alidns -exclude-default-group
nameserver /dns.alidns.com/alidns
server 172.16.1.1 -group intranet -exclude-default-group
server fdac::1 -group intranet -exclude-default-group
nameserver /fox.home.arpa/intranet
domain-rules /fox.home.arpa/ -speed-check-mode none -no-cache
server-tls dot.pub
server-tls dns.alidns.com
server-https https://doh.pub/dns-query
server-https https://dns.alidns.com/dns-query
```
### 6.2.定时任务
本步骤为可选操作,主要设置 `SmartDNS` 定时更新广告过滤配置文件和定时重启。
```bash
## 编辑系统定时任务,编辑器选择 nano
$ sudo crontab -e
```
在配置文件末尾,增加以下配置项。
```bash
## 定时任务配置项
0 5 * * * /usr/bin/wget -q --tries=10 --retry-connrefused --random-wait https://anti-ad.net/anti-ad-for-smartdns.conf -O /etc/smartdns/anti-ad-smartdns.conf
30 5 * * * /usr/bin/systemctl restart smartdns.service
```
至此,新虚拟机已配置完成,可作为内网 DNS 服务器使用。
+1 -1
View File
@@ -28,7 +28,7 @@
**额外说明:**
1. 计划中的 `*-01,16 03:30` 表示每个月的 1、16 日凌晨 03:30行备份。
1. 计划中的 `*-01,16 03:30` 表示每`1``16` 号的 `03:30`行备份任务
2. `备份作业` 在正确配置收件人邮箱之前,并不能发出邮件。
Binary file not shown.

Before

Width:  |  Height:  |  Size: 205 KiB

After

Width:  |  Height:  |  Size: 405 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 272 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 283 KiB

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 339 KiB

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 279 KiB

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 269 KiB

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 KiB

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 KiB

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 314 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 204 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 KiB

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 263 KiB

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 413 KiB

After

Width:  |  Height:  |  Size: 401 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 KiB

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

+1 -1
View File
@@ -173,5 +173,5 @@ 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";
+1 -1
View File
@@ -4,7 +4,7 @@
kernel.panic = 20
kernel.panic_on_oops = 1
net.core.default_qdisc = fq_codel
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
# Other adjustable system parameters
+52
View File
@@ -0,0 +1,52 @@
# 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 119.29.29.29
# server 223.5.5.5
# server 114.114.114.114
# server 2402:4e00::
# server 2400:3200::1
conf-file /etc/smartdns/anti-ad-smartdns.conf
cache-file /tmp/smartdns.cache
bind [::]:53
bind-tcp [::]:53
serve-expired yes
serve-expired-ttl 86400
serve-expired-reply-ttl 3
prefetch-domain yes
serve-expired-prefetch-time 43200
speed-check-mode ping,tcp:80,tcp:443
force-qtype-SOA 65
log-level notice
server-tcp 119.29.29.29 -group dnspod -exclude-default-group
server-tcp 2402:4e00:: -group dnspod -exclude-default-group
nameserver /doh.pub/dnspod
nameserver /dot.pub/dnspod
server-tcp 223.5.5.5 -group alidns -exclude-default-group
server-tcp 2400:3200::1 -group alidns -exclude-default-group
nameserver /dns.alidns.com/alidns
server 172.16.1.1 -group intranet -exclude-default-group
server fdac::1 -group intranet -exclude-default-group
nameserver /fox.home.arpa/intranet
domain-rules /fox.home.arpa/ -speed-check-mode none -no-cache
server-tls dot.pub
server-tls dns.alidns.com
server-https https://doh.pub/dns-query
server-https https://dns.alidns.com/dns-query
+1 -1
View File
@@ -175,5 +175,5 @@ 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";
+1 -1
View File
@@ -3,7 +3,7 @@
[Timer]
OnCalendar=
OnCalendar=02:00
OnCalendar=01:30
RandomizedDelaySec=0
### Lines below this comment will be discarded
+6
View File
@@ -0,0 +1,6 @@
# This configuration file is customized by fox
# Optimize system CPU governors
CPUPOWER_START_OPTS="frequency-set -g powersave"
CPUPOWER_STOP_OPTS="frequency-set -g performance"
+18
View File
@@ -0,0 +1,18 @@
# This configuration file is customized by fox,
# Optimize for cpupower systemd service.
[Unit]
Description=Apply cpupower configuration
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