专注于
VPS主机性能测评

基于cdnfly自建CDN的保姆级教程

面板是cdnfly,用的 ccclt 大佬的方法绕过授权.

2023.3.30更新:修正了第三节”自建云端的错误”,伪装授权站需要一直存在

一、前言

本文记录一下使用 [Cdnfly – 自建cdn|防CC攻击|cdn软件|cdn系统] 搭建CDN系统,保姆级教程 适合小白食用

个人感觉自建CDN反代网站效果都差不多,都可以实现加速 缓存 防攻击等功能,但我暂时还不是很懂nginx相关配置,相较而言 自建CDN更容易批量维护和管理各节点

官方安装文档:安装说明 · Cdnfly使用文档

二、准备

  • 一台最小4GB内存的服务器(vps)做主控(cdn面板控制台)
  • 若干服务器做CDN节点
  • 系统:cdnfly面板暂时仅支持Centos-7和Ubuntu 1604系统

本文以一台centos7系统的hetzner 4GB内存vps 167.235.134.18 做主控

一台任何系统的vps 63.251.217.137 搭建伪装授权站点,即cdnfly自建云端

一台centos7系统的DO纽约 512MB内存vps 192.241.156.51 做节点2 接管中国大陆移动以及海外等其他流量

一台centos7系统的DO新加坡 512MB内存vps 157.245.154.23 做节点2 接管中国大陆的电信和联通流量

为什么用DO 主要是我就知道这一家有0.5GB小内存,虽然这款比一些4GB内存的都贵 但为了测试512MB内存可用 还是选择了DO

为什么CDN节点机器用0.5GB内存小鸡 大部分廉价的国内优化机器只有0.5GB内存

三、cdnfly自建云端

有cdnfly官方授权的可跳过这一步,需要购买正版授权请前往 官网购买

因为我就是临时个人测试使用,官方那个有些贵,就采用 ccclt 大佬分享的的 绕过授权方法

盗版可耻 开发不易 有条件请用正版

cdnfly自建云端搭建方法:

用 这个源码 搭建一个站点,绑定域名auth.cdnfly.cn、monitor.cdnfly.cn ,并根据文件中的nginx伪静态配置设置伪静态。

建议自己搭建,不过也可以用我的,但是我的站点哪一天没了,你的机器会提示授权过期 到时候还是需要你自己搭建

我用宝塔搭建大概为这样:

image

image

image

四、主控服务器设置

1、首先更新centos7源

1
yum update -y && yum upgrade -y

 

2、修改主控vps的hosts文件

修改主控vps的hosts文件,将 auth.cdnfly.cn、monitor.cdnfly.cn 这2个域名指向刚才的自建云端服务器IP 63.251.217.137

修改hosts意义是 主控vps请求 auth.cdnfly.cn monitor.cdnfly.cn 这两个网站的内容会直接去 63.251.217.137 这个服务器请求,这样就绕过了官方服务器的验证

1
2
3
4
5
vi /etc/hosts


#添加以下内容,记得替换为你自己搭建的IP 你就用这个IP也行
63.251.217.137 auth.cdnfly.cn monitor.cdnfly.cn

image

3、检查hosts是否生效

1
2
3
ping auth.cdnfly.cn
ping monitor.cdnfly.cn
#如果都返回 63.251.217.137 说明hosts已经生效,主控vps请求 `auth.cdnfly.cn` `monitor.cdnfly.cn` 这两个网站的内容会直接去 `63.251.217.137` 这个服务器请求,这样就绕过了官方服务器的验证

image

4、安装cdnfly控制面板

这里参考 LoveesYe 整理的:https://github.com/LoveesYe/cdnflydadao

1
2
#直接在主控vps执行这条命令即可,控制面板占用3GB内存,内存不足会安装失败
curl -fsSL https://github.com/LoveesYe/cdnflydadao/raw/main/cdnfly/v5.1.13/master/master.sh -o master.sh && chmod +x master.sh && ./master.sh --es-dir /home/es

出现下图页面即安装成功,通过 IP http://167.235.134.18 直接访问即可

管理员账号和密码: admin/cdnfly
普通用户账号和密码: jason/cdnfly

image

image

五、CDN节点服务器配置

我用了两台做CDN节点

一台centos7系统的DO纽约 512MB内存vps 192.241.156.51 做节点2 接管中国大陆移动以及海外等其他流量

一台centos7系统的DO新加坡 512MB内存vps 157.245.154.23 做节点2 接管中国大陆的电信和联通流量

以节点1 192.241.156.51 为例,节点2 157.245.154.23 同理

1、更新centos7的源

1
yum update -y && yum upgrade -y

2、添加SWAP虚拟内存

我的512MB小鸡必须添加SWAP否则内存不够,1GB内存vps可自行决定是否添加SWAP

centos7添加SWAP我参考的 这篇文章

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#先用 free -m 查看一下swap的大小

#1、使用dd命令创建/home/swap这么一个分区文件。文件的大小是1024000个block,一般情况下1个block为1K,所以这里空间是1000MB

dd if=/dev/zero of=/home/swap bs=1024 count=1024000


#2、接着再把这个分区变成swap分区

/sbin/mkswap /home/swap


#3、再接着使用这个swap分区。使其成为有效状态

/sbin/swapon /home/swap


#现在再用 free -m 命令查看一下内存和swap分区大小,就发现增加了512M的空间了

#4、修改/etc/fstab文件,在文件末尾增加如下一行,实现开机自动挂载
#vi /etc/fstab

/home/swap swap swap defaults 0 0

image

3、安装被控服务

进入cdnfly管理员控制台>>系统管理>>系统升级,复制节点安装命令并在节点1和节点2等CDN节点服务器执行

image

image

我出现 chmod: 无法访问"agent.sh": 没有那个文件或目录 报错,可能是 LoveesYe 总结的 主控脚本 有点小问题

解决办法就是用 LoveesYe 总结的 被控脚本

1
2
3
4
5
curl -fsSL -m 5 https://github.com/LoveesYe/cdnflydadao/raw/main/cdnfly/v5.1.13/agent/agent.sh -o agent.sh || curl -m 5 https://github.com/LoveesYe/cdnflydadao/raw/main/cdnfly/v5.1.13/agent/agent.sh -o agent.sh  && chmod +x agent.sh && ./agent.sh --master-ver v5.1.11 --master-ip ip --es-ip ip --es-pwd passwd

###替换--master-ip --es-ip --es-pwd 为你自己的,在cdnfly面板查看
###例如我执行的脚本为
curl -fsSL -m 5 https://github.com/LoveesYe/cdnflydadao/raw/main/cdnfly/v5.1.13/agent/agent.sh -o agent.sh || curl -m 5 https://github.com/LoveesYe/cdnflydadao/raw/main/cdnfly/v5.1.13/agent/agent.sh -o agent.sh  && chmod +x agent.sh && ./agent.sh --master-ver v5.1.11 --master-ip 167.235.134.18 --es-ip 167.235.134.18 --es-pwd OPpESBo9mF

下图即为安装成功,cdnfly被控服务会自己安装nginx等

image

六、cdnfly控制台必要配置

官方安装文档:安装说明 · Cdnfly使用文档

1、添加CDN节点

即主控与被控服务建立连接,添加方法如下图

会提示先修改密码,修改密码在:系统管理>>用户管理

image

image

2、DNS设置

DNS设置可配置通过API来与第三方DNS提供商无缝对接,来生成网站的CNAME
目前支持aliyun,国内版dnspod,dns.com、dns.la 和cloudflare.com

获取密钥具体参考官方 DNS设置

3、线路分组 设置分线路解析

只有 DNS服务商 支持分线路解析才可以设置分线路解析

例如cloudflare这类国外DNS服务就不支持分线路解析

image

image

image

4、添加套餐

  • 名称 – 套餐名称,用户端也会显示这个
  • 描述 – 套餐的说明,也会显示到用户端的套餐购买列表
  • 分配给用户 – 输入用户的id,表示指定该套餐为该用户的专属套餐,只有这个用户能购买此套餐
  • 线路分组 – 上一步添加的线路组,或其它分组,决定网站绑定此套餐后网站配置分发到的节点,以及cname解析的IP
  • 套餐分组 – 为套餐分组,分组也会显示到用户端的套餐购买页面,方便归类购买
  • CNAME域名 – 生成网站cname使用的域名,默认为之前dns设置中的主域名,可以输入其它的域名,但此域名必须跟主域名在同一个dns账号下。
  • 月流量 – G为单位,限制该套餐一个自然月内使用流量的上限
  • 域名数 – 该套餐允许的域名数量,域名数量包括裸域名及各级域名,如www.cdnfly.cn cdnfly.cn算两域名
  • HTTP非80,443端口数 – http可以输入非80,443的端口,此项可以限制非标端口的数量,不允许的话设置为0
  • 四层转发端口数 – 四层转发允许的端口数
  • 自定义CC规则 – 如果此项为允许,用户则可以创建自己的cc规则,并绑定到网站使用。如果为禁止,则用户只允许选择系统内置的规则
  • 排序 – 默认100,小值排在前面
  • 带宽为负值表示无限制
  • 连接数为负值表示不限制连接数

image

5、添加网站

用管理员权限在 系统管理>>用户管理 创建一个用户 test

以 test 用户登录 然后购买免费的高级套餐,在网站管理>>分组管理>>新增分组后就可以添加网站了

七、cdnfly控制台推荐配置

1、设置CC防护

这个根据自己需要设置就好了,还可以自定义CC规则

比如设置单IP 10s内最大访问 329.tanglu.cf 资源数为100,单个资源最大次数为20

这个防一般的单IP CC攻击很有效,推荐设置
需要自己CC测压 可以参考 这篇记录

image

一些发卡站避免被机器人检查可以设置访问该域名需要点击验证

image

2、设置CDN缓存文件类型

这个也是根据自己网站的资源类型,以下是我博客的设置

image

3、设置CDN节点服务器缓存大小和最大带宽

image

八、cdnfly控制台其他配置

1、短信/邮箱提示

短信/邮箱提示功能请参考 SMTP设置

2、对接支付

需要支付功能请参考 充值设置

3、转发

转发容易封禁端口,不建议用CDN服务器做转发

4、面板通过域名访问

直接套cloudflare,或者套其它CDN,也可以用其他机器反代 但感觉没必要

image

5、节点监控

需要配置SMTP节点超时会提示和自动切换

九、杂谈

你也可以像我博客一样将境外流量接入到cloudflare加速,具体教程可以参考 cloudflare配置详解

CC测压 注意不要用源站机器去攻击,可能cdnfly为了回源请求成功 给源站IP加了白名单,我之前遇到这个问题纠结好久还以为是cdnfly规则有问题,最后才知道小丑是我自己…

如果源站开启了防御记得将CDN加入白名单

主控迁移可以参考官方 FAQ

最后选择CDN机器加速国内访问,应该优先选择晚高峰tcp丢包少的,而不是只看ping值或者线路

文章来源:自建CDN并配置CC防护 | tanglu’s blog

赞(0) 打赏
未经允许不得转载:国外主机测评 » 基于cdnfly自建CDN的保姆级教程

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册