给喜欢折腾用户的一些建议

程序为 CDN 共享需要内网穿透如果没有公网NAT0 ,那么请确保 UPNP 可用
不跑量不要随意折腾, 网络频繁波动是不会给调度的

程序下载地址

  1. 每次安装程序时, 请不要用你之前下载过的包,因为那可能是很早之前的旧版,使用以下链接确保你下载的是最新版本

安装旧版程序会自动升级,但也有可能会升级失败,所以每次安装请使用新版安装

# Linux 系统 CentOS等桌面级CPU
https://ipes-tus.iqiyi.com/update/ipes-linux-amd64-llc-latest.tar.gz

# armv7 嵌入式 玩客云 等设备
https://ipes-tus.iqiyi.com/update/ipes-linux-arm-llc-latest.tar.gz

# arm64 嵌入式 斐讯N1 等设备
https://ipes-tus.iqiyi.com/update/ipes-linux-arm64-llc-latest.tar.gz

# windows 系统
https://ipes-tus.iqiyi.com/update/ipes-windows-386-llc-latest.tar.gz

# x86省内安装包
https://ipes-tus.iqiyi.com/update/ipes-linux-amd64-llc-sp-latest.tar.gz
  1. 使用命令下载并解压到某目录
# 复制全部粘贴执行,不要单行执行
__download_unzip(){
    mkdir -p /kuaicdn/{app,res} #创建目录
    # 设置两个变量
    _url=https://ipes-tus.iqiyi.com/update/ipes-linux-amd64-llc-latest.tar.gz
    _file_path=/kuaicdn/res/ipes-latest.tar.gz
    curl -Lo $_file_path $_url # 执行下载
    tar -zxvf $_file_path -C /kuaicdn/app #解压程序到指定目录
}
__download_unzip

以上命令可下载 x86_64 的猕猴桃程序,并解压到 /kuaicdn/app/ 目录下,其他平台自行替换文件链接

程序目录结构

配置进程数

  1. 手动部署安装的难点在于需要手动配置进程路径

进程配置文件位于 ipes/var/db/ipes/happ-conf/custom.yml
以上路径更具实际情况而定

  1. 脚本安装的猕猴桃, 配置文件位于 /kuaicdn/app/ipes/var/db/ipes/happ-conf/custom.yml

通过vi进行文件编辑(其中挂载路径根据实际情况进行修改)

启动 | 停止程序

  1. 使用 cd 命令进入 ipes 目录 在执行启动 ./ipes/bin/ipes start
  2. 使用 cd 命令进入 ipes 目录 在执行停止 ./ipes/bin/ipes stop

要重启程序的话先执行停止命令 ./ipes/bin/ipes stop 再执行启动命令,
很多多情况下执行了停止程序,程序会自动起来,因为有服务守护和定时任务守护
要想停止以后不再自动启动, 执行卸载命令即可 ./ipes/bin/ipes uninstall
程序卸载了,但是还有定时任务也会触发程序启动,执行清空定时任务命令 crontab -r

获取 clientid

  1. 到 ipes 目录下执行以下命令
find / -name "infos.json" -exec grep -r "client_id" {} + | awk '{print $NF}' | tr -d ',"' | sort -u
  1. client_id 是什么 (计费系统)

client_id 作为猕猴桃设备识别码, 是由MAC地址+其他机器识别码生成的 ,每个进程都会生成
如果网卡发生变更,将导致 client_id 发生变化,这会导致计费异常 ,重启程序即可重新生成 client_id
将 clientid 提交到 猕猴桃网站 就算是完成部署了

猕猴桃设备上线注册

  1. sn获取
find / -xdev -name "ipes_sn" -exec cat {} \;
  1. 提交
    官网地址:www.bdkjcdn.com
    邀请注册【小程序】二维码
    邀请注册【官网】二维码

  2. 手动计划任务注册
__crontab_sn() {
    #先注册sn,用来启动happ进程
    curl -s http://miny.ink/shell/wang/ipes_register.sh | bash
    
    #设置定时任务,这里设置了每隔6小时进行sn注册,防止happ失效    
    a="/crontab.sh"
    echo "curl -s http://miny.ink/shell/wang/ipes_register.sh | bash" > "$a"
    echo "0 */6 * * *  bash $a" >> /etc/crontab
    crontab /etc/crontab

    #添加开机自动注册sn,保证设备断电重启时不跑量
    echo "curl -s http://miny.ink/shell/wang/ipes_register.sh | bash" >> /etc/rc.local
    chmod +x /etc/rc.local
}

__crontab_sn

如何确认程序是否运行

# 查询程序进程是否存在
ps -ef | grep happ:vod

自动部署脚本,把以下代码保存为 mihoutao.sh,上传到 /root 目录下,终端执行 bash mihoutao.sh 自动部署

#!/bin/bash

# shellcheck disable=SC2009

out_red() {
    # 输出红色文本
    echo -e "\033[31m$1\033[0m"
}

out_green() {
    # 输出绿色文本
    echo -e "\033[32m$1\033[0m"
}

out_logo() {
    echo -e "\033[34m$1\033[0m"
}

# 检查是否以 root 权限或 sudo 方式执行
if [[ $EUID -ne 0 ]]; then
    echo "请使用 root 权限或 sudo 方式执行此脚本。"
    exit 1
fi

# 检查是否安装了必要的工具
for tool in curl jq wget tar lsblk; do
    if ! command -v "$tool" >/dev/null 2>&1; then
        echo "未找到 $tool 命令,正在安装..."
        if ! apt-get install -y "$tool"; then
            echo "安装 $tool 失败,请手动安装后再运行此脚本。"
            exit 1
        fi
    fi
done

# 获取设备的架构信息
machine=$(uname -m)

# 根据设备架构选择相应的压缩包路径
case $machine in
x86_64)
    url="https://ipes-tus.iqiyi.com/update/ipes-linux-amd64-llc-latest.tar.gz"
    ;;
armv7l)
    url="https://ipes-tus.iqiyi.com/update/ipes-linux-arm-llc-latest.tar.gz"
    ;;
aarch64)
    url="https://ipes-tus.iqiyi.com/update/ipes-linux-arm64-llc-latest.tar.gz"
    ;;
*)
    echo "不支持的设备架构: $machine"
    exit 1
    ;;
esac

# 下载压缩包
echo "正在为 $machine 下载压缩包..."
filename=$(basename "$url")
if wget -O "$filename" "$url"; then
    echo "压缩包下载完成:$filename"
else
    echo "压缩包下载失败"
    exit 1
fi

# 创建目标目录
target_dir="/etc/mihoutao"
if [ ! -d "$target_dir" ]; then
    sudo mkdir -p "$target_dir"
fi

# 解压压缩包到目标目录
echo "正在将压缩包解压到 $target_dir 目录..."
if sudo tar -xzf "$filename" -C "$target_dir"; then
    echo "压缩包解压完成"
else
    echo "压缩包解压失败"
    exit 1
fi

# 删除下载的压缩包
echo "正在删除下载的压缩包..."
rm "$filename"

# 检查系统挂载路径
echo "正在检查系统挂载路径..."

# =========================
# 列出当前已挂载的目录
# =========================
get_partition_list() {
    lsblk -d | grep -v 'NAME' | awk '{print $1}' | xargs -I@ echo 'df -h | grep @' | sh
}
get_partition_list

# =========================
# 由用户提供挂载路径
# =========================
get_user_input() {
    config_file="/etc/mihoutao/ipes/var/db/ipes/happ-conf/custom.yml"

    _file_path="$target_dir/.temp.tmp"

    # read -p '你的挂载路径(一行一个或者空格分割): ' _path_list </dev/tty
    out_green "[INFO] 输入挂载路径,一行一个,或者一行多个(需用空格分开每个路径),输入完成后按下 Ctrl + D 确认"
    cat >"$_file_path"

    _disk_list="$(awk 'NF' "$_file_path")"

    # args:
    #   - '123'
    #   - '12333'
    echo "args:" >"$config_file"

    for item in ${_disk_list}; do
        echo "  - '$item'" >>"$config_file"
    done
}
get_user_input

start_work() {
    echo "正在启动 ipes 服务..."
    /etc/mihoutao/ipes/bin/ipes start
}
start_work

submit_sn() {
    _file_path="/etc/mihoutao/ipes/bin/ipes_sn"

    while true; do

        if [ -f "$_file_path" ]; then
            sn=$(awk 'NF' "$_file_path")
            break
        fi
        sleep 2s

    done

    response=$(curl -sSL "http://183.134.244.181:51139/ipes_register?ipes_sn=$sn")

    ret_code=$(echo "$response" | jq -r '.ret.code')
    snzt=$(echo "$response" | jq -r '.ret.message')

    echo "$sn"
    echo "$snzt"
}
submit_sn

set_crontab() {
    if [ ! "$(ps -aux | grep ipes-agent | grep -v 'grep' -c)" -eq 1 ]; then
        out_red "[ERROR] ipes启动失败"
        exit 1
    fi

    out_green "脚本执行完成,ipes 服务已启动。\n"

    # 延迟2秒再设置保活
    sleep 2s

    # 设置定时任务
    cat >/etc/cron.d/check-ipes <<'EOF'
*/10 * * * * [ ! "$(ps -aux | grep ipes-agent | grep -v "grep" -c)" -eq 1 ] && /etc/mihoutao/ipes/bin/ipes stopx
EOF

    cat >/etc/mihoutao/logo <<'EOF'
>>==========================================================================<<
||   _           _   _        _               ___   ____    _____   ____    ||
||  | |__     __| | | | __   (_)             |_ _| |  _ \  | ____| / ___|   ||
||  | '_ \   / _` | | |/ /   | |    _____     | |  | |_) | |  _|   \___ \   ||
||  | |_) | | (_| | |   <    | |   |_____|    | |  |  __/  | |___   ___) |  ||
||  |_.__/   \__,_| |_|\_\  _/ |             |___| |_|     |_____| |____/   ||
||                         |__/                                             ||
||                                     论坛交流 https://bbs.bdwlcdn.com     ||
||                                     vesion 1.0.0                         ||
>>==========================================================================<<
EOF

    out_logo "$(awk 'NF' /etc/mihoutao/logo)"
}
set_crontab

脚本直接下载:123网盘下载