有些事情正在重新生成 ports.conf

有些事情正在重新生成 ports.conf

自从我上次更新 Raspbian 以来,“某些东西”正在更新我的 apache ports.conf 文件,通过自动添加以下两行:

Listen 81

和:

<IfModule mod_ssl.c>
Listen 443
</IfModule>

但我需要你监听端口 4443,因为我使用 sslh 来监听 443

这是完整的 ports.conf 文件

Listen 80
#Listen 10008
Listen 81

<IfModule ssl_module>
        Listen 192.168.21.106:4443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 192.168.21.106:4443
</IfModule>

<IfModule mod_ssl.c>
Listen 443
</IfModule>

有人知道是什么导致了这些变化吗?

答案1

经过大量搜索后,对我来说, cron 作业任务是certbot修改文件ports.conf

我禁用了这项工作,并在请求时更新我的​​证书certbot -i apache --webroot并输入路径。

答案2

除非您使用某种管理面板(例如 Webmin 或 cPanel)或配置管理工具(例如 Puppet、Ansible 或 Salt),否则不应从 Debian 包管理器(dpkg(1))以外的任何其他来源对您的服务器配置进行更改。

如果您运行了分发版升级,或者在服务器中启用了无人值守升级,则可能会发生这种情况。这通常是登录的/var/log/dpkg.log

您可以通过添加以下行来覆盖此行为,以确保不会对任何软件包应用配置更改/etc/apt/apt.conf.d/local.conf

Dpkg::Options { "--force-confdef"; "--force-confold"; }

为您概述这些选项:

--force-confdef当 dpkg 可以单独决定时,要求 dpkg 单独决定,否则会提示。这是 dpkg 的默认行为,此选项主要与 --force-confold 结合使用。

--force-confold不修改当前配置文件,新版本以 .dpkg-dist 后缀安装。仅使用此选项,即使您未修改的配置文件也会保持不变。您需要将其与 --force-confdef 结合使用,让 dpkg 覆盖您未修改的配置文件。

您还可以通过ucf(1)将配置添加到来实现这一点,/etc/ucf.conf.以便能够检测文件的更改,您可以将其inotify与其他一些命令结合使用,例如lsof。如果您需要进一步的帮助,请告诉我。

希望这可以帮助!

相关内容