cloudflare作为cdn的应用合集

Some magical effects of cloudflare partern.

 

 

 

 

 

–来自:pixiv 画师(MORNCOLOUR)–

 

 

 

 

 

一些示例

 

大体上分为俩种,应用于代理,应用于网站。

  • 最简单的应用:隐藏源ip

  • 应用cfp:自定义加速ip

  • 应用cfp同步给dnspod:防假墙攻击

 

 

 

 

 

 

隐藏源ip

这应该是使用cdn的最基本功能了,也是cloudflare被广泛应用的起点。

只需将域名托管到cloudflare下,在dns设置中,将服务器源ip指向域名的同时打开cdn开关(小云朵)即可。亦或是通过cname解析的方式。

一般地,科学上网使用A记录,网站使用CNAME记录。

 

 

 

 

 

 

 

自定义加速ip

一些海外的线路比较差的的服务器,网站访问或是科学上网体验很差。通常都要使用中转服务器或是cdn来中转已达到加速访问的效果。cloudflare提供的免费cdn自然是被不少人用来中转。因为是免费的套餐,cdn的ip每次也是随机的,这使得加速效果时好时坏。渐渐的出现了自动筛选cf ip的脚本,对速度和延时进行筛选获得优质的ip。一般地,将其成为优选ip脚本。

–优选ip项目地址:https://github.com/XIU2/CloudflareSpeedTest–

通过对脚本的二次修改,每个人根据自身网络环境的条件,设置值获得适合自己的优选ip。将优选ip写人本地hosts文件中,就瞬间完成了对自己客户机的加速。再对服务端或客户端设置定时任务,间隔时间段自动执行。如此可以长期获得加速效果。

def quick_CFST():
    print("请确保在'CloudflareST.exe'目录下\n\n")
    mm=input("默认筛选低于200ms高于10M/s的4个ip地址(y默认/n自定义):")

    if mm.strip(" ").strip("y")=="":
        t1=200
        s1=10
        dn=4
        tp=443
        n=500
    elif mm.strip(" ")=="n":
        t1=input("请输入最高延时[ms]:")
        s1=input("请输入最低速度[M/s]:")
        dn=input("请输入筛选个数:")
        tp=input("请输入测速端口:")
        n=input("测速线程数量500-1000:")
    else:
        print("输入错误.")
        os.system('pause')
    subprocess.Popen("CloudflareST.exe -tl %s -sl %s -dn %s -tp %s -n %s " %(t1,s1,dn,tp,n),shell=True)
if __name__ == '__main__':
   quick_CFST()

–脚本二改:设置值–

#pandas打包太大,弃
# cfst_ip=pandas.read_csv("result.csv").iloc[-1]["IP 地址"]
excel=open("result.csv","r",encoding='utf8')
opened_file = excel.readlines()
cfst_ip=opened_file[1].split(',')[0]
print("获取优选ip("+cfst_ip+")成功.\n")


change_dns=cfst_ip+"		"

def clearline():
# 删除旧记录
    host_path="C:\WINDOWS\system32\drivers\etc\HOSTS"
    lines=open(host_path,'r').readlines()
    hosts= open(host_path, 'w')
    for i in lines:
       if 'cdnets.cyou' not in i:
          hosts.write(i)
print("已清除旧的dns记录.\n")
clearline()
def addline(change_dns):
#插入新的dns记录
    host_path="C:\WINDOWS\system32\drivers\etc\HOSTS"
    hosts=open(host_path,'a')
    hosts.write(change_dns)
    hosts.close()
    print("新增dns记录成功.\n")
addline(change_dns+"cdn1.com\n"+change_dns+"cdn2.com\n")
os.system('pause')

–写入hosts脚本–

 

将上述代码打包成exe文件,创建定时任务即可。

 

–windows计划任务–

 

当然了,对于网站而言,是让所有人来访问的,仅加速自己有点掩耳盗铃了。往下看

 

 

 

 

 

 

 

防假墙攻击

几年之前,只需简单应用cdn即可获得加速/“被墙复活”的效果。但近日出现了一种针对网站的假墙攻击模式,当你使用的cdn ip被攻击时,即便是源ip没有被墙,你的网站也无法从大陆访问。

在上述的基础上,优选ip脚本被优化,使得结果重复率降低;将自选的结果传递给域名解析商(如dnspod),使其自动更换,则为最佳。实现起来的话,可以在本地写个脚本,定期获得优选ip,再通过对dnspod API的操作,对对应记录条进行修改,即可对多个网站通过更换cdn ip。以防止网站被假墙。

 

当然了,将域名托管到dnspod还想使用cloudflare的cdn,只能通过CFP平台(cloudflare partern)来实现接入解析。2021.11cloudflare已经禁用了很多被滥用CFP的hot key,结果导致新的域名无法再接入CFP。对此我只能说,我手里还有不限hot key的CFP,需要的请付费上车wanxve@gmail.com

–某cfp操作界面–

–cfp添加记录界面–

–接入解析方式–

 

–dnspod自选ip–

def getip():
    excel=open("result.csv","r",encoding='utf8')
    opened_file = excel.readlines()
    cfst_ip=opened_file[1].split(',')[0]
    print("获取优选ip("+cfst_ip+")成功.\n")
    return cfst_ip

#修改jefggw.top优选ip
change_jefggw_top='curl -X POST https://dnsapi.cn/Batch.Record.Modify -d "login_token=LOGIN_TOKEN&format=json&record_id=RECORD_ID&change=record_type&change_to=A&value='+getip()+'"'



def change_dnspod(cmds):
    os.popen(cmds)



if __name__ == '__main__':
    change_dnspod(change_jefggw_top)

    print('修改dnspod记录完毕!')

–调用dnspod API修改记录–

curl -X POST https://dnsapi.cn/Batch.Record.Modify -d "login_token=LOGIN_TOKEN&format=json
&record_id=RECORD_ID&change=record_type&change_to=A&value=104.27.198.160"

 

–curl版本的–

如何获取相关参数请参考官方API文档…

 

 

 

 

 

更多的

使用CFP后可以解锁更多的玩法(如源加速),研究明白了再开文。

 

 

 

发表评论