ericwang2006 / docker_ttnode

甜糖星愿
MIT License
376 stars 100 forks source link

视频教程

youtube 哔哩哔哩

视频教程比较详细,欢迎大家点赞订阅支持一下

特别说明

目前甜糖官方已经提供了docker方案,建议大家尽量使用甜糖官方docker镜像,使用本项目不能确保获取及时的更新。如果只想使用本镜像的自动收割星愿和自动提现的功能,可以把环境变量DISABLE_TTNODE设置成1,参考代码:

docker run -itd \
  -v /your/cache/path:/mnts \
  -e DISABLE_TTNODE=1 \
  -p 1043:1043 \
  --name ttnode \
  --restart=always \
  ericwang2006/ttnode:alpine

alpine版本

请充分了解以上事项后再决定是否更新,当然欢迎测试并反馈问题。此版本属于测试版,不排除有较多bug。 使用方法和老版本相同,只是需要把代码中的ericwang2006/ttnode替换成ericwang2006/ttnode:alpine

甜糖星愿镜像

使用条款

食用方法

如果是arm架构(例如N1盒子),可直接使用,如果是x86平台,是不支持arm架构镜像,因此我们可以运行一个新的容器让其支持该特性。 已经实现多架构自适应,这步可以省略了。以后只要无脑docker pull ericwang2006/ttnode,就是这么方便。

docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

方法一

打开混杂(这步可以省略,如果不能正常工作再打开)

ip link set eth0 promisc on

创建网络(自行替换网关以及网段)

docker network create -d macvlan --subnet=192.168.2.0/24 --gateway=192.168.2.88 -o parent=eth0 -o macvlan_mode=bridge macnet

运行容器(自行替换路径、IP以及可选替换dns)

docker run -itd \
  -v /mnt/data/ttnode:/mnts \
  --name ttnode \
  --hostname ttnode1 \
  --net=macnet --ip=192.168.2.2 --dns=114.114.114.114 --mac-address C2:F2:9C:C5:B2:94 \
  --privileged=true \
  --restart=always \
  ericwang2006/ttnode

方法二: 直接主网络运行(替换路径)

docker run -itd \
  -v /mnt/data/ttnode:/mnts \
  --name ttnode \
  --hostname ttnode1 \
  --net=host \
  --privileged=true \
  --restart=always \
  ericwang2006/ttnode

方法三: docker-compose

version: '2'

services:     
  ttnode:
    image: ericwang2006/ttnode
    container_name: ttnode
    hostname: ttnode1
    privileged: true
    restart: always
    mac_address: C2:F2:9C:C5:B2:94
    dns: 114.114.114.114
    networks: 
      macvlan:
        ipv4_address: 192.168.2.2
    volumes:
      - /mnt/data/ttnode:/mnts

networks:
  macvlan:
    driver: macvlan
    driver_opts:
      parent: eth0
    ipam:
      config:
        - subnet: 192.168.2.0/24
          gateway: 192.168.2.1

进入容器:

docker attach ttnode
or
docker exec -it ttnode /bin/bash 

查询UUID:

环境变量

名称 说明 说明
DISABLE_ATUO_TASK 自动收星愿 1 禁用 非1 启用
DISABLE_CONTROL_PANEL 控制面板 1 禁用 非1 启用
DISABLE_IPDBCF 禁用ipdbcf进程 1 禁用ipdbcf进程 非1 不做任何处理
DISABLE_TTNODE 禁用甜糖服务 1 禁用甜糖服务,仍可使用自动收割星愿和自动提现的功能 非1 不做任何处理

FAQ

  1. 怎么多开?

    使用方法一macvlan,友情提示:不是开得越多越好。

  2. 主路由就是docker宿主机,为啥macvlan用不了?

    劝你们放过软路由吧,如果不服到恩山翻翻其他大神的贴子,有解决方案,但是路由器真的不是这么玩的。

  3. 升级镜像如何保持uid不变?

    uid和mac地址,hostname高度相关,缓存目录也尽可能和原来保持一致,建议按照以下步骤操作,如果不幸uid还是变化了,那就随缘吧。

    • 记录原来的mac地址,hostname和缓存目录(hostname可以进入容器执行hostname命令获取)
    • 记录/config/config.json文件中的配置参数
    • 删除原来容器
    • 执行docker pull ericwang2006/ttnode获取最新镜像
    • 创建新的容器,mac地址,hostname和缓存目录要和原来一样
    • 更新了最新的镜像后,配置参数可以在控制面板中设置
    • 建议将/config目录映射到宿主机目录,下次再更新就不需要设置配置参数了
    • 即使uid发生了变化也不要紧,只要缓存目录不变,在手机客户端重新绑定新的uid就可以了
  4. 我不用自动收割星愿,不用控制面板,可以不启用这两项功能吗?

    参看环境变量,如果你不懂啥叫环境变量,那就开着吧,基本不占用啥资源。

  5. 为什么我是优质网络,但却一直没有流量?

    CDN流量去如黄鹤,来如晨风。玩玩就好,何必认真。

  6. 内存占用过多,机器跑死

    执行下面命令限制一下容器内存,其中ttnodeA是容器名称,1024M是限制内存使用的上限,这个参数要根据自己机器配置调整。

docker update ttnodeA --memory-swap -1 -m 1024M

已知问题

[2020-11-18 10:25:12] ttnode进程不存在,启动ttnode,
/bin/sh: 1: cannot create /proc/sys/net/core/wmem_max: Directory nonexistent,
如果不能自动发现设备,请将此UID e1c8191de1e1e16a67e05ab3d7bc86ba 生成二维码并用甜糖客户端扫描添加,
[2020-11-18 10:25:34] ttnode启动失败,再来一次,
/bin/sh: 1: cannot create /proc/sys/net/core/wmem_max: Directory nonexistent,

特别说明

2021年3月30日测试,ipdbcf文件已经不会自动自动下载并运行了,新版本镜像默认将不再处理ipdbcf的行为,如果需要,请参看环境变量DISABLE_IPDBCF。

2021年3月19日官方升级了新版本(v194),使用之前的镜像会报错sh: 1: /mnts/ipdbcf: Exec format error,目前最新镜像已经做了针对性修改,但请知悉以下问题

  1. 这个错误目前只涉及x86架构设备,arm架构(玩客云,N1,树莓派等)设备不受影响。

  2. 请尝试更新GMT+8 2021-03-21 10:00:00后的最新镜像,注意不要使用国内的docker的镜像服务器(缓存更新缓慢,不能保证下载到的是最新版本),如果无法拉取最新版本可以尝试我发布的离线镜像 https://wws.lanzous.com/b01zvsbwj 密码:h92y

  3. 关于x86架构镜像长时间运行后CPU和内存占用过高的说明

    一句话,都是ipdbcf惹的祸。

    • ipdbcf的作用目前尚不明确,由ttnode进程动态下载到/mnts目录并启动,未监听任何端口

    • ttnode进程每分钟会检查一次ipdbcf进程是否存在,如果没有会尝试启动

    • 在arm架构下ipdbcf进程只会启动一个,不会占用过多资源

    • 在x86架构下,使用qemu模拟器运行,ttnode似乎不能判断ipdbcf进程是否存在,所以会不断启动新的ipdbcf进程(猜测)

    • 目前暂时用了点雕虫小技把ipdbcf禁用了,副作用尚不明确

    • x86架构下,使用qemu模拟器运行ttnode非官方建议做法,不能保证完美运行,且用且珍惜

    • 也希望官方尽早推出x86原生程序,x86设备众多,性能和稳定性都有一定优势

如果觉得还有点用,麻烦用一下我的邀请码631441,有加成卡15张,我也有推广收入