随着网站、应用、API、视频、软件下载等业务规模不断增长,CDN已经成为很多项目提升访问速度和稳定性的重要基础设施。
传统CDN服务虽然接入简单,但长期使用也存在一些问题:
- 流量费用随着业务增长不断增加;
- 节点、调度策略和数据路径无法完全掌控;
- 部分业务存在合规、数据安全或者定制化需求;
- 想打造自己的CDN服务,却需要投入大量研发成本。
因此,越来越多企业、IDC服务商以及技术团队开始考虑自建CDN。
99CDN就是一套帮助用户快速搭建自有CDN网络的平台。它不是传统意义上的CDN流量销售商,而是一套CDN基础设施管理系统,用户可以利用自己的服务器资源部署边缘节点,搭建属于自己的内容分发网络。
99CDN是什么?
简单来说,99CDN提供的是一套“搭建CDN的工具”。
传统CDN模式:用户购买CDN服务 → CDN厂商提供节点 → 按流量或套餐收费
而99CDN模式:用户准备服务器资源 → 部署CDN节点 → 自主管理调度和缓存 → 构建自己的CDN网络
例如:
你拥有美国、日本、香港、新加坡等多个服务器节点,可以通过99CDN统一管理这些节点,然后根据用户地区、线路质量等因素进行流量调度。
最终形成:用户请求 → 最近节点 → 缓存内容 → 提升访问速度
对于拥有大量服务器资源的IDC、云服务商,或者希望长期降低CDN成本的企业来说,自建CDN可以提供更高的自主控制能力。
99CDN主要功能介绍
1. CDN节点管理
99CDN支持用户自行添加边缘节点。
节点服务器可以部署在不同地区,例如:
用户可以根据业务需求扩展节点数量。
在后台添加节点后,系统会生成对应安装命令,在节点服务器执行即可完成部署。
2. 智能调度管理
99CDN提供DNS与GTM(全局流量管理)功能。
通过节点健康状态、地区等信息,可以将用户请求分配到不同节点。
例如:
- 亚洲用户访问亚洲节点;
- 欧美用户访问欧美节点;
- 某个节点异常时,可以切换到其他节点。
相比简单DNS轮询,自建CDN可以拥有更多调度控制能力。
3. 缓存加速能力
99CDN支持缓存功能,包括:
- Slice Cache(分片缓存)
- 多级缓存回源
对于大文件、软件下载、视频等场景,可以通过缓存机制减少源站压力。
典型架构:
用户
↓
边缘节点缓存
↓
区域节点
↓
源站
通过多级缓存,可以降低源站压力,提高访问稳定性。
4. 安全防护功能
CDN不仅负责加速,也承担一定安全防护作用。
99CDN提供:
不同授权版本支持的功能可能存在区别,免费版本主要适合体验和基础使用。
5. 商业化运营能力
对于IDC或者云服务商来说,99CDN还提供商业化运营相关功能,例如:
- 多租户管理
- 套餐配置
- 计费系统
可以基于自身服务器资源快速搭建类似CDN销售平台。
99CDN适合哪些用户?
1. 网站和业务量较大的企业
例如:
- 视频网站
- 下载站
- 游戏业务
- 图片资源站
- API服务
大量流量业务使用传统CDN可能产生较高成本,自建CDN可以提高资源利用率。
2. IDC和云服务商
如果拥有大量服务器资源,可以利用99CDN搭建自己的CDN产品。
例如:
原本出租服务器资源,现在增加:
- CDN加速服务
- 防护服务
- 企业网络优化服务
增加新的业务收入。
3. 对数据和网络路径有要求的企业
部分企业希望:
- 掌控数据流向;
- 自主管理节点;
- 定制调度策略。
自建CDN可以提供更高控制权。
99CDN免费版本体验
根据实际测试,目前99CDN提供免费授权版本。
免费版本可以用于体验自建CDN功能。
例如:
- 支持部署CDN节点;
- 支持添加自定义服务器节点;
- 免费版本测试可使用2个IP节点。
对于个人站长、小型项目,可以先使用免费版本了解整个CDN架构。
99CDN部署教程
下面介绍完整部署流程。
整个部署分为两部分:
- 安装管理端(主控服务器)
- 安装CDN节点服务器
架构如下:
管理端服务器
|
|
管理多个CDN节点
|
-------------------
| | |
香港节点 日本节点 美国节点
一、准备服务器环境
管理端服务器要求
最低配置:
| 项目 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 1核 | 4核以上 |
| 内存 | 2GB | 8GB以上 |
| 硬盘 | 50GB SSD | 200GB NVMe SSD |
系统支持
支持:
- CentOS 7.x
- CentOS Stream 8/9
- Ubuntu 18.04/20.04/22.04 LTS
- Debian 10/11
- Rocky Linux 8/9
注意:
目前暂不支持ARM架构。
二、同步服务器时间
安装之前建议检查服务器时间。
执行:
timedatectl
如果时间不准确,需要同步时间。
Ubuntu/Debian:
apt update apt install -y chrony systemctl enable --now chrony chronyc makestep
CentOS/Rocky:
yum install -y chrony systemctl enable --now chronyd chronyc makestep
时间异常可能导致安装失败。
三、安装99CDN管理端
1. 开放8060端口
99CDN管理后台默认使用:
TCP 8060
Ubuntu:
ufw allow 8060
CentOS:
firewall-cmd --permanent --add-port=8060/tcp firewall-cmd --reload
同时需要检查云服务器安全组。
2. 执行安装命令
SSH连接管理端服务器。
执行:
curl -fsSL https://install.99cdn.com | bash
安装程序会自动部署相关组件。
包括:
- Redis
- PostgreSQL
- 管理服务
等待安装完成。
完成后会显示后台访问地址:
http://服务器IP:8060
实操结果代码示意:
root@ecs-TXd6s:~# curl -fsSL https://install.99cdn.com | bash [2026-08-12 01:50:36] ================================================================= [2026-08-12 01:50:36] 安装脚本 开始执行 [2026-08-12 01:50:36] 命令行参数: [2026-08-12 01:50:36] 安装配置: DOWNLOAD_URL=https://www.99cdn.com/filebox/version/ab26e6d5ce47feb900fd98d2250f8979, INSTALL_DIR=/opt/srv-biz [2026-08-12 01:50:36] 系统时间: Wed Aug 12 01:50:36 CST 2026 [2026-08-12 01:50:36] ================================================================= [2026-08-12 01:50:36] === 开始安装服务 === [2026-08-12 01:50:36] 日志文件: /var/log/srv-biz-installer.log [2026-08-12 01:50:36] 收集系统信息 [2026-08-12 01:50:36] 操作系统: Debian GNU/Linux 12 [2026-08-12 01:50:36] CPU: AMD EPYC 7K62 48-Core Processor [2026-08-12 01:50:36] 内存: 967Mi [2026-08-12 01:50:36] 磁盘使用情况: Filesystem Size Used Avail Use% Mounted on /dev/mapper/debian-root 20G 1.9G 18G 10% / [2026-08-12 01:50:36] 检查系统环境... [2026-08-12 01:50:36] 检查目录 /opt 的可用空间 [2026-08-12 01:50:36] 可用空间: 18073MB, 需要: 200MB [2026-08-12 01:50:36] 环境检查通过 [2026-08-12 01:50:36] 开始下载安装包 [2026-08-12 01:50:36] 临时目录: /tmp/tmp.mmRVkGO2wl [2026-08-12 01:50:36] 安装包路径: /tmp/tmp.mmRVkGO2wl/package.tar.gz [2026-08-12 01:50:36] 开始下载: https://www.99cdn.com/filebox/version/ab26e6d5ce47feb900fd98d2250f8979 [2026-08-12 01:50:36] 下载尝试 1/3 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 67.7M 100 67.7M 0 0 21.1M 0 0:00:03 0:00:03 --:--:-- 21.1M [2026-08-12 01:50:39] 下载成功: 68M [2026-08-12 01:50:39] 验证安装包 [2026-08-12 01:50:39] 安装包大小: 71066839 字节 [2026-08-12 01:50:39] 检查安装包完整性 [2026-08-12 01:50:40] 创建验证目录: /tmp/tmp.mmRVkGO2wl/verify [2026-08-12 01:50:42] 找到安装程序: ./setup [2026-08-12 01:50:42] 安装包校验通过 [2026-08-12 01:50:42] 安装包验证通过 [2026-08-12 01:50:42] 安装目录不存在或为空,无需备份 [2026-08-12 01:50:42] 准备安装目录 [2026-08-12 01:50:42] 开始安装: 安装包=/tmp/tmp.mmRVkGO2wl/package.tar.gz, 备份目录=, 临时目录=/tmp/tmp.mmRVkGO2wl [2026-08-12 01:50:42] 创建解压目录: /tmp/tmp.mmRVkGO2wl/extract [2026-08-12 01:50:42] 解压安装包: /tmp/tmp.mmRVkGO2wl/package.tar.gz 到 /tmp/tmp.mmRVkGO2wl/extract [2026-08-12 01:50:43] 解压完成,共 5 个文件 [2026-08-12 01:50:43] 获取解压包版本信息... [2026-08-12 01:50:43] 执行解压包中版本命令: /tmp/tmp.mmRVkGO2wl/extract/asset/srv-biz -v [2026-08-12 01:50:43] 解压包程序版本: srv-biz version v3.2.0 [2026-08-12 01:50:43] 找到安装程序: /tmp/tmp.mmRVkGO2wl/extract/setup [2026-08-12 01:50:43] 切换到解压目录: /tmp/tmp.mmRVkGO2wl/extract [2026-08-12 01:50:43] 执行安装程序... [2026-08-12 01:50:43] ---------------------------------------- 当前系统:debian 12 正在检查组件是否支持当前系统: +------------+----------+--------------------+ | 组件 | 是否支持 | 支持的系统 | +------------+----------+--------------------+ | postgresql | 支持 | almalinux 8/9/10 | | | | centos 7/8/9/10 | | | | debian 10/11/12/13 | | | | rocky 8/9/10 | | | | ubuntu 18/20/22/24 | +------------+----------+--------------------+ | redis | 支持 | almalinux 8/9/10 | | | | centos 7/8/9/10 | | | | debian 10/11/12/13 | | | | rocky 8/9/10 | | | | ubuntu 18/20/22/24 | +------------+----------+--------------------+ 开始安装: postgresql 执行命令: apt-get "update" 执行命令: apt-get "install" "lsb-release" "curl" "gpg" "-y" 执行命令: sh "-c" "curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /usr/share/keyrings/postgresql-archive-keyring.gpg --yes" 发行版:bookworm 是否归档:false 执行命令: sh "-c" "echo \"deb [signed-by=/usr/share/keyrings/postgresql-archive-keyring.gpg] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main\" > /etc/apt/sources.list.d/pgdg.list" 执行命令: apt-get "update" 执行命令: apt-get "install" "-y" "postgresql-14" 执行命令: sed "-i" "1 a listen_addresses = '*'" "/etc/postgresql/14/main/postgresql.conf" 执行命令: sed "-i" "/^max_connections/ c max_connections = 1000" "/etc/postgresql/14/main/postgresql.conf" 执行命令: sed "-i" "$ a host all all 0.0.0.0/0 md5" "/etc/postgresql/14/main/pg_hba.conf" 执行命令: sed "-i" "/^port/ c port = 53897" "/etc/postgresql/14/main/postgresql.conf" 执行命令: systemctl "enable" "postgresql" ⠋Synchronizing state of postgresql.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable postgresql 执行命令: systemctl "restart" "postgresql" could not change directory to "/tmp/tmp.mmRVkGO2wl/extract": 权限不够 CREATE ROLE ================================================================================ postgresql PGDATA目录: /var/lib/postgresql/14/main postgresql 用户名: bless postgresql 密码: 6Ra11f8dGVqOGQcn0O postgresql 端口: 53897 postgresql 配置文件: /etc/postgresql/14/main/postgresql.conf ================================================================================ 开始安装: redis 执行命令: apt-get "install" "lsb-release" "curl" "gpg" "-y" 执行命令: sh "-c" "curl -fsSL https://packages.redis.io/gpg | gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg --yes" 执行命令: sh "-c" "echo \"deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main\" > /etc/apt/sources.list.d/redis.list" 执行命令: apt-get "update" 执行命令: apt-get "install" "redis-server" "-y" 执行命令: sed "-i" "s/bind 127.0.0.1/bind 0.0.0.0/g" "/etc/redis/redis.conf" 执行命令: sed "-i" "1 a requirepass \"x8TVovXUb3LFj0vcZJ\"" "/etc/redis/redis.conf" 执行命令: sed "-i" "s/^port *[0-9]\\+/port 33513/" "/etc/redis/redis.conf" 执行命令: systemctl "enable" "redis-server" 执行命令: systemctl "restart" "redis-server" ================================================================================ redis 密码: x8TVovXUb3LFj0vcZJ redis 端口: 33513 redis 配置文件: /etc/redis/redis.conf ================================================================================ 创建数据库: srv-biz-v3 could not change directory to "/tmp/tmp.mmRVkGO2wl/extract": 权限不够 CREATE DATABASE 执行命令: bash "-c" "cp -r asset/* /opt/srv-biz" 执行命令: bash "-c" "cp -r asset/.auth /opt/srv-biz" 执行命令: systemctl "daemon-reload" 执行命令: systemctl "enable" "srv-biz" ⠋Created symlink /etc/systemd/system/multi-user.target.wants/srv-biz.service -> /lib/systemd/system/srv-biz.service. ✅ 服务安装完成! ================================================================================ 如果您使用的是云服务器,请在安全组中打开端口:8060 请使用您的浏览器访问服务地址进行初始化:http://ip:8060 密码重置命令:cd /opt/srv-biz && ./srv-biz reset-password ================================================================================ [2026-08-12 01:52:49] ---------------------------------------- [2026-08-12 01:52:49] 安装成功完成 [2026-08-12 01:52:49] 获取程序版本信息... [2026-08-12 01:52:49] 执行: /opt/srv-biz/srv-biz -v [2026-08-12 01:52:49] 程序版本: srv-biz version v3.2.0 [2026-08-12 01:52:49] === 安装成功 === [2026-08-12 01:52:49] 安装目录: /opt/srv-biz [2026-08-12 01:52:49] ================================================================= [2026-08-12 01:52:49] 清理临时文件: /tmp/tmp.mmRVkGO2wl 执行命令: systemctl "start" "srv-biz" [2026-08-12 01:52:49] 服务启动成功
四、初始化管理后台
浏览器打开:
http://你的服务器IP:8060
首次访问进入初始化页面。
需要填写:
管理端通信地址
填写当前后台地址,例如:
http://154.36.*.***:8060
该地址需要保证节点服务器可以访问。
设置管理员账号密码
填写:
- 管理员账号
- 管理员密码
完成初始化。
五、激活授权
登录后台后,需要绑定授权。
免费用户可以使用官方提供的免费授权Key。注册账号登录后访问:https://www.99cdn.com/workbench,即可查看免费版key。
激活完成后即可进入管理后台。
六、添加CDN节点服务器
管理端部署完成后,就可以添加边缘节点。
进入:
节点管理 → 节点列表
点击:
添加节点
填写:
- 节点名称
- 机房信息
- 运营商
- IP地址归属等
保存后,系统会生成节点安装命令。
后续配置比较简单,一步步操作即可,这里就不再赘述了。如果不知道怎么操作,官方也提供了演示站点https://www.52cdn.com/,比照参考进行即可!
七、安装节点程序
登录节点服务器。
执行后台生成的安装命令。
例如:
curl -fSL http://管理端IP:8060/.../node_install.sh -o install.sh && bash install.sh
等待安装完成。
返回管理后台:
节点状态会变为:
运行中
表示节点部署成功。
八、配置CDN加速站点
进入:
站点管理
添加需要加速的网站。
然后配置:
- 源站地址
- 缓存规则
- 安全策略
99CDN会生成接入CNAME。
九、配置DNS解析
使用自己的DNS服务商。
例如:Cloudflare DNS。
添加CNAME:
你的业务域名 ↓ 99CDN提供的CNAME地址
完成解析后,用户访问域名即可进入CDN节点。
十、测试CDN效果
可以通过:
- Ping测试
- HTTP访问测试
- 节点日志
查看请求是否进入CDN节点。
如果配置多个节点,根据用户地区可能访问不同边缘节点。
常用维护命令
管理端
查看状态:
systemctl status srv-biz
启动:
systemctl start srv-biz
重启:
systemctl restart srv-biz
查看日志:
tail -f /opt/srv-biz/storage/logs/server.log
重置密码:
cd /opt/srv-biz && ./srv-biz reset-password
CDN节点
查看状态:
99ctl status
启动:
99ctl start
重启:
99ctl restart
查看日志:
99ctl logs
设置开机启动:
99ctl enable
常见问题
1. 后台打不开怎么办?
检查:
- 8060端口是否开放;
- 云服务器安全组;
- 管理服务是否运行。
查看:
systemctl status srv-biz
2. 节点安装失败怎么办?
检查:
- 节点是否能访问管理端;
- 管理端地址填写是否正确;
- 防火墙是否限制访问。
节点测试:
curl http://管理端地址:8060
3. 安装依赖失败
很多情况下是服务器时间异常。
重新同步时间后再次安装。
总结
99CDN提供了一种新的CDN使用方式:
不是购买别人提供的CDN流量,而是利用自己的服务器资源搭建属于自己的CDN网络。
对于个人站长来说,可以通过免费版本体验自建CDN;
对于IDC、云服务商以及企业用户来说,可以利用99CDN快速搭建自己的全球加速平台。
当然,自建CDN也意味着需要自己负责服务器资源、节点质量以及网络优化。
如果你的业务规模较大,希望降低长期CDN成本,或者希望拥有更高的网络控制能力,99CDN提供了一种值得尝试的方案。
老刘博客


































