OpenWrt 的 Squid 软件包可能在启动 Squid 命令之前就拒绝自己的 UCI 配置。因此,init 脚本里那句笼统的 “validation failed” 并不足以成为修改 squid.conf 的理由。

先读它前面的字段级消息,再与已安装包的校验规则对照。例如,启动实现把 http_port 声明为端口类型。数字看着没问题时,尾部空白也可能让这项检查失败。校验失败的结果会在命令注册之前中止回调。

对于真的叫 squid 的 section,检查那个范围很窄的值:

uci get squid.squid.http_port

使用安装中实际存在的 section 名。包配置源通常是 /etc/config/squid;如果没有消息,就确认它存在且可读。另一个发行版可能暴露不同的字段。

UCI 校验之后,要沿着传给 Squid 的原生文件走。包装脚本可能选中一个明确的文件,也可能根据受支持的输入生成一个。改一个用不到的文件改变不了生成结果。

原生语法、辅助程序、权限和监听检查都在后面。要么报告“UCI 拒绝了 http_port”,要么报告“Squid 拒绝了所选的原生配置”,并附上证据。只为了压住第一个错误就删掉软件包配置,可能让包装脚本干不成它该干的事。

相关文章