ServerTokens 必须设为 Prod(唯一有效选项),在主配置文件中全局配置,配合 ServerSignature Off、Header unset Server、expose_php=Off 及 CDN/代理层清理,才能最大限度隐藏服务器信息。

ServerTokens 本身不能“关闭”,它是控制 Apache 在 HTTP 响应头中暴露多少服务器信息的指令,取值是枚举型,没有 Off 这个选项。真正要做的,是把它设为最精简的合法值:Prod。
设成 Prod 后,响应头里的 Server: 字段会变成 Server: Apache,不带版本号(如 /2.4.52)、不带操作系统(如 (Ubuntu))、不带模块列表(如 OpenSSL/1.1.1m PHP/8.1.0),这是 Apache 官方提供的、唯一能有效收敛暴露面的配置。
✅ 正确设置 ServerTokens 的步骤
-
编辑主配置文件(不是虚拟主机配置)
路径通常是:- Debian/Ubuntu:
/etc/apache2/apache2.conf或/etc/apache2/mods-available/security2.conf - RHEL/CentOS:
/etc/httpd/conf/httpd.conf - XAMPP(Windows/macOS/Linux):
/opt/lampp/etc/httpd.conf或C:\xampp\apache\conf\httpd.conf
- Debian/Ubuntu:
-
添加或修改这一行:
ServerTokens Prod
-
同时配好配套指令(缺一不可):
ServerSignature Off
这项不处理响应头,但能去掉 404/500 错误页面底部那行
Apache/2.4.52 (Ubuntu) Server at example.com Port 80—— 属于 HTML 内容层面的清理。
Apache Superset Dashboard and SQL Exploration Skill下载Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
保存后重启 Apache:
# Debian/Ubuntu sudo systemctl restart apache2 # RHEL/CentOS sudo systemctl restart httpd # XAMPP sudo /opt/lampp/lampp restart # Linux/macOS # 或点击 XAMPP 控制面板重启
⚠️ 常见误区提醒
-
<VirtualHost>块里写ServerTokens Prod无效 —— Apache 明确禁止在虚拟主机作用域内覆盖该指令,只接受主服务器级配置。 -
ServerTokens Minimal看似更小,实际仍返回Server: Apache/2.4.52,nmap、whatweb 等工具可直接识别主版本,不推荐。 - 单设
ServerTokens Prod不等于彻底隐身:响应头里仍有Server: Apache,攻击者知道你在用 Apache;如需完全移除该字段,必须配合mod_headers模块:<IfModule mod_headers.c> Header unset Server </IfModule>(启用模块:
a2enmod headers,Debian/Ubuntu;RHEL/CentOS 确保LoadModule headers_module modules/mod_headers.so已加载)
? 验证是否生效
用 curl -I 测试三类请求:
- 正常页面:
curl -I http://your-domain.com→ 响应头不应出现Server:行(若用了Header unset Server)或仅剩Server: Apache(仅设Prod) - 404 页面:
curl -I http://your-domain.com/xxx→ 同样检查响应头,并访问页面源码确认底部无服务器签名 - HTTPS 站点(如有):
curl -I https://your-domain.com→ SSL 虚拟主机也需同步应用相同配置
不复杂但容易忽略

















