在 OPNsense 中,默认的日志配置非常容易“爆盘”,会导致出现以下问题:
- Web 管理页面打不开或极慢
- 网络转发明显卡顿、CPU 飙高
- config.xml、/var 写满,服务异常
- 甚至系统只读、需要进单用户模式清理
为了避免出现日志爆满的情况,在系统运行平稳以后,建议关闭以下日志选项。
系统设置
导航到系统>设置>日志,限制保留文件数量和最大文件大小。如果不需要记录系统日志,可以关闭启用本地日志选项,并清除日志文件。
防火墙日志
导航到防火墙>设置>高级,关闭日志记录选项。这些日志对日常使用没有任何有益的帮助。
导航到防火墙>规则,关闭各个接口规则的日志记录选项。
流量日志
转到报告>流量设置,如果不需要查看流量记录,可以关闭本地捕获。
DNS 日志
转到服务>Unbound DNS>高级,关闭日志记录查询等功能 。
转到报告>设置,不需要查看dns解析和拦截数据,建议关闭 Unbound DNS 统计功能。
入侵检测
开启IDS/IPS功能,默认设置会记录非常多的日志,为了避免爆盘,建议调整默认日志选项。转到服务>入侵检测>管理,将保存日志数量设置为较少的值,或直接设置为 0,不保存任何日志。
插件日志
部分插件有日志记录功能 ,在插件使用正常后,可以考虑关闭日志选项。例如, clash 或sing-box 配置选项当中,可以把日志记录层级“level”设置为最低的 “error”。
{
"log": {
"disabled": false,
"level": "error",
"timestamp": true
},
爆盘处理
已经爆盘,出现了打不开web配置界面时,可以采取以下删除日志方式进行应急处理。
1、手动删除日志
查看日志大小:
du -sh /var/log/*
清空/var/log目录下所有日志内容:
find /var/log -type f -exec truncate -s 0 {} \;
2、一键清理脚本
将以下内容保存为/root/clean_logs.sh。
#!/bin/sh
# ========= 基本配置 =========
LOG_DIR="/var/log"
DAYS=3 # 删除 3 天前的轮转日志
MAX_SIZE="50M" # 超过 50MB 的日志强制清空
echo "[*] log cleanup start: $(date)"
# 1. 清空当前正在写的日志(安全方式)
find "$LOG_DIR" -type f -name "*.log" -exec truncate -s 0 {} \;
# 2. 删除旧的 logrotate 文件
find "$LOG_DIR" -type f \( -name "*.log.*" -o -name "*.gz" \) -mtime +"$DAYS" -exec rm -f {} \;
# 3. 强制清空异常大的日志文件
find "$LOG_DIR" -type f -size +"$MAX_SIZE" -exec truncate -s 0 {} \;
# 4. 清理 Unbound / Suricata 等可能残留的缓存
rm -f /var/unbound/*.log 2>/dev/null
rm -f /var/log/suricata/*.log 2>/dev/null
echo "[*] log cleanup done: $(date)"
添加执行权限:
chmod +x /root/clean_logs.sh
手动执行:
sh /root/clean_logs.sh
通过 crontab 自动执行:
crontab -e
加入一行(每天凌晨 3 点自动清理):
0 3 * * * /root/clean_logs.sh >/dev/null 2>&1






