宝塔服务器管理是目前市面上非常流行的 Linux 系统管理应用,可视化操作深受个人站长们的喜爱,但宝塔管理系统并不是无可挑剔的,最近因为申请 IP SSL 加密证书,无意中发现个对优化很不友好的问题,就简单用这篇文章来说明一下,希望对那些没有重视 IP 访问的站长有所帮助。

问题分析

宝塔管理界面默认是可以通过 IP 地址的 80 和 443 端口访问页面的,有时候很多人也都会把默认的 default_server 删除掉,删除后默认访问的就是主站的目录,一旦 IP 可以访问网站就会导致搜索引擎收录,使网站权重发生变化,也会把网站公网 IP 暴露出来,导致网站存在不安全因素,比如:恶意解析。

解决方法

方法一:

1、此解决方法是没有删除默认的 default_server 时使用(判断方法为:通过 IP 访问时看到的是宝塔 Nginx 的默认根目录 index.html 文件),不需要新建站点,也没必要新建站点,使用 SFTP 或 FTP 打开以下文件,路径如下:

/www/server/panel/vhost/nginx/0.default.conf

2、修改 default.conf 文件,此文件就是宝塔面板默认站点的 nginx 规则,这里我们把之前的 nginx 规则删除,重新写入以下规则,如下:

server {
  listen 80 default;
  listen 443 default_server;
  server_name _;
  ssl_certificate /www/server/panel/ssl/certificate.pem;
  ssl_certificate_key /www/server/panel/ssl/privateKey.pem;
  ssl_session_timeout 5m;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
  ssl_prefer_server_ciphers on;
  return 444;
}

方法二:

1、此解决方法是删除了默认的 default_server 时使用(判断方法为:通过 IP 访问时看到的是绑定域名的网站首页),需要在宝塔后台网站管理页面新建站点,域名填写网站 IP 地址,如下图:

宝塔新建网站站点

2、新建网站站点完成后,在新站站点的设置内找到“配置文件”,将 return 444 添加到 server 规则内,如下:

server {
    listen 80;
    listen 443 ssl http2;
    server_name 114.*.*.*;
    ...
    return 444; // 要添加的内容
    ...
    index index.php index.html index.htm default.php default.htm default.html;
}

最后说明

此方法不影响使用IP+端口访问宝塔管理后台界面,只是禁止了通过 IP 访问 80/443 端口,return 是返回的 444 响应,你也可以修改成 502、503、404 等其他的错误响应。