启用 mod_info 需加载模块并配置 Location 块,如 SetHandler server-info Require ip 127.0.0.1;仅限内网或跳板机访问,禁用公网暴露,调试后应及时关闭。
启用 mod_info 可以快速查看 apache 当前加载的模块、配置片段、钩子注册情况等,对排查配置冲突或理解运行时行为很有帮助。但它本身不具备实时监控能力,也不应长期开放在生产环境。
如何启用 mod_info 并安全访问
该模块默认通常未启用,需手动加载并配置访问控制:
- 确认模块已加载:检查
httpd.conf或mods-enabled/目录中是否存在LoadModule info_module modules/mod_info.so(路径依安装方式而异) - 添加位置配置块(推荐放在
httpd.conf末尾或独立配置文件如httpd-info.conf中):
<location>
SetHandler server-info
Require ip 127.0.0.1
Require ip 192.168.1.0/24
</location>注意:不要使用 Allow from all 或开放公网 IP,避免敏感配置泄露;Require 指令是 Apache 2.4+ 的标准写法,旧版用 Order/Allow 已不推荐。
常用查询参数与实用场景
启用后可通过 URL 参数聚焦查看特定信息,例如:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
http://localhost/server-info?config—— 显示当前生效的完整配置树(含被包含文件),适合验证Include是否生效、查找某指令实际位置 -
http://localhost/server-info?list—— 列出所有已启用模块,确认mod_ssl、mod_rewrite等关键模块是否加载成功 -
http://localhost/server-info?hooks—— 查看各模块注册的 hook 链,辅助调试请求处理流程异常(如重写规则不触发) -
http://localhost/server-info?mod_ssl—— 单独查看某个模块的编译选项和运行时状态
安全隐患与规避要点
mod_info 会暴露服务器版本、编译参数、模块路径、配置文件绝对路径等,攻击者可据此定位漏洞利用链:
- 禁止在生产环境长期启用,调试完成后应注释或删除
块并重启服务 - 切勿配合
mod_status一起开放,后者可能暴露实时连接数、请求URL、客户端IP等更敏感数据 - 若必须保留,确保仅允许运维跳板机或内网固定IP访问,并配合防火墙二次限制
- 定期检查
httpd -M输出,确认无意外启用的调试类模块(如mod_info、mod_status、mod_proxy_balancer的管理界面)
替代方案建议
对于日常配置审计与安全加固,更推荐以下方式:
- 使用
apachectl -t -D DUMP_MODULES查看已加载模块(无需 HTTP 服务开启) - 用
apachectl -t -D DUMP_VHOSTS检查虚拟主机配置是否冲突 - 结合
grep -r "Options.*Indexes\|AllowOverride" /etc/apache2/快速识别目录遍历风险点 - 部署
lynis或apache2ctl -S配合人工 review,比依赖 Web 界面更可控










