你可曾想过,直接将BitWarden部署到Cloudflare Worker?

原理 项目参考开源的 dani-garcia/vaultwarden: Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs 将Rust源码编译为WASM以支持在Cloudflare Worker上运行。其中Worker负责REST API,D1负责存储加密后的数据 部署 首先确保你安装了Rust,若无可前往: 安装 Rust - Rust 程序设计语言 克隆仓库: afoim/warden-worker: A Bitwarden-compatible server for Cloudflare Workers 创建D1数据库 wrangler d1 create warden-sql 替换 wrangler.jsonc 的数据库ID 初始化数据库 wrangler d1 execute warden-sql --remote --file=sql/schema_full.sql 编译Rust WASM cargo build --release 部署 Worker wrangler deploy 设置白名单邮箱 wrangler secret put ALLOWED_EMAILS 设置JWT(脸滚键盘即可) wrangler secret put JWT_SECRET wrangler secret put JWT_REFRESH_SECRET 设置2FA加密密钥(32字节Base64编码文本) ...

January 26, 2026 · 1 min · 111 words

国内对象存储免流量费?Cloudflare带宽联盟究竟是什么?

这是什么 Cloudflare带宽联盟(Bandwidth Alliance) 由一群具有前瞻性思维的云服务和网络公司组成,致力于为共同客户降低或免除数据传输(带宽)费用。 人话:你买的阿里云OSS,腾讯云COS套上CF就可以免流量费 具体哪些服务支持免流量费? 可以前往 Cloudflare云服务_数据传输_高速云数据传输服务_|Cloudflare中国官网 | Cloudflare 查看 截止到文章发布日,这些服务支持 在这里可以看到,如果您每月需要传输1TB的流量,Cloudflare将为您每月节省如此多的美刀 如何使用? 假如您有一个阿里云OSS实例,正常来说如果您需要绑定自定义域名,需要CNAME到阿里云的Endpoint,如果您恰好使用Cloudflare NS服务器托管您的域名,只需要打开小黄云即可。 Cloudflare将托管您的阿里云OSS流量,从Cloudflare出口的流量将不收取流量费用 基于阿里云5G内存储费用免费的政策,您可以白嫖5G的对象存储 注意事项 永远不要泄露您的源站,也就是上文所说的阿里云OSS Endpoint,如果有人发现了您的源站,这些流量不从Cloudflare出口,您将会被收取费用 当然,大部分对象存储服务商支持配置私有访问,详细规则和使用方法请咨询各方客服

July 21, 2025 · 1 min · 22 words

N款CDN/静态托管服务商的优缺点比较

Netlify 注册门槛高,需要使用谷歌邮箱注册。支持IPv6回源。用量限制较宽松,仅有带宽和构建时间限制。 我认为是免费计划里最快的CDN!并且限制很少! 需要注意,构建时间是每月限制。但是流量限制较为宽松 因为节点禁Ping,所以这里用Tcping结果展示 推荐CNAME: apex-loadbalancer.netlify.com Vercel 零成本用上。注册无门槛,延迟良好。用量限制较严格。仅支持IPv4回源。默认的 *.vercel.app 在国内会被SNI阻断,需要绑定自己的域名 Vercel每天可以构建100次,每次构建时间不得超过45分钟 推荐IP: 76.76.21.21 EdgeOne CDN 目前处于内测,需要兑换码。获取方式前往 腾讯云EdgeOne免费计划兑换码 - 立即体验 。无流量和请求数限制。 支持高级回源设置 全球可用区(不含中国大陆) 本人博客目前使用的CDN 默认提供的CNAME延迟一般。下图是使用了本人的HK优选: eo.072103.xyz(注: EdgeOne Page不可用) EdgeOne CDN 中国大陆可用区 需要实名认证,需要域名备案 默认CNAME可用 Cloudflare 无流量和请求数限制。无法被打死 戳我查看优选域名 下图使用本人的分流优选: fenliu.072103.xyz Render 注册简单,具有严格的用量限制 Github Page 需要使用Github Action发布。中国大陆大部分地区会间歇性阻断,不推荐使用

July 13, 2025 · 1 min · 44 words

利用Cloudflare Page提供的重定向功能实现无损耗、不限数量的静态重定向!

快速上手! 直接 Fork我的 仓库 。 接着将该仓库连接到Cloudflare部署Worker或Page,然后绑定你的域名 接着更改 _redirects 内的文件 例如: / https://www.afo.im/ 301 /test/* https://test.test/test/:splat 302 则意味着 访问 / 301 永久重定向到 https://www.afo.im/ 访问 /test/* 302 临时重定向到 https://test.test/test/* 已经非常强大了。而且不占用重定向规则配额也不耗费Worker请求数!

July 12, 2025 · 1 min · 28 words

EdgeOne + Cloudflare,我们天下无敌!

引言 主播也是搞到了EdgeOne免费版激活码了,终于可以大展宏图了😋 我怎么换到EdgeOne免费版? 前往 腾讯云EdgeOne免费计划兑换码 - 立即体验 推荐直接发推,按照要求发 发完后私信EO官方即可 默认EdgeOne给的Anycast CNAME过于垃圾? 默认在EO添加域名EO会发给你一个类似 afo.im.eo.dnse4.com 这样的CNAME 也就是 你的域名.eo.dnse4.com emm 这玩意吧 你们自己看速度吧 我推荐大家使用 43.174.150.150 。是一个中国香港的三网优化IP。速度如下。本人EdgeOne优选: eo.072103.xyz 换了CNAME后无法自动申请免费SSL? 如果你将你的域名托管给EO并且没有用EO给你的CNAME,则这个选项不可用 我推荐采用1panel、宝塔、acme.sh手动申请泛域名证书然后上传到腾讯云SSL控制台,就像这样 EdgeOne怎么做重定向? 在这里 EO边缘函数也支持重定向,支持更细化的重定向规则 但是这玩意记录请求数,不如用Cloudflare的重定向规则 首先我们在CF写这样一个规则 然后让EO回源到CF边缘节点。最简单就是随便填个IP然后套CDN 接着配置EO回源,这里一定要使用加速域名作为回源Host头 原理:用户 - EO - CF - CF识别到Host匹配重定向规则 - 301 EdgeOne反代一切? 大部分情况将 回源HOST头 改为源站就能解决反代后网站无法访问的问题

June 26, 2025 · 1 min · 46 words

静态博客也想展示文章浏览量?当然可以!

引言 如果你用过WordPress,Halo等动态博客框架,你大概会在用户视角访问博文的时候看到浏览量这个信息。 这个原理很简单,因为动态博客依赖于一个VPS,只需要让用户每次访问的时候给浏览量+1即可。 那么如果我们是静态博客呢? 我们可以依赖一些第三方服务,比如Umami Cloud。在你的静态博客的head注入一个js,这样你就可以看到你的站点分析了,类似下图 现在我们确实可以看到每个文章(即/posts/xxx)的访问量了,但是我们要如何展示给用户呢? 逆向Umami的只读页面!(新版v3) 感谢nightNya提供的方案,你是天才! 首先我们启用分享URL 注意这里的 7PoDRgCzHFTs2vWB ,每个站点都不一样 接着我们请求 https://cloud.umami.is/analytics/us/api/share/7PoDRgCzHFTs2vWB,得到 注意,这里的 us 为你创建的账号区域,美国为us,欧盟为eu { "websiteId": "a66a5fd4-98b0-4108-8606-cb7094f380ac", "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ3ZWJzaXRlSWQiOiJhNjZhNWZkNC05OGIwLTQxMDgtODYwNi1jYjcwOTRmMzgwYWMiLCJpYXQiOjE3NTA4MDIwMzB9.X5GQT5kslh6r25sFlap4Asz1NDA7mN3kcZW8wqbrnBc" } 再接着我们请求,携带请求头 x-umami-share-token 值为上一步获得的Token https://cloud.umami.is/analytics/us/api/websites/a66a5fd4-98b0-4108-8606-cb7094f380ac/stats?startAt=0&endAt=1750805999999&unit=hour&timezone=Asia/Hong_Kong&path=eq./posts/cf-fastip/&compare=false 这里解释几个关键Params,其他的照搬 startAt:统计开始时间。Unix时间戳,我们填写为0让Umami从1970年开始统计 endAt:统计结束时间。Unix时间戳,我们可以使用 Date.now() ,即当前时间,和startAt参数联动即可实现统计总浏览量 path:要查询的路径,填写为你的文章页去除了Host的路径,如 /posts/hello 。注意!Umami会将 /posts/hello 和 /posts/hello/ 视为两个不同的路径,请注意你的博客框架是否使用 /。在v3版本中,需要使用 eq. 前缀来进行精确匹配,例如 path=eq./posts/hello/ 你会得到 { "pageviews": 1655, "visitors": 343, "visits": 411, "bounces": 183, "totaltime": 30592, "comparison": { "pageviews": 0, "visitors": 0, "visits": 0, "bounces": 0, "totaltime": 0 } } pageviews 即浏览量。 visitors 即访问人数。 Tips:浏览量记录为任意用户只要访问了则计数一次。而访问数记录不会记录单IP多次重复访问和同一时间段的多次请求不同页面 Enjoy it! ...

June 17, 2025 · 1 min · 78 words

NAT1开放内网网站

配套视频 原理 正式开始 创建必要的Cloudflare API令牌 创建拥有如下图权限的令牌,使得Lucky可以使用此令牌设置DDNS、签发SSL、更新Cloudflare动态重定向 创建基底Cloudflare动态重定向规则 如图填写,替换为你的域名 表达式: wildcard_replace(http.request.full_uri, "*://*.072103.xyz/*", "https://${2}.stun.072103.xyz:6666/${3}") 观察网址,记录下如下图的数据 打开开发者工具后,再保存,确保抓到这样的包,保存备用 将 dash.cloudflare.com/api 改为 api.cloudflare.com/client 。将刚才获得的红框内的内容填写到 rules 后面 如果你不是第一次更新,可能会带有一个 "position":{"index":1}, 删除它,否则后面的WebHook将会出错。 将我们硬编码的 6666 端口改为Lucky STUN的变量 #{port} 最终我们记录了以下信息 https://api.cloudflare.com/client/v4/zones/f305febd3a25b5bb3a46b802328a75a8/rulesets/35218f125f7f4421b4c76314464689a2/rules/17228a4add70429c9cdd38eb7fec1d02 {"description":"stun","expression":"(http.host wildcard \"*.072103.xyz\" and not http.host in {\"pic.072103.xyz\" \"hpic.072103.xyz\"})","action":"redirect","action_parameters":{"from_value":{"status_code":301,"preserve_query_string":true,"target_url":{"expression":"wildcard_replace(http.request.full_uri, \"*://*.072103.xyz/*\", \"https://${2}.stun.072103.xyz:#{port}/${3}\")"}}},"enabled":true} 让Cloudflare接管 *.072103.xyz 的流量 配置Lucky DDNS 配置Lucky SSL/TLS证书 配置Lucky Web服务 配置Lucky STUN 注:我这里使用了路由器的端口转发,将Lucky的16666(Web服务)端口转发到了路由器的17777端口。如果你不会端口转发,请不要启用 不使用Lucky内置端口转发 并且目标端口填写16666 配置WebHook 如图配置 接口地址:你之前记录的 https://api.cloudflare.com/... 请求方法: PATCH 或者 POST ...

May 30, 2025 · 1 min · 73 words