Docker安装青龙面板及其附属面板实现京东等APP代挂
青龙面板是一个定时脚本平台,通过它我们可以使用各种脚本定时跑任务,来达到薅羊毛的效果。
-
支持多种脚本语言(python3、javaScript、shell、typescript)
-
支持在线管理脚本、环境变量、配置文件
-
支持在线查看任务日志
-
支持秒级任务设置
-
支持系统级通知
-
支持暗黑模式
-
支持手机端操作
【环境要求】
-
有Docker的openwrt
-
科学上网环境
-
IPV6或内网穿透(可选)
【安装青龙面板】
本次使用N1盒子刷软路由演示。
【ssh到N1】
- 打开cmd
ssh root@你的openwrt的IP地址
【安装面板】
以下代码已预留了ninjia、xdd、xdd-plus、sillyGirl、等映射文件夹。
直接粘贴就行会自动拉镜像的
docker run -dit \
-v $PWD/ql/config:/ql/config \
-v $PWD/ql/scripts:/ql/scripts \
-v $PWD/ql/repo:/ql/repo \
-v $PWD/ql/log:/ql/log \
-v $PWD/ql/db:/ql/db \
-v $PWD/ql/deps:/ql/deps \
-v $PWD/ql/jbot:/ql/jbot \
-v $PWD/ql/raw:/ql/raw \
-v $PWD/ql/ninja:/ql/ninja \
-v $PWD/ql/xdd:/ql/xdd \
-v $PWD/ql/xdd-plus:/ql/xdd-plus \
-v $PWD/ql/sillyGirl:/ql/sillyGirl \
-p 5700:5700 \
-p 5701:5701 \
-e ENABLE_HANGUP=true \
-e ENABLE_WEB_PANEL=true \
-e ENABLE_TG_BOT=true \
--name qinglong \
--hostname qinglong \
--restart unless-stopped \
whyour/qinglong:2.10.13
【开启端口】
-
进入openwrt
-
进入Docker——配置——DockerMan设置——访问控制——允许访问的端口,开启 qinglong | 5700 | tcp 和 qinglong | 5701 | tcp (开启的5701端口是下一步安装ninja面板的端口)。
【访问和配置】
输入你的 openwrt IP 或 Docker容器 IP +端口5700 即可访问。安装面板过程不赘述,推送机器人可根据自己喜好去申请对应API然后进行配置,本文提供配置Telegram机器人方法。
【配置Telegram推送机器人实现任务状态及收益发送】
由于Docker中无法科学上网,所以我们要搭建socks代理服务,本文使用passwall进行代理。
- passwall——Socks配置——添加服务器
- 申请Telegram机器人,获取token
访问 https://t.me/BotFather 添加机器人,根据提示获取token。
图中打码处为token。
然后给自己的机器人随便私聊一句,防止等会配置失败。
- 获取ID
访问 https://t.me/getuseridbot 添加机器人,输入 /start 获取id
图中打码处为id。
- 获取Docker地址
ssh进openwrt,输入ifconfig
红线画出即为Docker地址。
- 配置代理
两处涂黑处分别填入你刚才获取的token和id,途中第一个红色框填入你Docker的地址,下面的代理端口填写你刚才配置Socks代理时的HTTP监听端口,然后保存。
此时你的telegram应该已经收到消息了,但配置还没完。
- 打开青龙面板——设置环境变量
把刚才填过的再填一遍,此时你的telegram推送机器人已经可以给你推送了。
【配置依赖】
依赖分为NodeJs、python3、Linux,我们需要分别添加。
-
打开面板
-
选择依赖管理——选择NodeJs子项——新建依赖
-
把下方代码粘贴到名称中,开启自动拆分
-
确定后会自动下载依赖
-
NodeJs依赖
crypto-js
prettytable
dotenv
jsdom
date-fns
tough-cookie
tslib
ws@7.4.3
ts-md5
jsdom -g
jieba
fs
form-data
json5
global-agent
png-js
@types/node
require
typescript
js-base64
axios
- python3依赖
requests
canvas
ping3
jieba
- Linux依赖
bizCode
bizMsg
lxml
等待依赖安装完成。
【拉取脚本库】
-
打开面板
-
定时任务——新建任务
-
名称随便输
-
命令从下方选择
-
输入定时规则
-
保存运行
1. KingRan库【集合库,推荐】
ql repo https://github.com/KingRan/KR.git "jd_|jx_|jdCookie" "activity|backUp" "^jd[^_]|USER|utils|function|sign|sendNotify|ql|magic|JDJR"
2.Faker3【集合库】
ql repo https://github.com/shufflewzc/faker3.git "jd_|jx_|gua_|jddj_|jdCookie" "activity|backUp" "^jd[^_]|USER|function|utils|sendNotify|ZooFaker_Necklace.js|JDJRValidator_|sign_graphics_validate|ql|JDSignValidator" "main"
3. yyds【集合库】
YYDS
ql repo https://github.com/okyyds/yyds.git "jd_|jx_|gua_|jddj_|jdCookie" "activity|backUp" "^jd[^_]|USER|function|utils|sendNotify|ZooFaker_Necklace.js|JDJRValidator_|sign_graphics_validate|ql|JDSignValidator" "master"
YYDS_Pure
ql repo https://github.com/okyyds/yydspure.git "jd_|jx_|gua_|jddj_|jdCookie" "activity|backUp" "^jd[^_]|USER|function|utils|sendNotify|ZooFaker_Necklace.js|JDJRValidator_|sign_graphics_validate|ql|JDSignValidator" "master"
【注意】拉库前请打开青龙面板-配置文件 第18行 GithubProxyUrl="" 双引号中的内容删除。
- smiek2121【开卡,建议】
ql repo https://github.com/smiek2121/scripts.git "gua_" "" "ZooFaker_Necklace.js|JDJRValidator_Pure.js|sign_graphics_validate.js|cleancart_activity.js|jdCookie.js|sendNotify.js"
5. ccwav通知增强版和CK检测【建议】
//不包含sendNotify:
ql repo https://github.com/ccwav/QLScript2.git "jd_" "sendNotify|NoUsed" "ql"
//包含sendNotify:
ql repo https://github.com/ccwav/QLScript2.git "jd_" "NoUsed" "ql|sendNotify"
6.【619】【集合库,可选】
ql repo https://github.com/gys619/jdd.git "jd_|jx_|jddj_|gua_|getJDCookie|wskey" "activity|backUp" "^jd[^_]|USER|utils|ZooFaker_Necklace|JDJRValidator_|sign_graphics_validate|jddj_cookie|function|ql|magic|JDJR|JD" "main"
7 .【zero205】【集合库,拉KR即可】
ql repo https://github.com/zero205/JD_tencent_scf.git "jd_|jx_|jdCookie" "backUp|icon" "^jd[^_]|USER|sendNotify|sign_graphics_validate|JDJR|JDSign|ql" "main"
- 一些定时规则
第1个是秒,第2个是分,第3个是时,第4个是每月的哪日,第5个是哪月,第6个是每周的周几。 数字之间空格隔开。 同一个时间位多个选项用","连接,同一个时间位一个区间用“-”连接。
*/5 * * * * ? #每隔 5 秒执行一次
0 */1 * * * ? #每隔 1 分钟执行一次
0 0 2 1 * ? * #每月 1 日的凌晨 2 点执行一次
0 15 10 ? * #MON-FRI 周一到周五每天上午 10:15 执行
0 15 10 ? 6L #2002-2006 2002 年至 2006 年的每个月的最后一个星期五上午 10:15 执行
0 0 23 * * ? #每天 23 点执行一次
0 0 1 * * ? #每天凌晨 1 点执行一次
0 0 1 1 * ? #每月 1 日凌晨 1 点执行一次
0 0 23 L * ? #每月最后一天 23 点执行一次
0 0 1 ? * L #每周星期天凌晨 1 点执行一次
0 26,29,33 * * * ? #在 26 分、29 分、33 分执行一次
0 0 0,13,18,21 * * ? #每天的 0 点、13 点、18 点、21 点都执行一次
0 0 10,14,16 * * ? #每天上午 10 点,下午 2 点,4 点执行一次
0 0/30 9-17 * * ? #朝九晚五工作时间内每半小时执行一次
0 0 12 ? * WED #每个星期三中午 12 点执行一次
0 0 12 * * ? #每天中午 12 点触发
0 15 10 ? * * #每天上午 10:15 触发
0 15 10 * * ? #每天上午 10:15 触发
0 15 10 * * ? * #每天上午 10:15 触发
0 15 10 * * ? #2005 2005 年的每天上午 10:15 触发
0 * 14 * * ? #每天下午 2 点到 2:59 期间的每 1 分钟触发
0 0/5 14 * * ? #每天下午 2 点到 2:55 期间的每 5 分钟触发
0 0/5 14,18 * * ? #每天下午 2 点到 2:55 期间和下午 6 点到 6:55 期间的每 5 分钟触发
0 0-5 14 * * ? #每天下午 2 点到 2:05 期间的每 1 分钟触发
0 10,44 14 ? 3 WED #每年三月的星期三的下午 2:10 和 2:44 触发
0 15 10 ? * MON-FRI #周一至周五的上午 10:15 触发
0 15 10 15 * ? #每月 15 日上午 10:15 触发
0 15 10 L * ? #每月最后一日的上午 10:15 触发
0 15 10 ? * 6L #每月的最后一个星期五上午 10:15 触发
0 15 10 ? * 6L #2002-2005 2002 年至 2005 年的每月的最后一个星期五上午 10:15 触发
0 15 10 ? * 6#3 #每月的第三个星期五上午 10:15 触发
拉取完成会出现很多任务,但还不能运行,因为缺少登录信息,所以我们要获取Cookie
【抓取Cookie和Wskey(可选)并设置环境变量】
Cookie和Wskey一定不能泄露,否则可能会被别人登录造成损失!!!
不要相信任何代挂网,也会暴露Cookie!!!
获取Cookie(电脑端)
-
用浏览器在 PC 端打开京东触屏版网页 https://m.jd.com
-
按键盘 F12 键打开开发者工具,切换到网络(Network)标签,然后点下图中的图标
- 此时是未登录状态(使用手机短信验证码登录),如已登录请忽略此步骤
- 登录后,选择 Network(或者按第二步的打开就选择网络标签),忽略现在正在跑的进度条
-
如果和上面的图不一样,那就点一下“我的”如果一样,这是网络标签很多内容,刷新一下
-
选择第一个内容,我这里是:newhome.action?sceneval=2&ufc=&可能每个人会不一样,然后如下图一样找到 cookie,复制出来,新建一个 TXT 文本临时保存一下,下面需要用到
-
在 TXT 文本里面找到 pt_pin 和 pt_key 两个参数,其它的全部删掉。
-
如图所示,红色框下的部分就是需要的参数,其它的全部删掉。
获取Cookie(手机端)
-
下载Alook游览器APP
-
打开网址栏 www.m.jd.com
-
《工具箱》开发者工具
获取Wskey(可选)
-
下载Stream抓包工具
-
根据提示安装CA证书并信任
-
点击开始抓包,然后打开京东APP
-
在各个页面刷新几次,主要是”首页“和”我的“页面
-
返回抓包工具,暂停抓包
-
打开抓包历史,选择刚才的抓包日志
-
切换到按域名分类
-
找到并打开 api.m.jd.com 域名
-
然后随便选择一个开头是POST的请求
-
切换到”请求“项,查看请求头部(此时请求头部应该有很多,若很少,就重新选一个POST请求)
-
找到 ”wskey=*******“
【设置环境变量】
-
进入面板
-
新建环境变量
-
变量名称为 JD_COOKIE (不能改!)
-
值填为 pt_key=######;pt_pin=#########; (#号为你刚才获取的Cookie值)
-
切换到定时任务项,运行 jdCookie.js 然后查看日志
-
若显示如下证明Cookie已配置成功
## 开始执行... 2022-08-07 11:17:14
====================共1个京东账号Cookie=========
==================脚本执行- 北京时间(UTC+8):2022/8/7 11:17:15=====================
## 执行结束... 2022-08-07 11:17:15 耗时 1 秒
- 若要增加环境变量,新建安装上述步骤添加即可
【运行】
此时运行任务,不出意外的话已经可以正常使用了
【配置WSCK使Cookie实现永不失效(半永久)(可选)】
短信获取Cooike有效期为30天,所以必须每30天提交一次(也可以30天内随时提交)我们可以配置Wskey,系统会在指定时间检查wskey,有效则自动转换出Cookie并自动写入”JD_COOKIE“,Cookie失效后,也会在系统设定的指定时间内自动转换出新的Cookie,实现一次录入长期有效。
【配置方法】
- 拉取wskey本地转换脚本(按照上面拉取脚本库方法)
ql repo https://ghproxy.com/github.com/Zy143L/wskey.git "wskey"
-
使用建议 修改 定时计划
15 */6 * * *
-
默认为6小时15分执行一次 请按需修改
【配置环境变量】
变量名: JD_WSCK 参数: pin=xxxx;wskey=xxxx; (根据上面获取到的Cookie和Wskey自行拼接)
【运行】
- 定时任务中运行 wskey转换 若显示下图证明已经生效。
## 开始执行... 2022-08-07 21:42:47
--------------------
5700端口检查通过
使用 _id 键值
HTTP Server Check OK
--------------------
当前脚本版本: 20524
--------------------
pt_pin=jd_FlPZDwVsRPqf;检索成功
jd_FlPZDwVsRPqf;状态正常
pt_pin=jd_FlPZDwVsRPqf;账号有效
账号启用
--------------------
--------------------
暂停10秒
执行完成
--------------------
## 执行结束... 2022-08-07 21:43:02 耗时 15 秒
【ninja面板】
Ninja是@MoonBegonia大佬开发的一个开源安全的青龙_面板_扫码工具,可以
-
扫码,跳转登录添加/更新 cookie
-
添加/更新 cookie 后发送通知
-
扫码发送通知可关闭
-
添加备注并将通知中的 pt_pin nickName 修改为备注
-
默认备注为昵称
-
添加扫码推送卡片
-
替换 cookie 失效通知
-
登录界面展示自定义标语
-
支持多容器,多面板
-
采用自己的数据库,实现无视面板替换通知备注
-
账号管理面板
现扫码登陆和WSCK录入已失效,但不影响正常使用,后面会介绍WSCK使用方法。
【安装】
ssh到N1
docker exec -it qinglong bash #进入容器
git clone https://ghproxy.com/https://github.com/licklly/kingrom_ninja.git /ql/ninja #拉取ninja库文件到容器ninja文件夹中
cd /ql/ninja/backend #进入到backend文件夹下
pnpm install #安装ninja
cp .env.example .env #复制环境变量文件并修改文件名
pm2 start #启动ninja
vi /ql/config/extra.sh #打开青龙config文件夹的extra.sh文件
#将以下、内容粘贴到 extra.sh(重启后自动更新并启动 Ninja,已去除自动复制通知文件,因为已失效,需要的去除注释符合#即可)
cd /ql/ninja/backend
git checkout .
git pull
pnpm install
pm2 start
#cp sendNotify.js /ql/scripts/sendNotify.js
进入编辑:按字母i
退出保存:按Esc键,再输入:wq
不保存强制退出:按Esc键,输入:q!
上面的冒号不能少!!!
pm2 start #退出保存后,再次重启ninja
【运行】
- 访问N1的ip:5701,测试运行是否正常。
【修改环境变量】
docker exec -it qinglong bash #进入容器
cd /ql/ninja/backend
vi .env
pm2 start
Ninja 环境变量(特别提醒:部分变量存在赋值问题,部分变量的false和true并不能起作用,
请直接使用注释符号#来控制,启用功能→删除#即可,禁用功能→添加#)
目前支持的环境变量有:
SHOW_QR:是否显示扫码卡片,默认不显示
SHOW_WSCK:是否显示WSCK录入,默认不显示
SHOW_CK:是否显示CK登录,默认不显示
ALLOW_WSCK_ADD:是否允许添加WSCK账号 不允许添加时则只允许已有账号登录
ALLOW_WSCK_NUM:允许添加WSCK账号的最大数量
ALLOW_ADD: 是否允许添加账号 不允许添加时则只允许已有账号登录(默认 true)
ALLOW_NUM: 允许添加账号的最大数量(默认 45)
NINJA_PORT: Ninja 运行端口(默认 5701)
NINJA_NOTIFY: 是否开启通知功能(默认 true)
NINJA_UA: 自定义 UA,默认为随机
【更新和删除ninja】
#进入qinglong容器内执行
#更新Ninja:
cd /ql/ninja
git checkout .
git pull
cd backend
pm2 start
#删除Ninja
cd /ql/ninja
pm2 delete ninja
rm -rf *
rm -r ./.*
【JDX面板】
JDX是一款Cookie提交工具,界面也非常简约,由于某种原因,大佬已删库跑路!
【安装】
ssh到N1
docker pull grbhq/jdx:latest #拉取JDX镜像
docker run -d \
-v $PWD/jdx/config:/jdx/config \
-p 5702:80 \
--restart=always \
--name jdx grbhq/jdx:latest
#运行JDX容器【注意映射端口不要冲突,可自行修改5702为其他端口,这里以5702为例】
docker logs -f jdx #查看JDX容器日志【CTRL+C退出查看】
【运行】
- 访问N1的ip:5702,测试运行是否正常。
【后台设置】
### 访问后台地址:【默认用户名:admin 密码:123465】
http://N1的ip:5702/admin
登陆后台后记得及时修改用户名和密码!!!!
修改方法:
手机端:左滑即可编辑
PC端:按F12 ->再按组合键ctrl+shift+M 【切换浏览器为手机模式即可左滑修改】
【添加青龙容器】
-
首先需要获取青龙容器的ID和密钥
-
系统设置——应用设置——新建应用——权限全选,名称随便
地址:N1 IP:5700
客户端ID:Client ID(刚才面板设置的)
客户端密钥:Client Secret(刚才面板设置的)
-
配置完成!
-
- *
大佬你说的解诀ninja录入wsck的方法是什么啊
ninja仓库作者已经很久没更新了,我不知道这个方法还有没有用,具体就是在环境变量里打开WSCK的相关功能,然后去抓pt_pin和wskey两个参数,抓到后用 pin=xxxx;wskey=xxxx; 的格式拼在一起,然后提交。但我比较推荐文章目录2.8.3-2.11.3的方法,都能实现相同的效果,且后者实现也较为简单。