想尝试BT自动刷流,发现github有一个一直在维护的项目,故clone下来部署,发现由于熟练度原因,依然存在一堆问题。

链接

https://github.com/lipssmycode/byrbt_bot

引言

部署该项目正常来说我们需要满足以下条件:

  • 有一个教育网ipv6的机器。
  • 操作系统为linux,安装了docker以及docker compose
  • 硬盘大小1T以上(optional)

对我来说,第二点不太现实,因为linux系统少了很多办公必备的东西(word,ppt等),考虑到windows有wsl,故尝试用wsl来部署该项目,但实际上用wsl会存在不少问题,先总结如下:

  • wsl默认情况下只有ipv4地址,ipv6为局域网地址 -> 需要设置网络镜像(wsl新功能,win11才有貌似)
  • wsl需要前台一直运行,当我们将终端或者vs code关闭后,系统就进入休眠了 -> (利用vbs实现后台运行)

实践

部署及运行

  1. 配置config/config.ini,只需要修改byrbt账户名称和密码

  2. 配置docker-compose.yml,改动点基本上就是downloads目录的映射,以及为构建的镜像加一个tag

  3. 运行脚本start_bot_by_docker.sh即可

  4. 停止

    1
    2
    3
    export CURRENT_PUID=$(id -u)
    export CURRENT_PGID=$(id -g)
    docker-compose down

wsl网络模式

  1. 在wsl种用ipa addr检查当前ip地址,会发现eth0存在v4以及v6地址,但v6地址为局域网地址,只与本机相同

    1
    2
    3
    4
    5
    6
    # wsl ip
    inet 172.23.212.182/20
    inet6 fe80::215:5dff:fe01:6500/64 scope lin
    # windows ip
    本地链接 IPv6 地址. . . . . . . . : fe80::c309:9361:74d6:a657%8
    IPv4 地址 . . . . . . . . . . . . : 10.11.0.xxx
  2. 为此,我们需要更改wsl的网络模式

    • 在user目录下创建.wslconfig

    • 添加内容:

      1
      2
      3
      4
      5
      [wsl2]
      networkingMode=mirrored
      dnsTunneling=true
      firewal=true
      autoProxy=true
    • 重启

      1
      2
      wsl --shutdown
      ubuntu
  3. 重新查看ip,可以发现多了一个inet6的地址,即为成功

    1
    2
    3
    4
    3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 113.54.128.214/21 brd 113.54.135.255 scope global noprefixroute eth0
    inet6 240c:c983:4::2:83c4/128 scope global nodad noprefixroute
    inet6 fe80::275:21af:7292:d9a4/64 scope link nodad noprefixroute
  4. 验证

    1
    ping -6 ipw.cn

wsl自启动

1
2
3
4
# win+r -> shell:startup
#文件名: wsl.vbs
set ws=wscript.CreateObject("wscript.shell")
ws.run "wsl -d Ubuntu", 0