感谢本项目的作者顾远大佬分享,原文链接为这里,本文在原文上稍微做了一点补充。
该容器可以监控NC盒子是否被限速,用于流量有日限制的机子,配置好容器后当监测到NC盒子流量被限速时会删掉qb里的种子(可以添加排除分类不删除),然后关闭qb;当监测到NC盒子限速解除后会重启qb,另外具备iyuu通知和tg机器人通知功能。白名单功能:该服务器的qb下载器不受自动控制,只监控限速情况。
有群友反应安装在自己的nas身无法监测到盒子,本人没有试过,所以建议直接安装在NC盒子上。
1.安装步骤
ssh登录nc,在当前目录下创建data文件夹并进入mkdir -p data/data && cd data
创建配置文件config.json,模版内容如下
{
"monitoring": {
"update_interval": 300,
"retry_interval": 60,
"log_level": "INFO",
"auto_control": true
},
"accounts": [
{
"name": "账户名称1",
"api_credentials": {
"loginname": "你的scp登录名",
"password": "你的scp密码"
},
"servers": [
{
"ip": "服务器IP地址",
"ssh_port": 22,
"ssh_username": "root",
"ssh_password": "root密码",
"control_type": "systemd",
"control_target": "服务名称,如 qbittorrent-nox@guyuanwind.service",
"qb_url": "http://服务器IP:端口",
"qb_username": "qBittorrent登录用户名",
"qb_password": "qBittorrent登录密码",
"excluded_categories": ["保留的分类1", "保留的分类2"]
},
{
"ip": "另一台服务器IP",
"ssh_port": 22,
"ssh_username": "root",
"ssh_password": "root密码",
"control_type": "docker",
"control_target": "容器名称,如 qb4747",
"qb_url": "http://服务器IP:端口",
"qb_username": "qBittorrent登录用户名",
"qb_password": "qBittorrent登录密码",
"excluded_categories": ["保留的分类1", "保留的分类2"]
}
]
},
{
"name": "账户名称2",
"api_credentials": {
"loginname": "另一个账户的登录名",
"password": "另一个账户的密码"
},
"servers": [
{
"ip": "第三台服务器IP",
"ssh_port": 22,
"ssh_username": "root",
"ssh_password": "root密码",
"control_type": "docker",
"control_target": "qb4747",
"qb_url": "http://服务器IP:端口",
"qb_username": "qBittorrent登录用户名",
"qb_password": "qBittorrent登录密码",
"excluded_categories": ["保留的分类1", "保留的分类2"]
}
]
}
],
"notifications": {
"telegram": {
"enabled": true,
"bot_token": "你的Telegram Bot Token",
"chat_id": "你的Telegram Chat ID"
},
"iyuu": {
"enabled": true,
"token": "你的IYUU Token"
}
},
"web": {
"username": "admin",
"password": "password"
}
}执行nano config.json,把以上内容复制进去按ctrl+x后按y再按回车保存退出;
这里说下模板里的几个参数
name: 账户名称,随便填就行
control_type: 用一键安装脚本部署qb的直接填 systemd 就行
control_target: 可以通过systemctl status qb*确认运行的服务名称,用一键安装脚本部署qb的一般是 qbittorrent-nox@.service
excluded_categories: 这里填希望qb退出时不想被删除的种子的分类名字,那种不能跳车的种子可以加进去
tg通知相关
bot_token: 机器人api token, 在tg中的BotFather里建立相关机器人就可以获取
chat_id: 获取Chat ID步骤如下
好友添加机器人 get_id_bot
输入 /start 或者菜单选择/my_id,即可获得自己的Chat ID。
执行 nano docker-compose.yml创建compose文件,内容如下
services:
nc-traffic-monitor:
image: guyuanwind/nc-traffic-monitor:latest
container_name: nc-traffic-monitor
restart: unless-stopped
# 端口映射
ports:
- "4949:4949" # Web界面端口
# 环境变量
environment:
- TZ=Asia/Shanghai
- PYTHONUNBUFFERED=1
# 挂载配置文件、数据目录
volumes:
- ./config.json:/app/config.json:ro # 只读挂载配置文件
- ./data:/app/data # 数据目录(状态文件和日志)
- /etc/localtime:/etc/localtime:ro # 挂载主机时区文件
# 网络模式
networks:
- nc-monitor-network
networks:
nc-monitor-network:
driver: bridge然后执行docker compose up -d启动该容器
启动后可以通过 docker ps |grep nc 命令查看容器是否正常启动,如果启动异常可以通过执行 docker compose logs -f来查看具体的日志信息,启动异常一般是config.json文件有问题(比如多了逗号等)。
之后可以在web端登录查看监控情况
web里输入NC ip+4949端口进入,默认账号密码为admin password
2.web展示图

3.机器人展示
tg机器人可以通过菜单交互查询所有服务器状态、添加白名单和删除白名单

版权属于:咖啡走糖
本文链接:https://www.qwc-lmhhj.cn/archives/301.html
若无注明,本文皆咖啡走糖原创,转载时必须注明出处及本声明!