宝塔面板里那个默认网站怎么关掉?删掉之后会不会影响我其他的站?

我在服务器上用宝塔建了几个站,发现直接用IP访问会跳到第一个创建的默认站点上,等于别人随便输个IP就能看到我的网站,感觉很别扭也不安全。想把这个默认站点关掉或者删掉,但又怕操作完其他站点的伪静态、SSL证书会跟着出问题。有没有人知道在宝塔里具体该怎么处理?
请先 登录 后评论

3 个回答

向阳而生

别急着删,宝塔这个“IP访问跳到某个站”不是删掉默认站就完事的。Nginx 的逻辑是:如果没有 default_server,它就按配置文件顺序拿第一个 server 来接客。所以你删了默认站,IP 访问很可能又跳到另一个站,等于白折腾。

最稳的做法是:留一个空站专门当默认站,让它把 IP 访问直接掐掉。

具体这么干:

宝塔面板里新建一个纯静态站,域名随便写个 default.local 这种,根目录空着都行。然后到 网站 -> 默认站点 那里,把这个空站设成默认站点。接着编辑这个空站的配置文件,把里面的 location / 改成:

location / {
    return 444;
}

return 444 就是不返回任何内容,直接断开连接,浏览器会显示无法访问。想温和点就用 return 403;,或者 return 301 https://你的主域名; 重定向走。

如果你还要管 HTTPS,那 443 的 server 块里也加同样的 return 444;,不然用 https://IP 访问还是可能落到某个站上,而且证书会乱。

那直接删默认站行不行?

行,但有个前提:你先得把上面那个空站设成默认站,再去删原来的默认站。删除时宝塔会问你要不要删网站目录、数据库、FTP,别顺手全勾了,尤其那个目录里如果有你放的东西先备份。

至于你担心的其他站:

伪静态、SSL 证书基本不会受影响,因为每个站的配置、证书、rewrite 都是各管各的,在 /www/server/panel/vhost/ 下面分开的。删默认站不会把别的站配置带走。

唯一要注意的是 443 默认证书。如果你原来默认站挂了 SSL,删了之后 IP 的 HTTPS 访问可能匹配到第一个开了 SSL 的站,浏览器会报证书错误。所以 443 也建议用空站默认拦截一下。

一句话:别停用、别直接删了就不管。新建空站 -> 设为默认站 -> 配置 return 444,其他正式站该咋用咋用,IP 访问直接闭嘴。

请先 登录 后评论
落纸烟云

这事我一般先不急着删,先看一个关键点:宝塔里的“默认站点”不是普通网站那么简单,它相当于一个“没匹配到域名时谁来接客”的兜底。你直接删了它,Nginx 不会空着,而是按顺序挑第一个站接,所以又可能跳到别的站上。

更稳的思路:别关,也别急着删,留一个“黑洞站”当默认站。

推荐做法:做一个不展示内容的黑洞站

  1. 宝塔里新建一个纯静态站,域名随便写 _ 或 default.local,根目录空着,PHP 不开。
  2. 到 网站 → 默认站点,把这个黑洞站设为默认站点。
  3. 编辑这个黑洞站的配置文件,别只改 location /,更彻底的是在 server 块里、location 外面直接加:
    return 444;

    这样所有路径都不响应,IP 访问浏览器会显示无法连接。

  4. 443 也要管。如果 Nginx 是 1.19.4 以上,可以更干净:
    listen 443 ssl default_server;
    ssl_reject_handshake on;

    这样 HTTPS 用 IP 访问直接拒握手,不暴露证书。老版本就老老实实开个自签证书,再加 return 444;。

  5. 如果服务器有 IPv6,别漏了:
    listen [::]:80 default_server;
    listen [::]:443 ssl default_server;

    不然 IPv6 直连 IP 可能绕过你的黑洞站。

原来的默认站能不能删?

能删,但顺序很重要:

  • 先把黑洞站设为默认站;
  • 确认 nginx -t 通过、重载正常;
  • 再去删原来的默认站;
  • 删除时宝塔会问是否删网站目录、数据库、FTP,只删站点本身,别顺手全勾;
  • 删完再回“默认站点”设置里看一眼,别让默认站点空了。

宝塔其实没有“一键关闭默认站点”的按钮,所谓关掉,就是让一个空站/黑洞站去接 IP 访问。

会不会影响其他站的伪静态、SSL?

正常情况下不会。宝塔每个站的伪静态、SSL 证书、数据库、FTP 都是分开的,删一个站不会自动改其他站配置。但有几个间接问题要检查:

  • 原来那个默认站是不是 443 的默认 SSL 站?删了之后,IP 的 HTTPS 访问可能落到第一个开了 SSL 的站,浏览器会报证书错误。
  • 其他站有没有手动引用过这个默认站的证书路径、伪静态文件、反向代理地址。
  • 这个默认站有没有绑计划任务、备份、监控、CDN 回源。
  • 如果之前有泛解析或未绑定域名访问,删完后落点会变。
  • 如果这个默认站已经被搜索引擎收录,直接 444 会让收录页面失效,可以先 403 或 301 过渡一阵再 444。

验证一下最放心

在服务器上跑几条命令看看:

curl -I http://你的服务器IP
curl -I -k https://你的服务器IP
curl -I -H "Host: 你的主域名" http://你的服务器IP

前两条应该是空回复、403 或握手中断;第三条应该正常返回你主域名的页面。宝塔里重载 Nginx,或者命令行 nginx -t && nginx -s reload。

最后补一句:防火墙和安全组看不到 HTTP 的 Host 头,没法区分“用 IP 访问”还是“用域名访问”,所以这事只能在 Nginx/Apache 层处理。如果你用的是 Apache,就不能写 return 444,可以在黑洞站配置里用 <Location "/"> Require all denied </Location> 返回 403。

一句话总结:别直接删,先设一个黑洞站当默认站;其他站基本安全,但 443 默认证书和默认落点要额外看一眼。

请先 登录 后评论
听雨眠

先说结论:你要的效果不是“删掉默认站”,而是“让 IP 访问落不到任何正经站上”。删站只是手段,而且宝塔这套东西删完默认站,Nginx 还会顺着配置顺序找下一个站来接,等于白删。所以别纠结删不删,先决定让谁当“接盘侠”。

前两位已经把“新建黑洞站 + return 444”讲得挺细了,我不重复,只补几个他们没提的坑,外加一个更省事的做法。

更省事的做法:就地改造,不用新建

如果你原来那个默认站本来就是个没用的空站/测试站,直接拿它改就行,不用新建:

  • 网站 → 找到它 → 设置里先备份一下目录(万一有东西)
  • 打开配置文件,在 server 块里、所有 location 外面加一行 return 444;
  • 回“网站 → 默认站点”,确认默认站点指的就是它

这样就完事了,省得再建一个站、再改默认指向。

别去手改 nginx.conf 加 default_server

有人会想直接在 /www/server/nginx/conf/nginx.conf 的 http 块里塞一个 listen 80 default_server; 的 server。别这么干——宝塔的“默认站点”功能本身就是靠给某个站打 default_server 标记实现的,你手动加一个,两边就撞了,nginx -t 会报 duplicate default server。要么用面板功能,要么手动,别混着来。

三个容易翻车的细节

  1. 日志留不留:黑洞站默认也会写访问日志,被扫的时候日志会涨得很快。想省 IO 就 access_log off;;但如果你想看谁在拿 IP 扫你,可以给它单独指定一个日志文件,tail -f 看几天,能发现不少扫描器。

  2. 套了 CDN 的注意:CDN 回源正常会带 Host 头,不会走默认站。但有些 CDN 的健康检查是直接拿源站 IP 去探,返回 444 会被判定成源站挂了,触发切换或告警。遇到这种情况,把健康检查改成带 Host 头,或者别用 IP 探。

  3. 已经被收录的 IP 页面:如果之前 IP 访问被百度/Google 收录了,改成 444 之后搜索结果不会马上消失,得去搜索资源平台提交移除,不然别人搜关键词还是能看到带 IP 的快照。

顺手把真正危险的口子堵一下

说实话,别人扫 IP 看到你网站首页,风险真不算大。真正要命的是这些:

  • 宝塔面板端口暴露(装的时候如果不是随机端口,默认就是 8888),扫到就撞后台
  • phpMyAdmin 的 888 端口
  • MySQL 3306、Redis 6379 监听在 0.0.0.0
  • 网站后台路径、.git、.env、备份压缩包

这些比“IP 能看到首页”危险多了。面板建议改端口 + 开 SSL + 绑域名 + IP 白名单,数据库只监听 127.0.0.1。

删掉到底会不会连坐其他站?

正常不会。每个站的伪静态、SSL、数据库、FTP 都是各管各的,vhost 配置也分开存在 /www/server/panel/vhost/nginx/ 下,删一个不动别人。

唯一一种会连坐的情况:你手动把别的站证书路径指向了被删站的证书目录(比如 /www/server/panel/vhost/cert/老站/xxx.pem)。宝塔删站会把那个 cert 目录整个删掉,引用它的站 HTTPS 就起不来了。检查一下:

grep -rn "vhost/cert" /www/server/panel/vhost/nginx/

看有没有跨站引用,有的话删之前先把证书复制走。

另外删的时候别忘了:宝塔会问你要不要删目录、数据库、FTP,只删站点本身,别顺手全勾。

请先 登录 后评论
  • 0 关注
  • 0 收藏,3 浏览
  • 雪原小狐 提出于 6 小时前

相似问题