关闭 ServerTokens 和 ServerSignature 是隐藏 Apache 服务器指纹的基础操作:设置 ServerTokens Prod 使响应头仅显示 “Apache”,ServerSignature Off 移除错误页中的服务器信息,二者均需写入主配置文件全局块并重启服务验证。

在 Apache 主配置文件中关闭 ServerTokens,目的是让响应头中的 Server 字段只显示 “Apache”,不带版本号(如 2.4.52)和操作系统信息(如 (Ubuntu))。这一步是隐藏服务器指纹的基础操作,但必须配合其他设置才真正有效。
找到并编辑主配置文件
不同系统路径略有差异:
- Debian/Ubuntu:通常为
/etc/apache2/apache2.conf或/etc/apache2/mods-enabled/httpd.conf - RHEL/CentOS:一般在
/etc/httpd/conf/httpd.conf - 若使用宝塔等面板,路径可能为
/www/server/apache/conf/httpd.conf
用文本编辑器打开该文件(如 sudo nano /etc/apache2/apache2.conf),搜索 ServerTokens。如果没找到,就在文件末尾或 <IfModule mime_module> 附近手动添加。
设置 ServerTokens Prod
将这一行写入配置文件(确保没有被注释掉):
ServerTokens Prod它的作用是把原本类似 Server: Apache/2.4.52 (Ubuntu) OpenSSL/1.1.1f 的响应头,压缩成 Server: Apache。注意:
– 不要写成 ServerTokens Product 或 ServerTokens Production,只有 Prod 是合法值;
– 该指令需放在全局配置块中(如 <IfModule mpm_prefork_module> 外),不能只放在某个 <VirtualHost> 内,否则可能不生效。
必须同步关闭 ServerSignature
ServerTokens Prod 只管 HTTP 响应头,错误页面(如 404、500)底部的服务器信息还得靠另一项控制:
同样写在主配置文件里,和 ServerTokens Prod 放在一起即可。它会移除错误页 HTML 底部那行 “Apache/2.4.52 (Ubuntu) Server at example.com Port 80” 类似文字。
重启服务并验证
保存配置后,执行对应命令重启服务:
- Debian/Ubuntu:
sudo systemctl restart apache2 - RHEL/CentOS:
sudo systemctl restart httpd
验证是否生效:
- 运行
curl -I https://your-domain.com,检查响应头中Server:是否只剩Apache(不含版本和系统) - 访问一个不存在的路径,如
curl -I https://your-domain.com/xxx,确认 404 响应头和返回的 HTML 页面都不再泄露信息
仅设 ServerTokens Prod 和 ServerSignature Off 是最小可行方案,但若追求更彻底的隐藏,还需配合 Header unset Server 和清理 PHP、CDN 等其他泄露点。


















