[个人备份]《JD薅羊毛》一键部署 For Linux/OpenWrt

一、前言

1. 本项目根据安装平台区分为 LinuxDocker 两个版本,分别提供对应的脚本文件与教程

2. Linux 为系统直装版本,适配常用 GNU/Linux 发行版,仅适用于在 PC VPS 平台部署

3. Docker 为通用的容器版本,建议用于在 VPS NAS 软路由 平台部署,占用资源较低

4. 两版本的《部署教程》与《使用教程》均不相同,不要错误、重复使用,请认真阅读所有内容

5. 如果您使用 VPS 平台,由于网络环境暴露在公网,建议使用 Docker 版本降低信息安全隐患


二、项目部署


下面是 Linux 版本的部署教程,执行命令前请认真阅读注释内容,不要执行错误的命令!


Linux 版本

仅支持 DebianRedhat 发行版和及其衍生发行版\
尽量使用最新的稳定版系统,并且安装语言使用 简体中文\
否则请使用 Docker 通用版本部署此项目\
附: Windows10 安装 WSL Ubuntu 教程

部署前需知与准备工作:

  1. 执行命令前请检查您当前环境是否联网,并请切换至 root 用户,切换命令为 sudo -i
  2. 如果您使用的是 CentOS 系统且最小化安装,请通过 SSH 的方式进入到终端。
  3. 本项目默认安装目录为 /opt/jd ,如果您不想安装到该目录请自行下载部署脚本并更改相关变量手动部署。
  4. 由于某些组件的安装受国外网络影响,如果部署失败或遇到报错请再次尝试,否则请严格按照模板提交至 Issues 寻求帮助。
  5. 若您使用 VPS 平台,部署前请进入您所使用平台提供商的防火墙功能,检查是否已开放相关端口、允许HTTP/HTTPS流量通过等设置。
  6. 控制面板 功能的初始用户名为 useradmin,初始密码为 supermanito,部署成功后可通过 http://内部或外部IP地址:5678 访问。
  7. 如果您使用平台的网络环境暴露在了公网,请根据教程更改 控制面板 的用户名、密码,否则造成的信息泄露后果自负。
  8. 若您使用 VPS 平台,关机前请先手动执行相关命令停止控制面板的运行,否则在控制台强制关机重启后该功能可能会出现异常。

更换国内源:(选择执行)

bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirror.sh)

友情提示:若您使用 VPS 平台、则不需要执行此脚本,用原有平台官方源不但速度快还能节省流量。

注意:1. 此脚本为本人原创的 一键更换国内更新源脚本 ,此处调用本人另一个原创项目中的脚本文件。\
ㅤㅤㅤ2. 脚本自带备份功能,无需手动备份原有官方源,此脚本之前附加在旧版本部署脚本中现独立出来。\
ㅤㅤㅤ3. 此脚本并没有适配所有的 GNU/Linux 发行版和版本号,具体支持列表详见下方表格。

  • 可使用 ChangeMirror 一键更换国内源脚本的 GNU/Linux 发行版:
操作系统 支持的版本
Ubuntu 18.04 ~ 20.10
Debian 9.0 ~ 10.8
Fedora 28 ~ 33
CentOS 7.0 ~ 8.3
Kali 2019 ~ 2021.1

友情提示:如果您的系统或版本不在此列表中则无法使用此脚本,即时误执行也不会有任何的更改

脚本一键部署:

bash <(curl -sSL https://gitee.com/SuperManito/JD-FreeFuck/raw/main/install.sh)

设置全局环境变量:

source /etc/profile

常见问题与帮助:

  1. 如果执行部署脚本命令后提示 Command 'curl' not found 则说明当前未安装 curl 软件包,安装命令如下:

    apt install -y curl 或 yum install -y curl

  2. 如果执行脚本部署命令后没有反应直接结束并跳回终端交互说明您的网络环境存在问题,请检查您的网络连通性。

  3. 如在拉取活动脚本时失败提示 ssh: connect to host gitee.com port 22: Connection timed out 是由于您使用平台的 22 端口不可用所导致,自行解决处理。

  4. 如在拉取活动脚本时失败提示 Repository more than 5 connections 是由于 Gitee 限制了每秒同时拉取项目的IP不能超过 5 个所导致,此报错为正常现象,重新执行更新命令即可。

  5. 部署成功后无法访问 控制面板 浏览器提示 无法访问此网站 是由于 5678 端口外部不能访问所导致。

  6. 如果 控制面板 功能未安装成功可根据《使用与更新》教程之<控制面板教程>的第7条命令重新安装。


下面是 Docker 版本的部署教程,执行命令前请认真阅读注释内容,不要执行错误的命令!


Docker 版本

支持的架构:

amd64 arm64 arm/v8 arm/v7 arm/v6 ppc64le s390x

部署前需知与准备工作:

  1. 执行命令前请检查您当前环境是否联网,并请切换至 root 用户,切换命令为 sudo -i
  2. 下面的教程涉及 容器技术 专业知识,执行命令前请先看 注释内容 ,若无法理解请先自行百度查询。
  3. 使用 NAS 软路由 的朋友请在终端执行下面教程中的命令,不要使用图形界面,复制命令时请复制完整不要自作聪明。
  4. 若您使用 VPS 平台,部署前请进入您所使用平台提供商的防火墙功能,检查是否已开放相关端口、允许HTTP/HTTPS流量通过等设置。
  5. 控制面板 功能的初始用户名为 useradmin,初始密码为 supermanito,部署成功后可通过 http://内部或外部IP地址:5678 访问。
  6. 如果您使用平台的网络环境暴露在了公网,请根据教程更改 控制面板 的用户名、密码,否则造成的信息泄露后果自负。
  7. 若您使用 VPS 平台,关机前请先手动执行相关命令停止控制面板的运行,否则在控制台强制关机重启后该功能可能会出现异常。

安装 Docker 客户端:(选择执行)

  • Linux

    curl -sSL https://get.daocloud.io/docker | sh

ㅤ注意:1.部分设备环境默认集成 Docker Server 客户端,如果没有安装请先执行此官方脚本一键安装。\
ㅤㅤㅤㅤ2.执行此脚本期间不会输出下载速度,若时间过长可终止执行,请更换 Docker CE 国内源并根据 官方文档 手动安装。

  • Windows / MacOS

    官方安装教程:https://docs.docker.com/desktop

ㅤ注意:Docker Desktop 对系统版本有一定的要求,且与虚拟机存在兼容性问题,遇到问题请自行解决。

下载镜像:

docker pull registry.cn-hangzhou.aliyuncs.com/supermanito/jd

注意:1.此镜像大约需要占用 239MB 的空闲存储空间,目前最新版本的镜像ID为 d9df47b78ff6\
ㅤㅤㅤ2.若下载速度较慢,可配置镜像加速器以解决网速的问题。

启动容器:

docker run -dit \
-v /opt/jd/scripts:/jd/scripts `# 设置活动脚本的主机挂载目录为/opt/jd/scripts` \
-v /opt/jd/config:/jd/config `# 设置配置文件的主机挂载目录为/opt/jd/config` \
-v /opt/jd/log:/jd/log `# 设置日志文件的主机挂载目录为/opt/jd/log` \
-p 5678:5678 `# 设置端口映射,格式为 "主机端口:容器端口",主机端口号可自定义` \
-e ENABLE_HANGUP=true `# 启用挂机功能` \
-e ENABLE_WEB_PANEL=true `# 启用控制面板功能` \
--name jd `# 设置容器名为 jd ` \
--network bridge `# 设置容器网络类型为桥接,直连主机` \
--hostname jd `# 设置容器内主机名为 jd ` \
--restart always `# 设置容器开机自启` \
registry.cn-hangzhou.aliyuncs.com/supermanito/jd

友情提示:请完整复制上面的命令,如果您不了解 Docker 容器技术,不要自作聪明删减后面的注释内容!

注意:1.如果是旁路由,容器网络类型需使用 host 模式,请将 --network bridge 参数改成 --network host\
ㅤㅤㅤ2.如果设备不存在 opt 目录,请先通过命令 mkdir /opt 创建主机目录,您也可以自定义您的挂载目录。\
ㅤㅤㅤ3.如果您使用平台的网络环境暴露在了公网(例如 VPS 用户),请更改主机映射的端口号以降低信息安全隐患。\
ㅤㅤㅤ4.如果您想将挂载目录替换为当前所在目录,将 /opt 参数改成 $PWD 即可,注意不要忽略后面的文件夹。\
ㅤㅤㅤ5.如果您想多台容器,将容器名修改为其它名称即可,后续使用中的命令参数也需要随之更改。

初始化容器:

docker logs -f jd

注意:请先执行此命令查看容器初始化进度,当输出 容器启动成功...... 字样时即代表容器启动正常,此时通过命令 Ctrl + C 退出即可。

更新项目文件与活动脚本::

docker exec -it jd bash git_pull.sh

常见问题与帮助:

  1. 如在拉取活动脚本时失败提示 ssh: connect to host gitee.com port 22: Connection timed out 是由于您使用平台的 22 端口不可用所导致,自行解决处理。
  2. 如在拉取活动脚本时失败提示 Repository more than 5 connections 是由于 Gitee 限制了每秒同时拉取项目的IP不能超过 5 个所导致,此报错为正常现象,重新执行更新命令即可。
  3. 部署成功后无法访问 控制面板 浏览器提示 无法访问此网站 是由于容器映射的 主机端口 (默认5678)外部不能访问所导致。
  4. 如果 控制面板 功能未安装成功可根据《使用与更新》教程之<控制面板教程>的第7条命令重新安装。

三、配置项目


接下来需要您JD账户的“身份证”,它由 Cookie部分内容 组成,将它写入至配置文件中才可以开始使用\
此部分教程的配置操作也可在 控制面板 功能中的 WEB网页 完成配置,可取代在终端输入命令,适合小白


关于获取账户信息的途径:

  • 通过 控制面板 功能进入 WEB网页 手机APP扫码获取,获取后可直接在配置文件中配置 (优先推荐)
  • 通过浏览器 开发工具 获取,请前往 Wiki 查看具体的图文教程ㅤ点击此处前往
  • 通过浏览器 扩展插件 获取,请前往 Wiki 查看具体的图文教程ㅤ点击此处前往

所有方式获取的 Cookie 有效期均为1个月,过期后活动脚本会有提示,届时您需要手动更新您的账户信息

配置账户信息:

  • 将获得的 Cookie部分内容 填入下面命令中的 "双引号" 内,然后复制完整命令到终端并执行:

    sed -i ’30c Cookie1=””‘ config/config.sh
    sed -i ’31c Cookie2=””‘ config/config.sh
    sed -i ’32c Cookie3=””‘ config/config.sh
    sed -i ’33c Cookie4=””‘ config/config.sh
    sed -i ’34c Cookie5=””‘ config/config.sh
    sed -i ’35c Cookie6=””‘ config/config.sh

ㅤ参考命令:sed -i '30c Cookie1="pt_key=xxxxxxx;pt_pin=xxxxx;"' config/config.sh

ㅤ注意:1. 执行此命令前 Linux 版需要进入项目安装目录,Docker 版需要进入容器内。\
ㅤㅤㅤㅤ2. 用几个账号就执行几行命令,此操作对应配置文件中的第 30~35 行内容。\
ㅤㅤㅤㅤ3. 超出6个账号后需要自行在 config.sh 配置文件中创建变量,各个账号之间不能有空变量。\
ㅤㅤㅤㅤ4. 否则从空变量起下面的账号将不能被识别,例如 Cookie2 没有填则 Cookie3 及以下的所有账号都不能被识别。

配置消息推送:(可选)

详见 config.sh 配置文件中 推送通知环境变量 板块的注释内容,教程很详细……


四、使用项目

使用与更新教程:

注意:您使用的是哪个版本就用哪个版本的教程,不要错用、混用,更不要擅自使用本项目之外的教程命令,否则出现问题后果自负!

项目通知:

  • 项目后续的 更新 修复 通知 都会在项目页置顶,请保持关注本项目或订阅 Telegram 通知频道

更新 代表有新的内容增加,您可以更新也可以继续使用之前的版本,不影响当前使用,除非说明需要重新部署\
修复 代表有错误已经修复完毕需要您执行相关命令解决相应的问题,如有特殊命令需要执行会在 Wiki 首页发布\
通知 代表有新的内容或信息需要您了解,请确保已仔细阅读所有通知内容


五、卸载项目

Linux 版本

  • 停止控制面板与后台挂机程序的运行:

    pm2 stop /opt/jd/panel/ecosystem.config.js
    pm2 stop jd_crazy_joy_coin

  • 删除项目文件:

    rm -rf /opt/jd

  • 卸载已安装的软件包:

    apt remove -y git perl moreutils nodejs npm 或 yum remove -y git perl moreutils nodejs npm

Docker 版本

  • 停止控制面板与后台挂机程序的运行:

    docker exec -it jd /bin/bash pm2 stop panel/ecosystem.config.js
    docker exec -it jd pm2 stop jd_crazy_joy_coin

  • 删除容器:

    docker rm -f jd

  • 删除容器挂载目录:

    rm -rf /opt/jd

  • 删除镜像:

    docker rmi -f registry.cn-hangzhou.aliyuncs.com/supermanito/jd

若您 已接受 本项目中的声明,您必须在下载后的 24小时 内从计算机中完全删除相关内容。


六、赞赏作者

  • 如果您有意见与建议或者遇到问题需要我的协助,欢迎到 Issues 提交您的反馈
  • 为了提高效率快速解决您的问题,请严格按照模板提交,感谢您的理解与配合

赞赏码

微信赞赏码

开发不易、维护艰辛,如果您愿意支持此项目,可对我打赏,感激不尽!
1. 本站所有文章和内容源于站长整理与输出,如有侵权请邮件联系站长!
2. 本站部分文章教程提供PDF版本付费下载收藏备用,网页版可免费阅读与浏览!
3. 联系站长或者加入社群,请通过顶部菜单栏加入,或者邮件联系 jackerooliu@gmail.com.
Jackeroo的个人独立博客 | Working | Life | Interests » [个人备份]《JD薅羊毛》一键部署 For Linux/OpenWrt

发表评论