🎬 视频教程
📌 搭建节点教程
📌 保活方式
单独配置保活项目,在后台定时拉起保活程序。
- 运行以下命令进入脚本:
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" 模板,点击 "跳过",直接创建。
- 自定义项目名称,然后点击 "部署"。
- 进入代码编辑,删除默认代码,替换为以下代码:
addEventListener('scheduled', event => {
event.waitUntil(handleScheduled().catch(error => {
console.error("⛔ 任务失败:", error);
return Promise.reject(error); // 确保 Cloudflare 任务失败
}));
});
const pageUrl = 'https://2jztest.serv00.net/';
const expectedImagePath = '/static/nezha.jpg';
const expectedImageUrl = new URL(expectedImagePath, pageUrl).href;
const TIMEOUT = 5000; // 超时 5 秒
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 代理节点 依赖外部脚本,稳定性较差。
-
不建议作为主力节点使用,仅适用于备用或临时需求。
-
“完美保活方案”并不存在,文章会跟随脚本优化,持续更新优化教程
🔗 友情链接:
版权声明:
本文由 二进制 原创,采用 CC BY-NC-SA 4.0 协议进行许可。转载请注明出处。



