全面解析 serv00 四合一脚本搭建与保活
全面解析 serv00 四合一脚本搭建与保活
雨天狂奔全面解析 serv00 四合一脚本搭建与保活
eooce 大佬已经有非常完善的 #serv00 搭建脚本,包括无交互、有交互两种方式,并给出了通过 #vps #保活 的方法和一键脚本,详见 项目仓库。而我个人的习惯需要 socks5 协议给 cf 节点做反代,因此在老王脚本的基础上做了一些修改,现将这些 修改版脚本
做一个简单的说明,相关文件在 我的仓库
我修改的脚本全部为 vmess+ws / vmess+ws+argo / hy2 / socsk5 四协议,没有 tuic 协议,需要在 serv 上开启两个 tcp 端口(vmess 和 socks5)和一个 udp 端口(hy2)
无交互一键安装方式
1 | VMESS_PORT=填vmess端口 HY2_PORT=填hy2端口 SOCKS_PORT=填socks5端口 \ |
一键安装,无需任何交互,安装完成后会生成节点链接
交互式安装方式
1 | curl -s https://raw.githubusercontent.com/yutian81/serv00-ct8-ssh/main/sb_serv00_socks.sh -o sb00.sh && bash sb00.sh |
根据提示输入相关参数,安装完成后会生成节点链接
如果使用交互式安装方式,脚本会在工作目录 /home/${USERNAME}/logs
目录下生成自动生成 两个可执行脚本
和 一个配置文件
,用于一键远程重启相关进程,而无需在服务器掉线时重新安装节点脚本
文件名 | 用途 |
---|---|
nezha.sh | 重启哪吒进程的脚本 |
argo.sh | 重启 argo 隧道进程的脚本 |
config.json | singbox 内核配置文件,重启 singbox 内核需要 |
节点保活
这里提到的所有保活方式都基于使用了我的 交互式脚本
安装节点的情况,不支持其他人的节点脚本。当然,你可以 fork 我的仓库后自定修改自行适配
方式一:SSH 连接手动启动
如果你是纯小白,不会用 github #action 和 vps 保活,那么推荐这种方式,最简单
如果你已经使用我的 交互式脚本
安装好了节点,但是服务器重启或者杀掉了后台进程及 corn 任务导致节点或哪吒掉线,打开 ssh 工具连上掉线的服务器,输入 bash sb00.sh
,回车,进入到脚本主菜单,选择 4
,即可重启所有进程,重新恢复连接
主菜单选项 2
为卸载或清理服务器,进入后,选择 1
,仅卸载 singbox、哪吒、argo;选择 2
,将会把服务器重置为初始状态;选择 0
,返回到主菜单
方式二:GitHub Action 自动保活
action 保活和 cm 教程一样,action 代码也来自于 cm,需要设置 action 的仓库机密变量,变量名:ACCOUNTS_JSON
,变量值示例:
1 | [ |
最后一组数组后面没有 ,
具体教程可以看 cm博客教程的保活章节,这里不赘述
设置好后 手动执行一次 action
,之后 GitHub 会每 4 小时自定登录一次服务器,检查 corn 任务是否存在,如果不存在,会自动重新添加 corn 任务,然后 corn 会在 10 分钟后拉起节点进程
执行 action 前,先删除仓库中 .github/workflows/check_sb_cron.yaml~
文件名后缀的 ~
符号,正确的文件名是 check_sb_cron.yaml
方式三:VPS 自动保活
如果你正好有一台 vps(不是 serv00 服务器),且有简单的动手能力,那么我建议使用 方式三
,它能实现服务器 掉线后 5 分钟内恢复
,且不依赖于 corn 任务,即使没有设置 corn 也不影响
脚本无法直接一键安装,需要 fork 后 修改相关变量
再安装,脚本地址
准备工作
- 将 serv00 的登录信息和无交互脚本的外部变量保存在一个 json 文件中,命名为
sb00ssh.json
,其格式如下,注意最后一组{}
后面没有,
:
1 | [ |
将这个文件保存到你的
GitHub gist
,设置为私密
,否则服务器信息会泄露,或者其他可以获取文件直链的网盘,如谷歌云盘
、CF-R2存储桶
、GitHub 私有仓库
等,获得一个直链地址
(这里以 github gist 为例),并将链接地址复制备用
。私有仓库获取直链的方法可以看 cm的教程- 登录你的 github,点开gist主页
- 填入以下信息——
片段描述
:serv00 服务器配置信息;文件名
:sb00ssh.json;文件内容
:将上述改好的代码复制进去;点击右下角创建私密片段
- 点击右上角源码,获得一个直链地址,原始地址是这样的:
https://gist.githubusercontent.com/yutian81/87687b9a64adb2fd1b33bc8894e11e2d/raw/40c2d12e7a02fb0f0d6fc4b02865a702752f2f88/sb00ssh.json
- 删除上面原始地址中
raw
和文件名
之间的随机字符,得到一个可外部访问的固定地址
,这个地址就是我们需要的gist 直链地址
,复制备用
1
https://gist.githubusercontent.com/yutian81/87687b9a64adb2fd1b33bc8894e11e2d/raw/sb00ssh.json
打开你 fork 的项目,将脚本文件
vps_sb00_alive/sb00_alive.sh
复制一份到你自己的 GitHub gist,并修改以下变量后保存:
变量 | 内容 |
---|---|
VPS_JSON_URL | 上文所述服务器配置信息 sb00ssh.json 的 gist 直链地址 |
NEZHA_URL | 你的哪吒面板地址,必须带 http(s):// 前缀 |
NEZHA_APITOKEN | 你的哪吒面板的 API TOKEN |
NEZHA_AGENT_ID | 示例:(“13” “14” “17” “23” “24” “26” “27”),你的哪吒探针的 ID 号,按示例只改数字,不要删除 () 和 "" |
必须将变量修改为你自己的信息,变量内容中前后的 ""
不要删除,未列出的变量不要动
- 修改完成后,按上面获取直链的方法,同样获得
sb00_alive.sh
的gist直链地址
,格式应该是类似这样的:
1 | https://gist.githubusercontent.com/yutian81/87687b9a64adb2fd1b33bc8894e11e2d/raw/sb00_alive.sh |
- 获取你自己的
一键安装脚本
1 | curl -Ls -o sb00_alive.sh 替换为你sb00_alive.sh的gist直链地址 && chmod +x sb00_alive.sh && bash sb00_alive.sh |
运行脚本,实现 VPS 自动保活
- 打开 ssh 连接工具,连上一台 VPS。注意:是 vps,不是 serv00 服务器
- 粘贴上述
一键安装脚本
,点击回车运行,脚本会自动检查各 serv00 服务器的在线情况,若离线会自动重启节点进程。脚本会把本身自动加入到 vps 的计划任务里,每 5 分钟就会自动运行一次
全文完
其实方式三:VPS 自动保活是支持老王的无交互节点脚本的,具体看我脚本文件内的注释,将代码约 133 行 bash <(curl -Ls ${REBOOT_URL})
替换为 bash <(curl -Ls ${SCRIPT_URL})
,并在前面的全局变量中 启用 SCRIPT_URL 变量
,内容定义为老王的无交互脚本直链地址
感兴趣的可以自行研究自行适配