自从我上次更新 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
。如果您需要进一步的帮助,请告诉我。
希望这可以帮助!