cdnfly开心版搭建教程:从主控到节点,自建CDN系统全流程
想自己搭建一套CDN系统,实现网站加速、缓存和防CC攻击?cdnfly是个不错的选择,不管是个人测试还是小规模使用,都能满足需求。11评选整理了这套保姆级搭建方法,从准备工作到主控、节点配置,再到控制台设置,一步步教你搞定,小白也能跟着操作。不过要提醒的是,开发不易,有条件建议支持正版,本文仅作技术学习参考。
一、准备工作:这些条件必须满足
在开始搭建前,先确认服务器和环境是否符合要求,不然容易出问题:
系统要求:主控和节点服务器都必须是CentOS 7或Ubuntu 16.04,其他系统(比如Debian 11、Ubuntu 20、CentOS 8等)不支持,这点一定要注意;
端口要求:
主控服务器需要开放80、88、443、9200端口;
节点服务器需要开放80、443、5000端口;
内存要求:
主控服务器至少4GB内存(因为控制面板会占用较多资源);
节点服务器如果是1GB及以下内存,必须添加SWAP虚拟内存,否则可能安装失败;
其他注意:主控和节点不能安装在同一台服务器(会冲突80端口),且服务器上不能预先安装Nginx(会占用端口)。
准备的服务器清单参考(可根据需求调整):
1台4GB内存的CentOS 7服务器做主控(控制面板);
1台服务器搭建伪装授权站点(自建云端,用于绕过验证);
若干台CentOS 7服务器做CDN节点(比如1台美国节点、1台新加坡节点,分别接管不同地区流量)。
二、自建云端:绕过授权的关键步骤
如果没有官方授权,可以通过自建云端绕过验证(再次强调:盗B可耻,有条件请支持正版)。步骤如下:
1. 用指定源码搭建一个站点,绑定域名auth.cdnfly.cn和monitor.cdnfly.cn;
2. 按照源码中的说明配置Nginx伪静态;
3. 建议自己搭建,避免依赖他人的站点(如果他人站点关闭,你的CDN会提示授权过期)。
搭建完成后,记录下这台云端服务器的IP(比如示例中的51.81.222.246),后面会用到。
三、主控服务器配置:从环境准备到安装完成
主控是CDN的控制台,负责管理节点和配置,按以下步骤操作:
1. 环境准备
更新系统源:
yum update -y
修改hosts文件,将云端域名指向自建云端IP(让主控验证时访问你的自建站点):
vi /etc/hosts
添加以下内容(替换为你的云端IP):
51.81.222.246 auth.cdnfly.cn monitor.cdnfly.cn
检查hosts是否生效:
ping auth.cdnfly.cn ping monitor.cdnfly.cn
若返回的IP是你的云端IP,说明配置成功。
2. 安装cdnfly控制面板
执行以下命令安装主控(确保内存足够,否则会失败):
curl -fsSL https://github.com/Steady-WJ/cdnfly-kaixin/raw/main/master.sh -o master.sh && chmod +x master.sh && ./master.sh --es-dir /home/es
安装成功后,通过主控服务器IP(如http://167.235.134.18)访问控制台,默认账号密码:
管理员:wenjian/wenjian
普通用户:ceshi/ceshi
注意:5.1.12版本存在安全漏洞,普通用户可能通过API获取管理员权限,需按官方方法修复。
四、CDN节点配置:加入节点并优化
节点服务器负责实际的加速和缓存工作,以CentOS 7系统为例,步骤如下:
1. 环境准备
更新系统源:
yum update -y
添加SWAP虚拟内存(1GB及以下内存必须做):
# 创建swap文件(1000MB) dd if=/dev/zero of=/home/swap bs=1024 count=1024000 # 格式化swap /sbin/mkswap /home/swap # 启用swap /sbin/swapon /home/swap # 设置开机自动挂载 echo "/home/swap swap swap defaults 0 0" >> /etc/fstab
2. 安装被控服务
登录主控控制台,进入“系统管理>>系统升级”,复制节点安装命令;
在节点服务器上执行命令,替换其中的--master-ip(主控IP)、--es-ip(主控IP)、--es-pwd(主控密码,在控制台查看):
curl -fsSL https://github.com/Steady-WJ/cdnfly-kaixin/raw/main/agent.sh -o agent.sh && chmod +x agent.sh && ./agent.sh --master-ver v5.1.13 --master-ip 你的主控IP --es-ip 你的主控IP --es-pwd 你的主控密码
安装成功后,被控服务会自动安装Nginx等组件。
3. 优化节点:安装BBR加速
为提升节点网络性能,建议安装BBR:
wget "https://github.com/cx9208/bbrplus/raw/master/ok_bbrplus_centos.sh" && chmod +x ok_bbrplus_centos.sh && ./ok_bbrplus_centos.sh
4. 节点安装失败处理
若出现“无法获取agent版本”错误,需修改节点hosts,指向自建云端IP:
vi /etc/hosts # 添加(替换为你的云端IP) 51.81.222.246 auth.cdnfly.cn monitor.cdnfly.cn
五、控制台必要配置:让CDN跑起来
安装完成后,需要在控制台做基础配置,才能正常使用:
1. 添加CDN节点
登录主控控制台,进入“系统管理>>用户管理”修改默认密码;
进入“节点管理”,点击“添加节点”,按提示完成配置,让主控与节点建立连接;
若出现“同步cc_filter错误”,一般是节点内存不足,添加SWAP即可。
2. DNS设置与线路分组
在“DNS设置”中对接第三方DNS服务商(如阿里云、DNSPod、Cloudflare等),获取API密钥实现自动解析;
创建“线路分组”,将不同节点分配到对应线路(如电信、联通、移动、海外),实现分线路解析(需DNS服务商支持)。
3. 添加套餐与网站
添加套餐:设置套餐名称、月流量、域名数、线路分组等,分配给指定用户;
添加网站:用普通用户登录,购买套餐后,在“网站管理”中添加需要加速的域名,配置缓存规则、回源地址等。
4. 安全设置:禁用API漏洞
5.1.13版本存在API漏洞,需在“系统管理>>系统设置”中:
限制普通用户和管理员只能通过指定域名登录;
在登录域名的Nginx配置中禁止访问/v1/路径,避免API被滥用。
六、推荐配置:提升CDN性能和安全性
CC防护:在“安全管理”中设置单IP访问频率限制(如10秒内最多100次访问),有效防御简单CC攻击;
缓存设置:根据网站资源类型配置缓存规则(如缓存静态文件.js、.css、图片等),参考官方文档优化缓存策略;
节点带宽与缓存限制:在“节点管理”中设置单节点的最大带宽(如100Mbps)和缓存文件大小(不超过服务器硬盘容量);
SSL证书:在“证书管理”中一键申请或上传SSL证书,开启HTTPS,控制台会自动续签证书。
七、备份与恢复:避免配置丢失
定期备份主控配置,防止服务器故障导致数据丢失:
备份:
主控会自动每2小时备份数据库,文件在/data/backup/cdn/;
手动备份/opt/cdnfly/master/conf/config.py(记录AES_KEY和LOG_PWD);
建议用定时任务将备份上传到云存储(如Rclone同步)。
恢复:
在新主控上安装面板后,上传备份的数据库文件和config.py;
执行恢复脚本:
curl http://us.centos.bz/cdnfly/restore_master.sh -o restore_master.sh && chmod +x restore_master.sh && ./restore_master.sh
初始化elasticsearch并重启服务,节点重新指向新主控IP即可。
八、注意事项:这些坑要避开
系统必须是CentOS 7或Ubuntu 16.04,其他系统会安装失败;
主控和节点不能共用80、443端口,避免冲突;
低内存节点必须添加SWAP,否则会报错;
自建云端站点需一直运行,否则会提示授权过期;
源站需将CDN节点IP加入白名单,避免被源站防御拦截;
中文域名需先通过punycoder.com转换为xn--格式才能添加;
主控迁移后需关闭旧主控,否则新主控任务可能无法执行。
按照以上步骤,就能搭建起一套基本的cdnfly CDN系统,实现网站加速和缓存功能。11评选再次提醒,技术学习请支持正版软件,合法合规使用各类工具,避免侵权风险。如果在搭建过程中遇到问题,可以参考官方文档或相关技术社区的解决方案。

