├── README.md └── platform.sh /README.md: -------------------------------------------------------------------------------- 1 | # 撸钱平台一键式命令安装 2 | 3 | * * * 4 | 5 | # 目录 6 | 7 | - [脚本特点](README.md#脚本特点) 8 | - [安装和卸载](README.md#安装和卸载) 9 | - [traffmonetizer 介绍(转述自 Google Play)](README.md#traffmonetizer-介绍转述自-google-play) 10 | - [bitping 介绍 (转述自 极客元素)](README.md#bitping-介绍-转述自-极客元素) 11 | - [repocket 介绍(转述自 官网)](README.md#repocket-介绍-转述自-官网) 12 | - [peer2profit 介绍 (转述自 知乎)](README.md#peer2profit-介绍--转述自-知乎-) 13 | - [PacketStream 介绍 (转述自 网络探索者)](README.md#packetstream-介绍--转述自-网络探索者-) 14 | - [免责声明](README.md#免责声明) 15 | 16 | * * * 17 | 18 | ## 脚本特点 19 | 20 | * 多个集成多个撸钱平台,全部镜像均自来官方,统一安装管理 21 | 22 | * 根据架构 AMD64 和 ARM64 自动选择和构建拉取的docker镜像,无需您手动修改官方案例安装。 23 | 24 | * 使用 Watchtower 自动同步官方最新镜像,无需手动更新和重新输入参数。(Watchtower 是一款实现自动化更新 Docker 镜像与容器的实用工具.它监控着所有正在运行的容器以及相关镜像,当检测本地镜像与镜像仓库中的镜像有差异时,会自动拉取最新镜像并使用最初部署时的参数重新启动相应的容器.) 25 | 26 | ## 安装和卸载 27 | 28 | ### 交互式使用方法---注册链接注册后,复制左上角的token,运行脚本,粘贴token,回车,即可开始安装。 29 | 30 | ```shell 31 | bash <(wget -qO- https://raw.githubusercontent.com/fscarmen/money_platform/main/platform.sh) 32 | ``` 33 | 34 | ### 全部卸载 35 | 36 | ```shell 37 | bash <(wget -qO- https://raw.githubusercontent.com/fscarmen/money_platform/main/platform.sh) -U 38 | ``` 39 | 40 | ## traffmonetizer 介绍[(转述自 Google Play)](https://play.google.com/store/apps/details?id=com.traffmonetizer.client) 41 | 42 | 注册: https://traffmonetizer.com/?aff=196148 43 | 44 | traffmonetizer 是一种允许用户通过分享您的流量来赚钱的选项。注册链接: https://traffmonetizer.com/?aff=196148 45 | 46 | 您共享的 1G 流量将获得 0.10 美元,并且此脚本支持数据中心网络或家庭带宽。 47 | 48 | 轻松在线赚钱!每个月,您都会以固定的月费获得无限的互联网流量包。大多数时候,有大量流量未被使用,您的连接处于空闲状态。出售一部分未使用的流量并开始赚取被动收入。 49 | 50 | 我们为什么要为此付费?数百家营销和广告代理商需要访问来自不同地区的客户网站,以确保他们的广告正常显示并检查其努力成果。这些公司向我们支付在不同地区收集数据的费用,而我们向您支付使用您的互联网流量收集这些数据的费用。 51 | 52 | ## bitping 介绍 [(转述自 极客元素)](https://www.geekmeta.com/article/1384361.html) 53 | 54 | 注册: https://app.bitping.com?r=n0zqXxLr 55 | 56 | bitping: 真实的分布式用户数据智能平台 57 | 58 | bitping 是一个强调真实数据的分布式、众包的智能网络。也是第一个收集真实的、可验证的用户数据的网络智能服务,并为此向节点支付实时费用。 59 | 60 | (对于普通用户讲,就是挂机赚比特币) 61 | 62 | ## repocket 介绍 [(转述自 官网)](https://repocket.co/about-us/) 63 | 64 | 注册: https://link.repocket.co/ArVa 65 | 66 | Repocket的创建是为了让任何能上网的人都能快速入门,赚取被动的副业收入。 67 | 68 | ## peer2profit 介绍 [ (转述自 知乎) ](https://zhuanlan.zhihu.com/p/439237654) 69 | 70 | 注册: https://p2pr.me/16526078526280cb6c30a08 71 | 72 | 全自动化挂机多平台赚钱,零成本可放大。 73 | 74 | 最先是平台的详细介绍。这一Peer2Profit平台是海外有悠久的历史的挂机平台。其工作原理与千寻以前讲解的平台类似。挂机市场销售设备的空余网络带宽可以得到盈利。 75 | 76 | Peer2Profit较大的特征便是有Windows,Android,Mac,Linux等版本号的手机软件,可以根据电脑上和手机上挂机。并且可以在同一帐户下登陆的设备沒有限制,同一IP现阶段都没有挂机限定(这可能是bug,之后应当限制)。可是,从千寻的评测看来,一个IP挂两部设备是较好的,不然网络速度变卡到你开始怀疑人生。 77 | 78 | ## PacketStream 介绍 [ (转述自 网络探索者) ](https://www.nettsz.com/2641.html) 79 | 80 | 注册: https://packetstream.io/?psr=4Qpr 81 | 82 | PacketStream是一个成立于2018年的P2P点对点代理网络平台。允许用户将自己的闲置带宽进行共享以获得相应的报酬。共享带宽的用户在平台上被称为“打包者”。 83 | 84 | 此外可以让客户从打包者共享的IP地址进行网络访问。总的来说PacketStream就是一个流量买卖平台。 85 | 86 | ## 免责声明 87 | 88 | 本程序仅供学习了解, 非盈利目的,请于下载后 24 小时内删除, 不得用作任何商业用途, 文字、数据及图片均有所属版权, 如转载须注明来源。 89 | 90 | 使用本程序必循遵守部署免责声明。使用本程序必循遵守部署服务器所在地、所在国家和用户所在国家的法律法规, 程序作者不对使用者任何不当行为负责. 91 | -------------------------------------------------------------------------------- /platform.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # 更新日期 2022-10-31 4 | 5 | PLATFORM=("watchtower" "traffmonetizer" "bitping" "repocket" "peer2profit" "psclient") 6 | REPOSITORY=("containrrr/watchtower" "traffmonetizer/cli" "bitping/bitping-node" "repocket/repocket" "peer2profit/peer2profit_linux" "packetstream/psclient") 7 | PLATFORM_NUM="${#PLATFORM[*]}" 8 | 9 | # 自定义字体彩色,read 函数,安装依赖函数 10 | red() { echo -e "\033[31m\033[01m$1$2\033[0m"; } 11 | green() { echo -e "\033[32m\033[01m$1$2\033[0m"; } 12 | yellow() { echo -e "\033[33m\033[01m$1$2\033[0m"; } 13 | reading() { read -rp "$(green "$1")" "$2"; } 14 | 15 | # 必须以root运行脚本 16 | check_root() { 17 | [ $(id -u) != 0 ] && red " The script must be run as root, you can enter sudo -i and then download and run again. \n" && exit 1 18 | } 19 | 20 | # 判断系统,并选择相应的指令集 21 | check_operating_system() { 22 | CMD=("$(grep -i pretty_name /etc/os-release 2>/dev/null | cut -d \" -f2)" 23 | "$(hostnamectl 2>/dev/null | grep -i system | cut -d : -f2)" 24 | "$(lsb_release -sd 2>/dev/null)" "$(grep -i description /etc/lsb-release 2>/dev/null | cut -d \" -f2)" 25 | "$(grep . /etc/redhat-release 2>/dev/null)" 26 | "$(grep . /etc/issue 2>/dev/null | cut -d \\ -f1 | sed '/^[ ]*$/d')" 27 | ) 28 | 29 | for i in "${CMD[@]}"; do SYS="$i" && [[ -n $SYS ]] && break; done 30 | 31 | REGEX=("debian" "ubuntu" "centos|red hat|kernel|oracle linux|amazon linux|alma|rocky") 32 | RELEASE=("Debian" "Ubuntu" "CentOS") 33 | PACKAGE_UPDATE=("apt -y update" "apt -y update" "yum -y update") 34 | PACKAGE_INSTALL=("apt -y install" "apt -y install" "yum -y install") 35 | PACKAGE_UNINSTALL=("apt -y autoremove" "apt -y autoremove" "yum -y autoremove") 36 | 37 | for ((int = 0; int < ${#REGEX[@]}; int++)); do 38 | [[ $(tr '[:upper:]' '[:lower:]' <<< "$SYS") =~ ${REGEX[int]} ]] && SYSTEM="${RELEASE[int]}" && break 39 | done 40 | 41 | [ -z "$SYSTEM" ] && red " ERROR: The script supports Debian, Ubuntu, CentOS or Alpine systems only. \n" && exit 1 42 | } 43 | 44 | # 判断宿主机的 IPv4 或双栈情况,没有拉取不了 docker 45 | check_ipv4() { 46 | [[ ! $(curl -s4m8 ip.sb) =~ ^([0-9]{1,3}\.){3} ]] && red " ERROR:The host must have IPv4. \n" && exit 1 47 | } 48 | 49 | # 查是否已经安装容器 50 | check_install() { 51 | [ $(type -p docker) ] && [[ $(docker ps -a) =~ $CONTAIN_NAME ]] && red " Repocket has been installed. The script exits. \n" && exit 1 52 | } 53 | 54 | # 判断 CPU 架构 55 | check_arch() { 56 | ARCHITECTURE=$(uname -m) 57 | [[ ! "$ARCHITECTURE" =~ aarch64|x64|x86_64|amd64 ]] && red " ERROR: Unsupported architecture: $ARCHITECTURE \n" && exit 1 58 | } 59 | 60 | error_input() { 61 | [ "$ERROR" = 1 ] && red "\n ERROR: Wrong choice. " && sleep 1 || ERROR=1 62 | } 63 | 64 | # 选择平台,并输入账户信息 65 | choose_platform() { 66 | until [[ "$CHOOSE" = [1-$((PLATFORM_NUM - 1 ))] ]]; do 67 | error_input 68 | yellow "\n Install or change account information:\n 1. Traffmonetizer\n 2. Bitping\n 3. Repocket\n 4. Peer2profit\n 5. PacketStream\n " && reading " Choose [1-$((PLATFORM_NUM - 1 ))]: " CHOOSE 69 | done 70 | 71 | [[ "$CHOOSE" = [23] && ! "$ARCHITECTURE" =~ x64|x86_64|amd64 ]] && red " ERROR: ${PLATFORM[$CHOOSE]} support amd64 only. \n" && exit 1 72 | case "$CHOOSE" in 73 | 1 ) case "$ARCHITECTURE" in 74 | aarch64 ) ARCH=arm64v8 ;; 75 | x64|x86_64|amd64 ) ARCH=latest ;; 76 | esac 77 | [ -z "$TMTOKEN" ] && reading " Enter your Traffmonetizer token: " TMTOKEN 78 | [ -z "$TMTOKEN" ] && red " ERROR: Wrong account message. \n" && exit 1 ;; 79 | 2 ) ;; 80 | 3 ) [ -z "$EMAIL" ] && reading " Enter your Email: " EMAIL 81 | [ -z "$PASSWORD" ] && reading " Enter your password: " PASSWORD 82 | [[ -z "$EMAIL" || -z "$PASSWORD" ]] && red " ERROR: Wrong account message. \n" && exit 1 ;; 83 | 4 ) [ -z "$EMAIL" ] && reading " Enter your Email: " EMAIL 84 | [ -z "$EMAIL" ] && red " ERROR: Wrong account message. \n" && exit 1 ;; 85 | 5 ) [ -z "$CID" ] && reading " Enter your CID: " CID 86 | [ -z "$CID" ] && red " ERROR: Wrong account message. \n" && exit 1 ;; 87 | * ) red " ERROR: Wrong choose. \n" && unset CHOOSE && choose_platform ;; 88 | esac 89 | } 90 | 91 | container_build() { 92 | build_1() { 93 | docker rm -f ${PLATFORM[$CHOOSE]} 2>/dev/null || true && docker run -d --name ${PLATFORM[$CHOOSE]} --restart=always ${REPOSITORY[$CHOOSE]}:$ARCH start accept --token "$TMTOKEN" 94 | } 95 | 96 | build_2() { 97 | RUN_MODE=d && [ ! -e $HOME/.bitping/credentials.json ] && RUN_MODE=it && mkdir -p $HOME/.bitping/ 98 | docker rm -f ${PLATFORM[$CHOOSE]} 2>/dev/null || true && docker run -$RUN_MODE --name ${PLATFORM[$CHOOSE]} --mount type=bind,source="$HOME/.bitping/",target=/root/.bitping ${REPOSITORY[$CHOOSE]} 99 | } 100 | 101 | build_3() { 102 | docker rm -f ${PLATFORM[$CHOOSE]} 2>/dev/null || true && docker run -d --name ${PLATFORM[$CHOOSE]} --restart=always -e RP_EMAIL=$EMAIL -e RP_PASSWORD=$PASSWORD ${REPOSITORY[$CHOOSE]} 103 | } 104 | 105 | build_4() { 106 | export P2P_EMAIL=$EMAIL 107 | docker rm -f ${PLATFORM[$CHOOSE]} 2>/dev/null || true && docker run -d --name ${PLATFORM[$CHOOSE]} --restart always -e P2P_EMAIL=$P2P_EMAIL ${REPOSITORY[$CHOOSE]} 108 | } 109 | 110 | build_5() { 111 | docker rm -f ${PLATFORM[$CHOOSE]} 2>/dev/null || true && docker run -d --name ${PLATFORM[$CHOOSE]} --restart always -e CID=$CID ${REPOSITORY[$CHOOSE]} 112 | } 113 | 114 | # 宿主机安装 docker 115 | if ! systemctl is-active docker >/dev/null 2>&1; then 116 | yellow "\n Install docker" 117 | if [ $SYSTEM = "CentOS" ]; then 118 | ${PACKAGE_INSTALL[int]} yum-utils 119 | yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 120 | ${PACKAGE_INSTALL[int]} docker-ce docker-ce-cli containerd.io 121 | systemctl enable --now docker 122 | else 123 | ${PACKAGE_INSTALL[int]} docker.io 124 | fi 125 | fi 126 | 127 | # 创建容器 128 | yellow "\n Create the ${PLATFORM[$CHOOSE]} container. \n" 129 | build_$CHOOSE 130 | } 131 | 132 | # 安装 watchtower ,以实时同步官方最新镜像 133 | towerwatch_build() { 134 | [[ ! $(docker ps -a) =~ 'watchtower' ]] && yellow " Install Watchtower. \n" && docker run -d --name watchtower --restart always -p 2095:8080 -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup 135 | } 136 | 137 | # 显示结果 138 | result() { 139 | docker ps -a | grep -q "${PLATFORM[$CHOOSE]}" && docker ps -a | grep -q "watchtower" && green " Install success. \n" || red " install fail. \n" 140 | } 141 | 142 | # 卸载 143 | uninstall() { 144 | # 限定输入范围 145 | until [[ "$REMOVE" = [0-$PLATFORM_NUM] ]]; do 146 | error_input 147 | yellow "\n 0. Watchtower\n 1. Traffmonetizer\n 2. Bitping\n 3. Repocket\n 4. Peer2profit\n 5. PacketStream\n 6. Above all\n " && reading " Remove choose [0-${#PLATFORM[*]}]: " REMOVE 148 | done 149 | 150 | if [ "$REMOVE" = "${#PLATFORM[*]}" ]; then 151 | docker rm -f ${PLATFORM[*]} 2>/dev/null 152 | docker rmi -f ${REPOSITORY[*]} 2>/dev/null 153 | [ -d $HOME/.bitping ] && rm -rd $HOME/.bitping 154 | else 155 | docker rm -f ${PLATFORM[$REMOVE]} 2>/dev/null 156 | docker rmi -f ${REPOSITORY[$REMOVE]} 2>/dev/null 157 | case "$REMOVE" in 158 | 2 ) [ -d $HOME/.bitping ] && rm -rd $HOME/.bitping ;; 159 | 4 ) unset P2P_EMAIL ;; 160 | esac 161 | fi 162 | green "\n Uninstall containers and images complete. \n" 163 | exit 0 164 | } 165 | 166 | 167 | # 主程序1 168 | check_root 169 | check_operating_system 170 | check_ipv4 171 | check_arch 172 | 173 | # 传参 174 | while getopts "Uu" OPTNAME; do 175 | case "$OPTNAME" in 176 | 'U'|'u' ) uninstall ;; 177 | esac 178 | done 179 | 180 | # 主程序2 181 | choose_platform 182 | container_build 183 | towerwatch_build 184 | result 185 | --------------------------------------------------------------------------------