Xuan's blog

使用阿里云 CDN 保护网站真实 IP:完整配置指南

本文将详细介绍如何为网站配置阿里云 CDN,核心目标是隐藏服务器的真实 IP 地址,防止其直接暴露在公网,从而有效提升网站的安全性。

一、宝塔面板准备工作

1. 确认网站部署状态

2. 宝塔中检查网站配置

  1. 登录宝塔面板,进入网站菜单,确认 blog.ybyq.wang 站点已正常创建并可访问
  2. 检查站点根目录是否指向正确的网站文件路径

二、配置阿里云 CDN

1. 添加域名到 CDN

  1. 登录 阿里云 CDN 控制台,点击添加域名,我的域名添加过,所以随便填了一个
  2. 填写以下信息:

    • 加速域名blog.ybyq.wang(首次添加需在DNS解析中添加记录值)
    • 业务类型:选择图片小文件均可,此步骤主要目的是接入 CDN
    • 源站信息

      • 源站类型:IP
      • 源站地址:***.***.***.***(服务器真实 IP 地址)
      • 端口:80443(根据站点监听端口填写)
      • 回源协议:选择 HTTPHTTPS(需与宝塔站点配置一致,若站点已开启强制 HTTPS,则选择 HTTPS)
  3. 完成添加后,阿里云会分配一个 CNAME 地址

2. 配置 DNS 解析

  1. 前往域名注册商(如阿里云、腾讯云 DNSPod 等)的 DNS 解析控制台
  2. 添加 CNAME 记录:

    • 二级域名配置:找到 blog.ybyq.wangA 解析记录,将其类型修改为 CNAME,记录值改为阿里云 CDN 分配的 CNAME 地址,主机记录为二级域名前缀(例如 blog
    • 一级域名配置:直接添加 CNAME 记录,主机记录填 @
    • 如果提示记录冲突,删除原来的记录再设置新的
  3. 等待 DNS 解析生效(通常需要几分钟到几小时)

3. 配置成功确认

完成上述步骤后,可在阿里云 CDN 控制台看到域名状态为"正常运行"

三、宝塔面板安全加固(隐藏 IP 的关键步骤)

1. 禁止通过 IP 直接访问

这是防止攻击者绕过 CDN 直接访问源站的核心措施:

  1. 在宝塔面板中打开网站列表,找到对应 IP 的默认站点(通常为 ***.***.***.***)。如果没有,可以新建一个以 IP 地址为域名的站点
  2. 点击设置 > 配置文件,修改 Nginx 配置,确保同时处理 HTTP 和 HTTPS:

    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name _; # 匹配所有未绑定的域名和直接 IP 访问
        return 444; # 直接关闭连接,不返回任何信息,比 403 更安全
    }
    
    # 如果服务器开启了 HTTPS (443)
    server {
        listen 443 ssl http2 default_server;
        listen [::]:443 ssl http2 default_server;
        server_name _;
    
        # 配置一个无效或自签名的 SSL 证书,或指向不存在的证书路径
        # 目的是让通过 IP 的 HTTPS 访问因证书错误而失败
        ssl_certificate /etc/nginx/ssl/dummy.crt; # 确保证书文件不存在或无效
        ssl_certificate_key /etc/nginx/ssl/dummy.key;
    
        # 也可以直接返回错误,但证书错误通常能阻止连接建立
        return 444;
    }

2. 配置 SSL 证书

  1. 进入 blog.ybyq.wang 的站点设置,选择 SSL 选项卡
  2. 申请或上传证书(推荐申请 Let's Encrypt 免费证书)
  3. 开启强制 HTTPS选项

四、验证 CDN 生效

检查 CDN 节点 IP

使用 ping 命令验证 CDN 是否正确接管了网站流量:

ping blog.ybyq.wang

返回的 IP 应为阿里云 CDN 节点(非服务器真实 IP ***.***.***.***

本文所有图文均由在实践后整理记录

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »