宝塔面板通过设置默认站点为返回403的空站并配置Nginx Host白名单来拦截恶意泛解析请求:先添加*域名站点并配置return 403;再在nginx.conf中用map+if限制合法Host,非白名单请求返回444。

宝塔面板如何识别并拦截恶意泛解析请求
宝塔本身不主动拦截泛解析,它只是把所有匹配不到具体站点的请求,全部转发给「默认网站」处理。所以关键不是“防”,而是控制默认网站的行为——让它不响应、不泄露信息、不被利用。
设置默认站点为返回403的空站(推荐方案)
直接让默认站点返回 403 Forbidden,是最干净的做法。恶意用户用 xxx.你的IP 访问时,连首页都看不到,更无法探测服务、刷SEO或挂黑页。
- 在宝塔后台「网站」→「添加站点」,域名填
*(注意:必须是单个星号,不能带空格或其它字符) - 根目录选一个空文件夹,比如
/www/wwwroot/default_403,确保该目录下 没有任何文件 - 点击「提交」后,进入该站点设置 → 「配置文件」,找到
location /块,在里面加一行:return 403;
- 保存并重载 Nginx(或 Apache)配置。验证方式:用浏览器直接访问服务器 IP,应看到
403 Forbidden页面,且响应头中Status: 403
为什么不能只靠「绑定域名」或「删默认站」
很多人以为删掉默认站点或只绑定合法域名就安全了,其实不行:
- 宝塔只要没显式配置
*站点,就会自动启用内置默认站(指向第一个创建的网站),这等于把所有泛解析流量悄悄导过去 - 如果默认站恰好是 WordPress 或其他 CMS,可能暴露
wp-login.php、robots.txt,甚至被当成跳板刷权重 - 单纯在「网站」列表里删掉默认站,不代表 Nginx 配置里清除了
server_name _;或通配逻辑,重启后可能恢复
额外加固:Nginx 层过滤非白名单 Host 头
仅靠默认站还不够彻底。攻击者可能伪造 Host 请求头绕过站点匹配(比如用 curl -H "Host: evil.com" http://你的IP)。这时候需要在 Nginx 全局层面做 Host 白名单校验。
- 编辑宝塔的 Nginx 主配置文件:
/www/server/nginx/conf/nginx.conf - 在
http块内加入:map $host $invalid_host { default 1; yourdomain.com 0; www.yourdomain.com 0; }(把yourdomain.com换成你真实使用的域名) - 再在每个
server块顶部加:if ($invalid_host) { return 444; }(444是 Nginx 特有状态码,直接断连,比 403 更隐蔽) - 重载 Nginx。此时任何非白名单 Host 的请求,连接会被立即关闭,连响应包都不发
这个配置容易漏掉 HTTPS 的 server 块,或者忘记在 SSL 站点里也加 if 判断——多站点、多端口、多协议时,每个 server 都得单独处理。

















