## 0.必要条件 在 PVE 系统调整之前,请确保必要的软件包已经安装完成。 ```bash ## 同步镜像仓库 apt update ## 安装系统软件 apt install htop lm-sensors neofetch fail2ban vim tmux unattended-upgrades apt-listchanges powermgmt-base ## 安装网络工具 apt install iperf iperf3 iftop net-tools ethtool ## 安装CPU调度调整工具 apt install cpufrequtils ``` 本篇教程后续命令,均在 SSH 终端下完成。 ## 1.Fail2ban 配置 安装好 `fail2ban` 后,检查其服务状态: ```bash ## 检查 Fail2ban 系统服务状态 systemctl status fail2ban.service ``` 在 `Loaded` 行,检查是否存在 `enable` : ```bash ## 参考输出 ● fail2ban.service - Fail2Ban Service Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2022-07-16 05:03:53 CST; 4 days ago Docs: man:fail2ban(1) Process: 777 ExecStartPre=/bin/mkdir -p /run/fail2ban (code=exited, status=0/SUCCESS) Main PID: 792 (fail2ban-server) Tasks: 5 (limit: 18904) Memory: 13.3M CPU: 4min 53.764s CGroup: /system.slice/fail2ban.service └─792 /usr/bin/python3 /usr/bin/fail2ban-server -xf start Jul 16 05:03:53 hyper systemd[1]: Starting Fail2Ban Service... Jul 16 05:03:53 hyper systemd[1]: Started Fail2Ban Service. Jul 16 05:03:53 hyper fail2ban-server[792]: Server ready ``` 其中第1个 `enable` 表示当前服务开机自动启动,第2个 `enable` 表示该软件的默认启用状态。 如果并非为双 `enable` 状态,需要用一下命名进行调整: ```bash ## 开机自启 fail2ban 服务 systemctl enable fail2ban.service ## 参考输出 Synchronizing state of fail2ban.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable fail2ban Created symlink /etc/systemd/system/multi-user.target.wants/fail2ban.service → /lib/systemd/system/fail2ban.service. ``` 执行完成后,再次通过前面的命令检查服务自启状态。 后续如果想查看 `Fail2ban` 有关 `sshd` 的执行状态,可使用如下命令: ```bash ## 检查 sshd 的执行情况 fail2ban-client status sshd ## 参考输出 Status for the jail: sshd |- Filter | |- Currently failed: 0 | |- Total failed: 0 | `- File list: /var/log/auth.log `- Actions |- Currently banned: 0 |- Total banned: 0 `- Banned IP list: ``` 如果均为0,表示 PVE 系统没有 SSH 错误密码的尝试记录。 ## 2.系统时区配置 如果在安装 PVE 系统时选错了时区,导致系统时间和北京时间不一致,可以使用以下命令修正: ```bash ## 修改系统时区 timedatectl set-timezone Asia/Shanghai ## 检查系统时间 date -R ## 参考输出 Wed, 20 Jul 2022 16:21:28 +0800 ``` 输出结果如果和北京时间一致,则代表修改正确。 ## 3.CPU调度器配置 安装好 `cpufrequtils` 后,先检查当前 CPU 的调度器: ```bash ## 检查 CPU 当前调度器 cpufreq-info ## 参考输出 cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009 Report errors and bugs to cpufreq@vger.kernel.org, please. analyzing CPU 0: driver: intel_cpufreq CPUs which run at the same hardware frequency: 0 CPUs which need to have their frequency coordinated by software: 0 maximum transition latency: 20.0 us. hardware limits: 800 MHz - 2.90 GHz available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil current policy: frequency should be within 800 MHz and 2.90 GHz. The governor "ondemand" may decide which speed to use within this range. current CPU frequency is 952 MHz. ``` 这里面主要关注两个点: - driver: intel_cpufreq - current policy: governor "ondemand" 当然还有另外一个命令可以用来显示 CPU 调度器: ```bash ## 检查 CPU 当前调度器 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ## 参考输出 ondemand ``` 驱动一般不建议手动调整,而 `governor "ondemand"` 则显示了当前 CPU 的调度器是什么。 接下来,我们需要了解当前系统的 CPU 支持的调度器有哪些: ```bash ## 检查 CPU 调度器支持情况 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors ## 参考输出 conservative ondemand userspace powersave performance schedutil ``` 这里有很多种调度器可供选择,至于每种调度器有什么优劣,欢迎大家深度挖掘。 本教程以使用 `schedutil` 调度器为演示。 使用 `vim` 编辑器来编辑 `cpufrequtils` 的配置文件: ```bash ## 修改 cpufrequtils 配置文件 vim /etc/init.d/cpufrequtils ## 找到 GOVERNOR="ondemand" 修改为以下内容 GOVERNOR="schedutil" ``` 按 `i` 键进入编辑模式,`esc` 键退出编辑模式,`:wq` 命令保存退出。 因为该配置文件很长,教程中留下一份配置好文件 [Fox_PVE_Cpufrequtils.conf](https://gitee.com/callmer/pve_toss_notes/blob/master/src/Fox_PVE_Cpufrequtils.conf%20) ,以便对比。 修改完成后,需要重新启动 PVE 服务器来使参数生效。 PVE 服务器重启完成后记得重新检查当前 CPU 的调度器,看配置文件是否生效。 这里提供两个命令,分别来实时查看当前 CPU 的频率和内部温度传感器的数值: ```bash ## 查看 CPU 当前频率 watch cat /sys/devices/system/cpu/cpu[0-9]*/cpufreq/scaling_cur_freq ## 查看内部温度 watch sensors ``` ## 4.PVE 定时重启配置 有时候我们需要让 PVE 服务器周期性的定时重启,则可使用以下命令: ```bash ## 编辑系统 crontab crontab -l ## 选择 nano 编辑器,粘贴以下内容 0 5 1,16 * * /usr/sbin/reboot ``` 这表示每月1、16号的5点0分执行系统重启命令。