直接修改 apache 主配置文件即可隐藏版本号和服务器信息,核心是设置 servertokens prod 控制响应头仅显示“apache”,serversignature off 关闭错误页底部服务器标识,并建议启用 mod_headers 模块执行 header always unset server 彻底移除 server 头,同时清理 x-powered-by 等敏感头。

直接修改 Apache 主配置文件就能隐藏版本号和服务器信息,核心是控制响应头和错误页两处输出,不需要换系统、删源码或重装软件。
改 ServerTokens 控制响应头显示
Apache 默认在 HTTP 响应头里发 Server: Apache/2.4.52 (Ubuntu) OpenSSL/1.1.1f 这类完整信息。攻击者能据此查找对应漏洞。
- 打开配置文件:
/etc/apache2/apache2.conf(Debian/Ubuntu)或/etc/httpd/conf/httpd.conf(RHEL/CentOS) - 搜索
ServerTokens,把它设为Prod:ServerTokens Prod - 效果:响应头只留
Server: Apache,不带版本、模块、操作系统等任何细节 - 其他可选值如
Major或Min仍会暴露部分版本,Prod是最简且推荐的设置
关 ServerSignature 隐藏错误页脚
当访问不存在的页面(如 404)或发生内部错误(500)时,Apache 默认会在页面底部加一行“Apache/2.4.52 (Ubuntu) Server at example.com Port 80”,这也得去掉。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 在同一配置文件里找
ServerSignature,设为Off:ServerSignature Off - 如果找不到这行,直接添加即可
- 这项设置会影响所有由 Apache 自动生成的页面,包括目录列表、代理错误、mod_info 输出等
额外建议:移除 Server 头或清理其他敏感头
仅靠 ServerTokens Prod 还是会在响应头里保留 Server: Apache。若想彻底不留痕迹,可借助 mod_headers 模块:
- 确认模块已启用:
a2enmod headers(Debian/Ubuntu)或检查LoadModule headers_module是否在配置中 - 在配置文件里添加:
<ifmodule mod_headers.c><br> Header always unset Server<br></ifmodule>
- 顺手清理可能泄露技术栈的头,比如:
Header always unset X-Powered-ByHeader always unset X-Generator
验证与重启
改完保存,必须重启服务才能生效:
- Ubuntu/Debian:
sudo systemctl restart apache2 - RHEL/CentOS:
sudo systemctl restart httpd - 验证是否生效:
curl -I https://your-domain.com,看Server字段是否只剩Apache或已消失 - 手动触发一个 404 页面,确认底部没有服务器标识










