SAP免费容器拓展玩法
首先,非常感谢罗叔带来的SAP免费容器,大家可以在油管上搜索罗叔对SAP的介绍及其基本的玩法。因在使用罗叔的镜像之后,不是太稳定,可能是用的人太多,经常会重启或崩溃,所以这里给大家介绍另外的玩法,同时也希望罗叔那边的镜像后面会更加完善。OK,开始!(这里主要是通过vps来进行操作,通过其它的途径也是可以的,可观看罗叔油管视频。)
###此教程无需你有台VPS,你有能执行登陆你账号的环境即可操作!!!
一、安装cf cli平台
cf平台的安装包地址是这个,这里我们直接对应vps架构选择 cf8-cli-installer_8.14.1_x86-64.deb 这个安装包,然后直接安装在vps上,命令如下:(注意在root权限下运行)
wget https://github.com/cloudfoundry/cli/releases/download/v8.14.1/cf8-cli-installer_8.14.1_x86-64.deb && apt install ./cf8-cli-installer_8.14.1_x86-64.deb
二、搭建节点
1、此处默认大家都已经申请了SAP的试用账号,登陆:(以新加坡平台以例)
cf login -a https://api.cf.ap21.hana.ondemand.com
2、push镜像,把 XXXX 换成你的应用名(下同)。
cf push XXXX --docker-image ghcr.io/hide3110/sap-argo:latest -m 1024M --health-check-type port
其实此时查看日志 cf logs XXXX –recent 就可以得到三个临时隧道的节点了,可以检查下节点是否通畅。
3、设置环境变量。设置镜像内对应的变量,注意空格。下面示例中的变量值是我乱填的,你们自行更改。示例中参数为哪吒v0的,如果不用哪吒删掉对应的三行即可。ARGO隧道部分自行在cloudflare中设置,端口为8001。
cf set-env XXXX UUID 306884b0-4e8e-4ed1-ac9b-8607eee8cca3
cf set-env XXXX NEZHA_SERVER nz.yeah.nom.za
cf set-env XXXX NEZHA_PORT 443
cf set-env XXXX NEZHA_KEY z4UXbutcLReAOyoVty
cf set-env XXXX ARGO_DOMAIN sapsg.yeah.nyc.mn
cf set-env XXXX ARGO_AUTH eyJhIjoiNWQ3YzdlN2I2NGFmNTUwYzNlOSI0ZmU3ZTg1Y2U4ZDAiLCJ0IjoiMzIyMjE5FTgtNDZhYi00OWVlLTg3MTItYmY3MWZkMDllOTRhIiwicyI6Ik56VmpNR016WkdVdE1qVTVZUzAwTWpGbUxUZzNZamd0D1dJME9XUTVNamcxWldSayJ9
注:上面代码全部粘贴至vps回车即可。如果使用哪吒v1,参数变量如下:
cf set-env XXXX NEZHA_SERVER nz.yeah.nom.za:8008
cf set-env XXXX NEZHA_KEY 填写哪吒v1的NZ_CLIENT_SECRET
#使用哪吒v1,启用不同的容器app时需修改UUID,否则会覆盖。NEZHA_PORT那项不用设置。
4、保存变量并重启。
cf restage XXXX
5、查看日志,获得订阅协议。
cf logs XXXX --recent
6、至此,你将得到vmess、vless、trjon三个节点,也可以不用查看日志,按下面填定协议内容即可。

7、cf 其它命令介绍,非必要操作!!!
cf delete xxxx -r #删除指定容器
有挂探针的检查下应该已经上线。
三、保活脚本
另附上vps保活脚本,大家应该都有自己的保话方法,仅供参考。此vps保活拉起速度快非常省心,可观察探针状态。
#!/bin/bash
# --- 配置变量 (全部使用绝对路径) ---
# Cloud Foundry CLI 可执行文件路径
readonly CF_EXECUTABLE="/usr/bin/cf"
# 日志文件路径
readonly LOG_FILE="/root/cf_start.log"
# --- 身份认证信息 ---
readonly CF_API="https://api.cf.ap21.hana.ondemand.com"
readonly CF_USER="[email protected]"
readonly CF_PASSWORD='xxxx'
readonly CF_ORG="xxxxtrial"
readonly CF_SPACE="dev"
# --- 应用列表 ---
# 在这里添加所有需要启动的应用名称,可以同时拉起多个。
readonly CF_APPS=("xxx1" "xxx2")
# --- 函数定义 ---
# 日志记录函数
# 参数1: 日志信息
log() {
# 将时间和日志信息追加到日志文件
echo "[$(date '+%Y-%m-%d %H:%M:%S')] - $1" >> "${LOG_FILE}"
}
# 主函数
main() {
log "----------------------------------------------------"
log "任务开始"
# 1. 执行非交互式登录
log "正在登录 Cloud Foundry..."
if ! "${CF_EXECUTABLE}" login -a "${CF_API}" -u "${CF_USER}" -p "${CF_PASSWORD}" -o "${CF_ORG}" -s "${CF_SPACE}" >> "${LOG_FILE}" 2>&1; then
log "错误:Cloud Foundry 登录失败。请检查凭证和网络连接。"
log "任务异常结束"
log "----------------------------------------------------"
# 登录失败,直接退出
exit 1
fi
log "登录成功。"
# 2. 遍历并启动所有应用
# 使用 for 循环处理 CF_APPS 数组中的每一个应用
for app_name in "${CF_APPS[@]}"; do
log "正在尝试启动应用: ${app_name}..."
# 3. 执行启动命令
if "${CF_EXECUTABLE}" start "${app_name}" >> "${LOG_FILE}" 2>&1; then
log "应用 ${app_name} 启动命令已成功执行。"
else
log "错误:应用 ${app_name} 启动失败。请查看上面的日志获取详细信息。"
# 可根据需求决定是否在一个应用启动失败后继续尝试下一个
fi
done
log "所有应用启动任务完成。"
log "任务结束"
log "----------------------------------------------------"
}
# --- 脚本执行入口 ---
main
在vps上新建一个cf_start.sh文件,将上面内容粘贴进去后chomd +x赋权,新建个crontab计划任务即可使用!
have fun!