🎬 视频教程
📌 搭建节点教程
📌 保活方式
单独配置保活项目,在后台定时拉起保活程序。
- 运行以下命令进入脚本:
1
| bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/start.sh)
|
- 输入
6
,配置保活项目。
- 选择
2
,选择 Sing-box
。
- 在
Sing-box
选项中,输入 3
,选择 All
。
- 消息推送,默认
N
,直接回车。
- 是否
cron
保活,默认 N
,输入 Y
。
- 保活间隔,默认
5
分钟,直接回车。
✅ 系统会生成一个保活程序,但这个程序也可能被系统杀掉!
其他保活方式
linkalive
项目通过更新订阅的方式保活,但仅限会员使用。
keepalive
依赖 GitHub Actions 进行自动保活,需要先部署 GitHub 项目。
🚀 本文提供更简单的 Cloudflare Workers
方式。
🔥 利用 keepalive 页面保活 + Cloudflare Workers 自动保活
具体操作
安装 keepalive
- 进入脚本,输入
25
。
- 进入
keepalive
脚本,输入 1
进行安装。
- 使用默认域名,默认
Y
,直接回车。
- 自定义
token
,默认 Y
,可回车自定义,也可输入 N
。
- 自定义路径,回车输入即可。
- 保活间隔,默认
2
分钟,回车。
✅ 安装完成后,访问默认的 keepalive 域名,若出现哪吒的图片,则说明页面保活生效!
Cloudflare Workers 自动保活
- 进入 Cloudflare,创建 Workers。
- 选择 “Hello World” 模板,点击 “跳过”,直接创建。
- 自定义项目名称,然后点击 “部署”。
- 进入代码编辑,删除默认代码,替换为以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| addEventListener('scheduled', event => { event.waitUntil(handleScheduled().catch(error => { console.error("⛔ 任务失败:", error); return Promise.reject(error); })); });
const pageUrl = 'https://2jztest.serv00.net/'; const expectedImagePath = '/static/nezha.jpg'; const expectedImageUrl = new URL(expectedImagePath, pageUrl).href; const TIMEOUT = 5000;
async function fetchWithTimeout(url) { const controller = new AbortController(); const timeout = setTimeout(() => controller.abort(), TIMEOUT);
try { const response = await fetch(url, { signal: controller.signal });
if (!response.ok) { console.warn(`⚠️ 访问失败: ${url}, 状态码: ${response.status}`); return false; }
if (url.endsWith('.jpg') || url.endsWith('.png')) { const contentType = response.headers.get('content-type') || ''; if (!contentType.startsWith('image/')) { console.warn(`⚠️ 图片加载失败: ${url},返回的不是图片类型: ${contentType}`); return false; } }
console.log(`✅ 成功: ${url} 状态码: ${response.status}`); return true; } catch (error) { console.warn(`❌ 访问失败: ${url}, 错误: ${error.message}`); return false; } finally { clearTimeout(timeout); } }
async function handleScheduled() { console.log('⏳ 任务开始');
const pageLoadedSuccessfully = await fetchWithTimeout(pageUrl); if (!pageLoadedSuccessfully) { console.error(`❌ 页面加载失败: ${pageUrl}`); return Promise.reject(new Error('页面加载失败')); }
const imageLoadedSuccessfully = await fetchWithTimeout(expectedImageUrl); if (!imageLoadedSuccessfully) { console.error(`❌ 图片加载失败: ${expectedImageUrl}`); return Promise.reject(new Error('图片加载失败')); }
console.log(`✅ 页面和图片均加载成功`); }
|
设置自动触发
- 代码修改完成后,点击 “部署”。
- 在项目设置中,找到 “触发器”。
- 添加
cron
触发器(默认每 30
分钟触发一次)。
- 添加完成后,确认定时任务生效。
查看运行状态
- 在 “事件详细信息” 中,点击 “查看事件”,即可查看运行明细。
📢 最后:
✅ 该方式依赖 keepalive
网页保活,仅在 keepalive
可用时生效。
serv00 代理节点 依赖外部脚本,稳定性较差。
不建议作为主力节点使用,仅适用于备用或临时需求。
“完美保活方案”并不存在,文章会跟随脚本优化,持续更新优化教程
🔗 友情链接:
serv00 搭建代理节点 | 问题汇总 | 失效分析 | 保活方案