首页
Search
1
Sublime Text 4 正式版发布了,自己动手注册激活以及汉化
534 阅读
2
Lark飞书国际版,免费邮局支持50用户,200GB容量,可SMTP发信
259 阅读
3
Windows激活之路:通过HWIDGen申请永久数字许可证
204 阅读
4
甲骨文云(Oracle Cloud)免费开通ARM云服务器
202 阅读
5
Windows激活之路:将Windows 10 LTSC转成Win10专业版激活
177 阅读
网络资讯
技术教程
活动线报
VPS主机
实用工具
随手小记
登录
Search
标签搜索
VPS
服务器
腾讯云
免费
域名
阿里云
数据库
优惠券
Cloudflare
Github
中国联通
代金券
Docker
中国移动
chrome
JetBrains
Linux
Xshell
百度网盘
联通
小 萌
累计撰写
266
篇文章
累计收到
0
条评论
首页
栏目
网络资讯
技术教程
活动线报
VPS主机
实用工具
随手小记
页面
搜索到
9
篇与
的结果
2022-09-17
dynadot人人可注册一个 .GAY域名,有效期一年
Dynadot 9 月 16 日免费提供 .GAY 域名,以纪念 DotGay 成立两周年!geigei们可以上车玩玩了!不需信用卡,不需手机号!活动地址https://www.dynadot.com/dotgayanniversary优惠代码DOTGAY2YR简要操作1)建议第一步先注册账号。 注册地址:https://www.dynadot.com2)点击登陆 - 点击注册,填写相关信息,手机号可以随便。3)登陆注册邮箱点击验证的URL,完成账号注册4)前往活动页面,注册心意的域名,一步一步操作即可!5)等待官方审核!6)域名管理界面可以管理该域名。修改DNS Settings 可接入 cloudflare最后说明域名能玩一年,续费非常贵!144美元一年,别太认真!建议将自动续费关闭,避免造成不必要的损失!官方自带的DNS管理用的不太方便,建议接入其他平台,比如CloudFlare等平台。
2022年09月17日
33 阅读
0 评论
0 点赞
2022-07-12
域名如何通过CNAME方式接入 Cloudflare平台
全篇转载自 @如有乐享 ,由 小萌 进行编辑,本文仅作存档使用就在2021年11月份左右,CloudFlare Partner 突然发送通知邮件,移除 API 中 zone_set ,这样基本上CFP变成“废物”了We are making an emergency change today that will affect your ability to sign up customers via the Cloudflare Host API. Specifically, the ‘zone_set’ operation for creating partial zones will be disabled today, We apologize for making this urgent breaking change.21年12月份官方才回复:Hey everyone, We know that this has caused pain for many of you, so let me share a bit about why we made this change and what you can do about it. Why the sudden change? We discovered a security vulnerability in the zone_set 3 operation of the Host API. Our only available recourse was to disable the endpoint. We sent an email as a heads up, but couldn’t wait to make the change even though we knew it would likely break many partners existing workflows. What can be done going forward? To re-iterate, the zone_set API will not be re-enabled in any form. The two recommended options are: A) Migrate to using the full_zone_set 20 API to onboard customers. B) Migrate to using the tenant API 28 offered through our updated partner program 21. This API allows you to create partial zones, but requires those zones to be authenticated with TXT records. I hope that you can understand that we didn’t make this decision lightly, and that the security of our customers and platform required us to take action.大概意思是 zone_set 存在安全漏洞,其实大家用过CFP都知道,在CFP添加域名是不验证域名所有权的!相关讨论:https://community.cloudflare.com/t/removal-on-zone-set-from-api官宣是后面会提供替代解决方案,不过貌似一直没有啥消息!如果童鞋执意要使用CFP也有临时方法,可使用Global API Key登录。不过不再支持添加新域名,但老用户域名不影响使用。后面有时间再水一篇!好了,下面进入本文的重点,不借助CFP,不花钱,域名如何通过CNAME接入CF?准备工作Cloudflare账号信用卡或者PayPal一个域名(随便)需要NS方式接入CF(源域名)一个域名(真正要用)要通过CNAME方式接入CF(主机域名)本文演示2个域名如下:源域名:i0lo1o.eu.org (参考历史文章: 人人都可申请拥有的EU.org免费域名 )回退源:jiketuchuang.i0lo1o.eu.org主机域名:img.jiketuchuang.com基本原理源域名 通过NS方式接入CF,然后配置一个DNS(jiketuchuang.i0lo1o.eu.org )解析到真正的服务器上。最后利用SaaS提供的主机域名方式,将真正使用的域名CNAME到回退源(jiketuchuang.i0lo1o.eu.org )即可。NS接入如果已经有接入的域名可忽略这步!将域名 i0lo1o.eu.org 通过NS方式接入CF,可以选择的是一个免费域名!SaaS订阅源域名通过NS接入平台后,需要启用SaaS订阅!开通路径:【域名管理 】- 【SSL/TLS】 - 【自定义主机】- 【启用Cloudflare for SaaS】开通后享受权益: 虚名域支持 预配好的 TLS 证书内置 DDoS 缓解自动程序管理和防火墙规则(附加项目)免费100个主机域名,额外新增一个主机域名0.1美元/每月需要绑定付款方式,支持PayPal,VISA,JCB,Mastercard,美国运通卡 博主使用了PayPal支付方式!源站设置1)在源域名(i0lo1o.eu.org)新增DNS解析,指向自己的服务器2)前往Cloudflare for SaaS,添加回退源,将刚才解析的网址填入,点击【添加回退源】 3)回退源状态显示为有效,即可!如果显示错误请检查第一步!点击【添加自定义主机名】进入下一步!域名添加1)输入要绑定的主机名,需要我们完成2步操作。主机域名解析;TXT验证域名权限!当然也可以选择其他验证域名所有权的方式!点击右侧的【>】可见TXT解析内容 2)域名解析。将主机域名CNAME到上面配置的源域名3)主机域名添加TXT解析,用于验证域名的所有权4)以上操作完成,需要等待1分钟完成校验,当证书状态 和 主机状态都显示有效即可!演示域名https://jiketuchuang.i0lo1o.eu.orghttps://img.jiketuchuang.com最后总结1)在免费的数量内不花一分钱2)一个NS接入的域名,只支持一个回退源3)一个回退源支持100个免费主机域名4)如果访问域名出现证书问题,需要在【SSL/TLS 部分】,切换其他加密模式来测试是否正常访问5)一个源域名回退源只能是1个,如果想增加多个回退源(也就是多个网站) 需要使用多个域名NS接入才可以
2022年07月12日
16 阅读
0 评论
0 点赞
2022-06-29
Backblaze(B2)套用CloudFlare可用于静态文件存储
全篇转载自 @如有乐享 ,由 小萌 进行编辑,本文仅作存档使用来自火星的我,炒一下之前的冷饭。B2套上CloudFlare做免费图床,自己建站使用基本上够了。官方网址https://www.backblaze.com免费额度存储容量:10GB网络流量:1GB/天上传流量:无限下载请求数:2500次/天上传请求数:2500次/天BUCKET(桶):100个BUCKET(桶)文件数:无限超出了额度,收费$0.005 per GB per month for additional storage beyond 10 GB 和 $0.01 per GB beyond the free daily 1 GB.这点流量能干点啥?不过Backblaze加入了CloudFlare的 带宽联盟( Bandwidth Alliance) ,所以Backblaze与CloudFlare之间的流量直接免费,也就是每天 无限量 下行流量。配上CloudFlare配置缓存时间更久一些,辣么下载请求无限次免费啦。看看联盟有没有你熟悉的LOGO?注册账号https://www.backblaze.com/b2/sign-up.html填写邮箱,密码即可注册。登陆平台 - My Account - 我的设置 - 验证Email提醒一下,界面右下角可以切换到简体中文 创建BUCKET1)登陆平台 - 创作一个桶名称随意,桶里面的档案选择公众,其他保持默认即可特别提醒:桶名称要复杂一些,小心被刷流量! 2)创建成功后 点击 【上载/下载】可以去上传一个文件!3)上传成功后,单机文件可以看见文件详情内容特别要记住友好URL中的域名,如图是 f004.backblazeb2.com 配置CF解析域名1)登陆Cloudflare,添加一个域名。定义一个前缀CNAME到 f004.backblazeb2.com 没有域名?参考文章: 人人都可申请拥有的EU.org免费域名 2)解析完成后,浏览器打开地址 https://b2.i0lo1o.eu.org/file/ruyonet123/default.png格式 https://域名/file/桶名称/文件名经过一波骚操作,访问URL提示:Error 522 错误??错误原因Cloudflare 通过纯 HTTP 而不是 HTTPS 访问上游服务器。但是Backblaze 仅支持安全的 HTTPS 连接,因此 HTTP 请求失败。为了解决这个问题,在 Cloudflare 仪表板的 【SSL/TLS 部分】,将加密模式从“灵活”更改为“完全(严格)”,以便 Cloudflare 通过 HTTPS 连接到 Backblaze,并且需要 CA 颁发的证书。设置缓存这个非常有必要噢~~~B2 桶 - 自己创建的桶 - 桶设定桶信息填写:{"cache-control":"max-age=720000"}Cloudflare 域名仪表盘 - 规则 - 页面规则 - 创建页面规则 URL输入 上一步中设置的域名 https://b2.i0lo1o.eu.org/*设置选择: 缓存级别 - 标准,边缘缓存TTL - 1个月隐藏桶名由于URL中暴露了桶名,CNAME的域名又很容易被猜到,怎么防止其他童鞋恶意刷你的免费额度呢?下面介绍一下,怎么隐藏桶名~Cloudflare 域名仪表盘 - 规则 - 转换规则- 创建转换规则 - 重写URL 传入请求匹配时:b2.i0lo1o.eu.org路径重写到:选择 Dynamic动态,concat("/file/ruyonet123", http.request.uri.path)这里一定要填写你自己的域名哈~~ 举一反三噢~然后浏览器打开URL:https://b2.i0lo1o.eu.org/default.pngAPI密钥路径:My Account - 应用程序键 - 添加新的应用程序密钥名称随意,允许访问桶 建议选择1个,其他默认即可2)提交成功,一定要记住记住相关信息,关了以后密钥就看不到了,只能重新创建文件上传官网上传直接登陆官网,在桶里直接上传!WP插件支持Backblaze的Wordpress插件不少呢,比如下面2个!填写API密钥即可!wordpress.org/plugins/updraftplus/wordpress.org/plugins/ilab-media-tools/SDK官方提供多种语音的SDKhttps://github.com/Backblaze/其他ShareX,MiXplorer最后总结Cloudflare 在国内的访问情况不太稳定。如果仅作为境外用户访问,该方式是非常不错的!Cloudflare 规则中可以支持防盗链等等配置,这里就不多介绍了。B2免费额度用光,静态文件将无法访问,第二天恢复。
2022年06月29日
51 阅读
0 评论
0 点赞
2022-06-27
人人都可申请拥有的EU.org免费域名
全篇转载自 @如有乐享 ,由 小萌 进行编辑,本文仅作存档使用EU.org (该域名与欧盟无关)的主要目标是为无法负担某些 NIC 要求的费用的用户或非营利组织提供免费的子域注册。让大家都能白嫖!官网地址https://nic.eu.org注册账号1)账号注册需要注意NAME格式 名 空格 姓,邮箱填写正确能接收邮件就好!2)邮箱会收到一封邮件,点击激活链接!XXXXX-FREE 就是账号!3)登陆网站准备申请域名,点击【New Domain】申请域名1)domain name 填写你要申请的域名,长度需要大于3位字符。最下方有Name Servers填写 DNS服务商的NS这里我使用的是腾讯云的DnsPod的NS信息theresa.dnspod.net thirty.dnspod.netName servers 选择第一个来验证即可! 2)点击提交后,提示没有错误即可!等待审核!3)审核速度不确定,有时候秒批,有时候等几个月!审核通过后会发送一封邮件通知,直接登录平台可以看见申请的域名!域名管理1)点击右侧的编辑按钮,可以修改或者删除域名。2)当然可以修改NS信息,比如接入Cloudflare接入CF1)添加域名到Cloudflare 如果以下提示:xxxx.eu.org is not a registered domain则需要将新申请的域名添加到DnsPod 或者你使用的其他NS服务商。并添加一个A记录!任何前缀解析到任何IP2)添加后稍等几分钟再次添加域名到CF 就成功啦!3)修改域名的NS记录4)点击提交后,提示没有错误信息。只要等待NS生效即可。最后总结eu.org已经好多年了,相对来说还算稳定。不过申请的人多了可能存在各种擦边的东东,很有可能被一刀切。如果真心好好建站还是建议买个付费的域名,这样比较长久!
2022年06月27日
158 阅读
0 评论
0 点赞
2020-12-11
Cloudflare推出网站统计分析平台Web Analytics,适合国内用吗?
目前站长们大部分都用 百度统计,51la, CNZZ站长统计 ,Google Analytics 等平台。最近 Cloudflare 也推出了自己的站点统计分析平台 Cloudflare Web Analytics!博主也是第一时间尝尝鲜!发现这个统计分析平台不适合国内使用!官网地址https://www.cloudflare.com/zh-cn/web-analytics/官宣亮点1)免费提供隐私至上、精准到位、不可或缺的 Web 分析网站的蓬勃发展离不开分析。但许多现有的解决方案要求您在成本和访问者隐私之间进行取舍。Cloudflare 以帮助建设更美好的互联网为使命,其中之一便是在不损害用户隐私的前提下向各个网站所有者提供不可或缺的 Web 分析。这是一项免费服务。2)许多分析供应商会收集访问者和站点数据,作为提供 Web 分析的回报。他们采用以广告收入驱动的业务模式,跟踪您网站上的访问者行为并创建买家资料,以向您的访问者定向投放广告。这不是 Cloudflare 的业务模式。Cloudflare 的使命是帮助建设更加美好的互联网,其中一项核心原则便是以隐私为本开发技术。使用 Cloudflare 服务,您不必牺牲访问者的隐私,即可获得重要且准确的网站使用数据。Cloudflare Web Analytics 不会使用任何客户端状态(如 Cookie 或 localStorage)来收集使用数据。我们也不会出于显示分析结果的目的而通过 IP 地址、用户代理字符串或任何其他数据来“精确识别”个人。我们的分析是非侵入性的,并尊重访问者的隐私。PS:这里感觉指的是Google Adsense!添加站点1)登陆CF账号,右侧菜单可见 web analytics2)添加站点。3)获取到js代码,直接页面引用即可!4)将代码添加到我们的网站上,稍等一会就能看见统计数据了!统计项目基本上我们常见的一些统计都有,比如 设备,浏览器,来源,设备类型,操作系统等。并没有发现太多的亮点!最后说明一番操作猛如虎!分析统计的数据时发现,怎么美国的访问量比中国还多?难道我的站更受美国人关注?最后发现原来域名 static.cloudflareinsights.com 竟然在国内访问超慢,甚至超时!看来这个统计平台目前还不适合国内站长使用!
2020年12月11日
14 阅读
0 评论
0 点赞
2019-10-11
推荐开源CloudFlare Partner可视化管理面板
全篇转载自 @如有乐享 ,由 小萌 进行编辑,本文仅作存档使用最近打算将小站接入CF Partner,找了一圈发现有大佬开源了一个管理面板挺不错的!PHP语言开发的,在Github上开源了!开源地址https://github.com/ZE3kr/Cloudflare-CNAME-Setup环境要求PHP 7.0+ (需要 cURL, APCu Cache, JSON 和 Gettext 插件)网页服务器 (Nginx, Apache, 等)Cloudflare Partner 账户安装步骤Docker安装运行以下命令即可!docker run -d \ -e HOST_KEY=填写你自己的 Partner API Key \ -e HOST_MAIL=填写你自己的 Partner 邮箱 \ -e TITLE=填写自定义标题 \ -p 端口号:80 \ ze3kr/cloudflare手动安装1)环境安装,安装了PHP7.2 + Nginx。2)申请一个SSL证书(如果不开启HTTPS可以不申请)3)下载开源代码,zip包下载地址:https://github.com/ZE3kr/Cloudflare-CNAME-Setup/archive/master.zip4)在服务器上部署一个网站,将源码上传即可!5)重命名 config.example.php 成 config.php 。替换KEY 和 EMAIL保存即可!define('HOST_KEY', 'e9e4498f0584b7098692512db0c62b48'); define('HOST_MAIL', 'ze3kr@example.com');面板特性管理你的所有 DNS 记录。此面板使用了 Cloudflare API v4,所以支持各种格式的 DNS 记录。高级统计。你可以查看 过去一整年 的统计信息,而不仅仅是一个月。同时支持 NS 接入。此面板提供了 NS 接入信息,所以你可以随时切换到 Cloudflare DNS。此外,这个面板也支持 DNSSEC。同时支持 IP 接入。你可以看到 DNS 的 Anycast IPv4 和 IPv6 信息,这样你可以安全地在根域名下使用第三方 DNS。适配移动设备。支持多种语言。常见问题Q:在其他合作伙伴接入的域名,能否在这里登陆? 可以。Q:如何从 NS 接入转成从这个面板接入?备份现有域名的 DNS 记录。从备份中恢复,切换到另一个 DNS 解析商。(可选的)在 Cloudflare 上删除你的域名 (如果你没有完成第二部则可能会导致你的网站在一段时间内无法访问)在这个面板上重新添加域名。在这个面板上配置 DNS 记录。删除已有的 DNS 记录然后重新添加 CDN 的记录。(如果你在步骤二中切换到了另一个 DNS 解析商)Q:CNAME 接入的好处更加灵活,因为你可以使用任何一个 DNS 提供商。将 Cloudflare 作为一个备份服务器,或者使用多个 CDN。可以免费支持四级域名下的 SSL!例如像 dev.project.example.com 这样的域名,Cloudflare 也会自动签发 SSL 证书,这是因为 CNAME 接入签发的是 SSL for SaaS,它会自动的为每一个字域名签发证书。Q:使用 Cloudflare 的好处 你不需要在服务器端安装任何软件。只需要在这个面板配置好源站服务器信息,删除已有记录并 CNAME 到 Cloudflare 的服务器,或者直接使用 Cloudflare DNS 即可!无限 DDOS 防御全球 CDN。你的网站会因此变得更快。I'm Under Attack™ 模式可以自动清洗恶意流量。Always Online ™ 让你的网站永远在线。支持 Page Rules. 你可以自定义缓存规则,配置 301 或 302 跳转以及更多。
2019年10月11日
51 阅读
0 评论
0 点赞
2019-09-25
CloudFlare推出1.1.1.1更快更安全的网络服务
CloudFlare推出的DNS服务!但是顺手也提供一个**服务,虽然免费流量不多!真所谓是CloudFlare在作死的路上越走越远了!虽然是单独的一个网站运营。但是还是希望不要影响大家建站。官网地址https://one.one.one.one/相关介绍https://www.cloudflare-cn.com/learning/dns/what-is-1.1.1.1/下载地址Google Play :https://play.google.com/store/apps/details?id=com.cloudflare.onedotonedotonedotoneAPP Store :https://itunes.apple.com/us/app/1-1-1-1-faster-internet/id1423538627
2019年09月25日
2 阅读
0 评论
0 点赞
2019-07-18
利用CloudFlare Worker 免费部署 JSProxy 服务
全篇转载自 @如有乐享 ,由 小萌 进行编辑,本文仅作存档使用JSProxy 一个基于浏览器端 JS 实现的在线代理,这里不多介绍!本文主要介绍一下利用CloudFlare Worker 来搭建一个JSProxy服务。CloudFlare Worker 是 CloudFlare 的边缘计算服务。开发者可通过 JavaScript 对 CDN 进行编程,从而能灵活处理 HTTP 请求。这使得很多任务可在 CDN 上完成,无需自己的服务器参与。CFW免费服务,支持每天10 万次免费请求!基本也够用了!项目介绍项目地址:https://github.com/EtherDream/jsproxy准备工作Cloudflare 账号一个使用教程1)打开 https://workers.cloudflare.com,登陆上你的 Cloudflare 账号激活 Workers 服务然后创建一个 Workers【Create a Worker】2)修改一下子域名,创建出来的域名格式 自定义的内容.Cloudflare用户名.workers.dev3)复制 https://raw.githubusercontent.com/EtherDream/jsproxy/master/cf-worker/index.js 的内容到左侧代码(Script)区域文章最下方有代码备份!!4)先点击【Run】右侧看执行效果,再点击 【Save and deploy】 部署代码5)届时你可以访问你的站点https://xxx.子域名.workers.dev查看效果进入站点后将线路选择切换为当前站点即可使用特别提示:浏览网站的时候,有时候会提示加载不安全脚本,点击允许即可!代码备份'use strict' /** * static files (404.html, sw.js, conf.js) */ const ASSET_URL = 'https://zjcqoo.github.io' const JS_VER = 8 const MAX_RETRY = 1 const PREFLIGHT_INIT = { status: 204, headers: new Headers({ 'access-control-allow-origin': '*', 'access-control-allow-methods': 'GET,POST,PUT,PATCH,TRACE,DELETE,HEAD,OPTIONS', 'access-control-allow-headers': '--raw-info,--level,--url,--referer,--cookie,--origin,--ext,--aceh,--ver,--type,--mode,accept,accept-charset,accept-encoding,accept-language,accept-datetime,authorization,cache-control,content-length,content-type,date,if-match,if-modified-since,if-none-match,if-range,if-unmodified-since,max-forwards,pragma,range,te,upgrade,upgrade-insecure-requests,x-requested-with,chrome-proxy,purpose', 'access-control-max-age': '1728000', }), } /** * @param {string} message * @param {number} status * @param {any} headers */ function makeRes(message, status = 200, headers = {}) { headers['cache-control'] = 'no-cache' headers['vary'] = '--url' headers['access-control-allow-origin'] = '*' return new Response(message, {status, headers}) } addEventListener('fetch', e => { const ret = fetchHandler(e) .catch(err => makeRes('cfworker error:' + err, 502)) e.respondWith(ret) }) function fetchHandler(e) { const req = e.request const urlStr = req.url const urlObj = new URL(urlStr) if (urlObj.protocol === 'http:') { urlObj.protocol = 'https:' return makeRes('', 301, { 'strict-transport-security': 'max-age=99999999; includeSubDomains; preload', 'location': urlObj.href, }) } switch (urlObj.pathname) { case '/http': return httpHandler(req) case '/ws': return makeRes('not support', 400) case '/works': return makeRes('it works') default: // static files return fetch(ASSET_URL + urlObj.pathname) } } /** * @param {Request} req */ async function httpHandler(req) { const reqHdrRaw = req.headers if (reqHdrRaw.has('x-jsproxy')) { return Response.error() } // preflight if (req.method === 'OPTIONS' && reqHdrRaw.has('access-control-request-headers') ) { return new Response(null, PREFLIGHT_INIT) } let urlObj = null let extHdrs = null let acehOld = false let rawSvr = '' let rawLen = '' let rawEtag = '' const reqHdrNew = new Headers(reqHdrRaw) reqHdrNew.set('x-jsproxy', '1') for (const [k, v] of reqHdrRaw.entries()) { if (!k.startsWith('--')) { continue } reqHdrNew.delete(k) const k2 = k.substr(2) switch (k2) { case 'url': urlObj = new URL(v) break case 'aceh': acehOld = true break case 'raw-info': [rawSvr, rawLen, rawEtag] = v.split('|') break case 'level': case 'mode': case 'type': break case 'ext': extHdrs = JSON.parse(v) break default: if (v) { reqHdrNew.set(k2, v) } else { reqHdrNew.delete(k2) } break } } if (extHdrs) { for (const [k, v] of Object.entries(extHdrs)) { reqHdrNew.set(k, v) } } if (!urlObj) { return makeRes('missing url param', 403) } /** @type {RequestInit} */ const reqInit = { method: req.method, headers: reqHdrNew, } if (req.method === 'POST') { reqInit.body = req.body } return proxy(urlObj, reqInit, acehOld, rawLen, 0) } /** * * @param {URL} urlObj * @param {RequestInit} reqInit * @param {number} retryTimes */ async function proxy(urlObj, reqInit, acehOld, rawLen, retryTimes) { const res = await fetch(urlObj.href, reqInit) const resHdrOld = res.headers const resHdrNew = new Headers(resHdrOld) let expose = '*' let vary = '--url' for (const [k, v] of resHdrOld.entries()) { if (k === 'access-control-allow-origin' || k === 'access-control-expose-headers' || k === 'location' || k === 'set-cookie' ) { const x = '--' + k resHdrNew.set(x, v) if (acehOld) { expose = expose + ',' + x } resHdrNew.delete(k) } else if (k === 'vary') { vary = vary + ',' + v } else if (acehOld && k !== 'cache-control' && k !== 'content-language' && k !== 'content-type' && k !== 'expires' && k !== 'last-modified' && k !== 'pragma' ) { expose = expose + ',' + k } } if (acehOld) { expose = expose + ',--s' resHdrNew.set('--t', '1') } // verify if (rawLen) { const newLen = resHdrOld.get('content-length') || '' const badLen = (rawLen !== newLen) if (badLen) { if (retryTimes < MAX_RETRY) { urlObj = await parseYtVideoRedir(urlObj, newLen, res) if (urlObj) { return proxy(urlObj, reqInit, acehOld, rawLen, retryTimes + 1) } } return makeRes('error', 400, { '--error': 'bad len:' + newLen }) } if (retryTimes > 1) { resHdrNew.set('--retry', retryTimes) } } let status = res.status resHdrNew.set('access-control-expose-headers', expose) resHdrNew.set('access-control-allow-origin', '*') resHdrNew.set('vary', vary) resHdrNew.set('--s', status) resHdrNew.set('--ver', JS_VER) resHdrNew.delete('content-security-policy') resHdrNew.delete('content-security-policy-report-only') if (status === 301 || status === 302 || status === 303 || status === 307 || status === 308 ) { status = status + 10 } return new Response(res.body, { status, headers: resHdrNew, }) } /** * @param {URL} urlObj */ function isYtUrl(urlObj) { return ( urlObj.host.endsWith('.googlevideo.com') && urlObj.pathname.startsWith('/videoplayback') ) } /** * @param {URL} urlObj * @param {number} newLen * @param {Response} res */ async function parseYtVideoRedir(urlObj, newLen, res) { if (newLen > 2000) { return null } if (!isYtUrl(urlObj)) { return null } try { const data = await res.text() urlObj = new URL(data) } catch (err) { return null } if (!isYtUrl(urlObj)) { return null } return urlObj }
2019年07月18日
3 阅读
0 评论
0 点赞
2018-06-01
1.1.1.1公共DNS服务遭遇“宕机”
在今年4月初,服务商Cloudflare正式发布了DNS公共服务1.1.1.1。据官方介绍,DNS公共服务1.1.1.1以速度和隐私为重点,利用Cloudflare在全球范围内构建的庞大而广泛分布的基础设施,以提供迄今为止最快的DNS服务。不过现在外媒报道,DNS公共服务1.1.1.1遇到了问题。如果你已经使用Cloudflare的新隐私专用DNS服务,则可能发现无法连接到PC上的网站。该服务目前在IP4网络上存在问题,Cloudflare表示:调查 - Cloudflare目前查询针对公共DNS解析服务器(1.1.1.1和1.0.0.1)的IPv4地址,发现查询超时。IPv6地址当前不受影响(2606:4700:4700 :: 1111和2606:4700:4700 :: 1001)。我们正在进一步调查,并会在可用时提供更新。大家可以先换用其他DNS服务,以便能够正常上网。
2018年06月01日
38 阅读
0 评论
0 点赞