自动浏览 Linux.do 论坛帖子,模拟真实用户行为,帮助完成每日活跃任务。
问题描述: git clone 源码用户执行更新后,重新运行仍提示需要更新,陷入死循环。
根本原因: version.py 中版本号硬编码为 1.0.0,CI 打包时动态修改但不回写仓库,导致 git pull 拉到的版本号永远低于 Release 版本。
修复内容:
version.py:版本号同步为1.0.2(与最新 Release 一致)build.yml:CI 打包后自动将版本号回写 main 分支,避免再次出现版本不同步
修改文件: core/checkin.py
connect.linux.do 页面再次改版,完全抛弃 <table> 表格布局,改为 4 种卡片组件。
| 卡片类型 | CSS 选择器 | 解析项目 |
|---|---|---|
| 环形图 | .tl3-rings / .tl3-ring-circle |
访问天数、浏览话题、浏览帖子 |
| 进度条 | .tl3-bars / .tl3-bar-label |
回复话题、点赞、获赞、获赞天数、获赞用户 |
| 配额卡片 | .tl3-quota-card |
被举报帖子、举报用户 |
| 否决项 | .tl3-veto-item |
被禁言、被封禁 |
修改内容:
_get_user_info()/_get_progress():等待元素选择器改为.tl3-rings/.tl3-bars_parse_progress_from_html():重写为 4 种正则匹配卡片布局,删除旧版<td>表格 fallback- 删除
_parse_required_value()方法(仅旧版使用)
重大更新: README.md 新增「全平台详细安装指南」章节,覆盖 7 大平台、27 种安装方式,每种方式均包含完整的操作步骤。
新增章节:全平台详细安装指南
| 平台 | 安装方式 | 说明 |
|---|---|---|
| Windows | 4种 | Windows.cmd / install.py / 二进制 / 源码手动 |
| macOS | 4种 | linuxANDmacos.sh / install.py / 二进制 / 源码手动 |
| Linux (x64) | 5种 | linuxANDmacos.sh / install.py / 二进制 / 源码手动 / Docker |
| Docker (x86_64) | 3部分 | docker-compose / 手动 build / 定时任务配置 |
| 青龙面板 | 3部分 | Alpine 镜像 / Debian 镜像 / 环境变量配置 |
| ARM 设备 | 6种 | setup_arm.sh / linuxANDmacos.sh / install.py / 二进制 / Docker ARM / 无图形界面方案 |
| LXC 容器 | 3部分 | 二进制安装 / 源码安装 / 注意事项 |
每种安装方式包含 6 个标准要素:
- 适用场景 — 一句话说明该方式适合谁
- 前置条件 — 需要预装什么
- 完整操作步骤 — 从下载到运行,每步都有命令
- 首次登录方式 — 明确说明如何完成首次登录
- 定时任务设置 — 具体命令或脚本引用
- 常见问题 — 该平台特有的问题和解决方法
安装方式总览对比表:
- 一键对比所有平台支持的安装方式(一键脚本 / Python 脚本 / 二进制 / 源码 / Docker)
- 每种方式标注推荐度
- 选择建议:个人电脑 → 一键脚本、VPS → 二进制、LXC → 二进制、Docker → docker-compose、ARM → setup_arm.sh
文档结构优化:
- 目录新增「全平台详细安装指南」及 7 个子章节链接
- 新章节位于「一键安装」和「快速开始」之间,用户可快速定位
- 保留原有「方案详解」章节(向后兼容已有锚点链接)
- 新章节中交叉引用已有方案详解,避免内容重复
文档规模:
- README.md 从 2769 行增长到 3877 行(+1108 行)
- 新增内容约 1100 行,覆盖全平台全方式
修复内容: Windows.cmd 中文乱码 + 浏览器测试改为有头模式
新增功能: Linux 系统签到后强制清理缓存 + 签到前磁盘空间预检查 + Chrome 缓存大小限制
| 功能 | 说明 |
|---|---|
| 强制清理 | Linux 系统每次签到后必须清理缓存,不可关闭 |
| 磁盘预检查 | 签到前检测磁盘空间,不足时先清理再启动浏览器 |
| 缓存限制 | Chrome 启动参数限制缓存大小(容器 50MB / 普通 Linux 100MB) |
| 手动清理 | --clear-cache 参数手动触发清理 |
清理内容(仅保留登录状态):
- Cache - 网页缓存
- Code Cache - JavaScript 代码缓存
- GPUCache - GPU 缓存
- ShaderCache - 着色器缓存
- 临时文件 - Crashpad、blob_storage 等
新增配置项(config.yaml):
# Chrome 缓存大小限制(MB),0 为自动(容器 50MB / 普通 Linux 100MB)
cache_size_limit: 0
# 磁盘空间告警阈值(MB),低于此值签到前自动清理,0 禁用
disk_free_threshold: 500使用方式:
# 手动清理缓存
python main.py --clear-cache说明: Linux 系统(Docker/VPS/ARM)签到后强制清理,Windows/macOS 自动跳过。
新增功能: 为 Linux 容器/VPS 等磁盘空间有限的环境添加浏览器缓存清理功能
| 功能 | 说明 |
|---|---|
| 自动清理 | 签到完成后自动清理浏览器缓存(仅 Linux) |
| 手动清理 | --clear-cache 参数手动触发清理 |
说明: Windows/macOS 不需要此功能,会自动跳过。
改进内容: 完善 Linux/macOS 一键安装流程,彻底解决浏览器兼容性问题
问题背景:
Ubuntu 22.04+ 默认的 chromium-browser 是 Snap 包,存在沙箱限制,导致 DrissionPage 无法正常控制浏览器。
解决方案:
- 完全移除 Snap Chromium - 不再检测和使用任何 Snap 版本的浏览器
- 使用 Google 官方 apt 源 - 通过官方源安装 Google Chrome,避免 Snap 问题
- 安装流程优化 - Python 环境配置完成后,自动验证浏览器并打开测试页面
| 改进项 | 说明 |
|---|---|
| 只使用 Google Chrome | 完全移除 Snap Chromium 检测,避免兼容性问题 |
| 官方 apt 源安装 | 使用 Google 官方 apt 源安装 Chrome,更稳定 |
| 浏览器验证流程 | Python 环境配置后自动验证浏览器安装 |
| 可视化测试 | 浏览器测试改为打开 Google 首页(非无头模式) |
| 配置文件优化 | 配置向导只检测 Google Chrome 路径 |
Chrome 安装方式(apt 源):
# 添加 Google 签名密钥
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo gpg --dearmor -o /usr/share/keyrings/google-chrome.gpg
# 添加 apt 源
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/google-chrome.gpg] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list
# 安装
sudo apt-get update && sudo apt-get install -y google-chrome-stable修改文件:
一键安装脚本点这里/linuxANDmacos.sh- 浏览器检测和安装流程重构一键安装脚本点这里/install.py- 同步更新 Chrome 安装方式core/browser.py-find_browser_path()只检测 Google Chrome
重大更新: 彻底重写浏览器模块,解决 Linux/macOS 浏览器连接问题
| 新增功能 | 说明 |
|---|---|
| 全平台支持 | Windows / macOS / Linux (x64/ARM) 统一处理 |
| 自动端口检测 | 自动查找可用调试端口,避免端口冲突 |
| 进程清理 | 启动前自动清理占用端口的进程 |
| 重试机制 | 浏览器启动失败自动重试 3 次 |
| 环境检测 | 自动检测虚拟机、WSL、容器环境 |
| 新增检测函数 | 说明 |
|---|---|
is_macos() |
检测 macOS 系统 |
is_windows() |
检测 Windows 系统 |
is_wsl() |
检测 WSL 环境 |
is_virtual_machine() |
检测虚拟机环境 |
has_display() |
检测图形显示环境 |
| Linux 自动添加参数 | 说明 |
|---|---|
--no-sandbox |
所有 Linux 环境 |
--disable-dev-shm-usage |
避免共享内存问题 |
--disable-gpu |
虚拟机/无 GPU 环境 |
--disable-software-rasterizer |
减少资源占用 |
--disable-extensions |
避免扩展干扰 |
--disable-background-networking |
减少网络请求 |
--disable-ipc-flooding-protection |
避免连接断开 |
--remote-debugging-port |
DrissionPage 连接必需 |
修改文件:
core/browser.py- 完全重写,新增 15+ 个函数main.py-first_login()重写,支持全平台
修复问题: Linux 系统 Chrome 浏览器打开后 DrissionPage 连接失败
| 改进项 | 说明 |
|---|---|
| 远程调试端口 | 添加 --remote-debugging-port=9222 参数 |
| 端口配置 | DrissionPage 使用 set_local_port(9222) 连接 |
| 额外参数 | 添加 --disable-extensions、--disable-background-networking |
修改文件:
core/browser.py-get_linux_chrome_args()添加远程调试端口core/browser.py-_create_options()添加set_local_port(9222)main.py-first_login()同步添加端口配置
新增内容: Linux 虚拟机代理配置指南
| 改进项 | 说明 |
|---|---|
| 故障排除 | 新增「问题 2.1:Linux 虚拟机无法访问 GitHub」 |
| 常见问题 | 新增 Q8:Linux 虚拟机无法 git clone |
| 快速开始 | 添加虚拟机用户代理配置提示 |
| 方案C | 添加网络代理注意事项 |
| 一键安装 | Linux 部分添加代理配置提示 |
代理配置内容:
- 终端代理(http_proxy/https_proxy)
- Git 代理(git config)
- APT 代理(/etc/apt/apt.conf.d/proxy.conf)
- 系统级代理(图形界面设置)
- v2rayN 局域网配置方法
Ubuntu 浏览器安装优化:
| 改进项 | 说明 |
|---|---|
| 优先安装 Chrome | Ubuntu 22.04+ 的 chromium-browser 是 Snap 包,需要 snap store |
| 避免 Snap 问题 | 直接下载 Google Chrome deb 包安装,无需 snap store |
| 自动检测浏览器 | 已有浏览器时跳过安装 |
| 回退机制 | Chrome 下载失败时尝试安装 Chromium |
修复问题: 定时任务运行时更新检查会阻塞(等待用户输入)
| 改进项 | 说明 |
|---|---|
| 交互模式检测 | 自动检测是否有终端输入 |
| 定时任务兼容 | 非交互环境自动跳过更新检查 |
| 手动运行正常 | 用户手动运行时正常提示更新 |
检测逻辑:
sys.stdin.isatty()检测是否有 TTY- 定时任务(Windows 任务计划、cron)无 TTY,自动跳过
- 用户手动运行有 TTY,正常提示更新
修复问题: 用户已有完整环境但更新检查报错"请先运行一键安装"
| 改进项 | 说明 |
|---|---|
| 智能检测 Python | 优先使用 venv,否则使用系统 Python |
| 兼容多种安装方式 | 支持 venv 安装、系统 Python 直接运行 |
| 改进错误提示 | 区分"缺少依赖"和"首次安装" |
检测逻辑:
检查 updater.py 是否存在
↓
优先使用 venv Python
↓
venv 不存在?使用系统 Python
↓
都不存在?提示首次安装
重要改进:所有入口点启动时自动检查更新
之前版本的更新检测只在执行签到任务时提示,但签到完成后会自动退出,导致更新无法执行。 现在所有脚本启动时就会检查更新,用户可以选择是否立即更新。
| 入口点 | 更新检测 | 说明 |
|---|---|---|
main.py |
✅ 启动时检查 | 发现新版本时询问是否更新 |
install.py |
✅ 启动时检查 | 显示主菜单前检查更新 |
Windows.cmd |
✅ 启动时检查 | 新增菜单选项 7: 检查更新 |
linuxANDmacos.sh |
✅ 启动时检查 | 新增菜单选项 9: 检查更新 |
更新流程:
启动脚本 → 检查更新 → 发现新版本 → 询问是否更新 [Y/n]
↓
Y: 执行更新 → 退出(重新运行)
n: 跳过 → 继续正常使用
一键安装脚本版本: v1.3.0
新增 --check-update 自动更新功能:
| 功能 | 说明 |
|---|---|
| 自动检测安装方式 | 区分 git clone、预编译二进制、源码安装 |
| git 安装自动更新 | 执行 git pull origin main 更新 |
| 二进制自动更新 | 下载新版本并替换(支持进度显示) |
| 本地修改保护 | git 更新前自动 stash 本地修改 |
| Windows 兼容 | 生成更新脚本,关闭程序后执行替换 |
使用方法:
# 检查并更新
python main.py --check-update
# 或直接运行(启动时会提示有新版本)
python main.py更新流程:
- 检测当前版本和最新版本
- 显示更新内容
- 选择更新方式:自动更新 / 打开下载页面 / 取消
- 自动更新会根据安装方式选择 git pull 或下载替换
重要修复:彻底解决 Linux 系统浏览器启动失败问题
此版本后,Linux 用户(包括有图形界面的桌面环境)无需手动配置即可正常使用。
| 修复项 | 说明 |
|---|---|
| Linux 自动适配 | 自动检测 Linux 系统并添加必要的 Chrome 启动参数 |
--no-sandbox |
Linux 系统自动添加(不仅限于容器环境) |
--disable-dev-shm-usage |
避免 /dev/shm 空间不足导致崩溃 |
--disable-gpu |
避免虚拟机/无 GPU 环境问题 |
| 浏览器路径检测 | 增强检测,支持 snap/flatpak 安装的浏览器 |
| 定时任务优化 | 有图形界面时设置 DISPLAY 环境变量,无需 xvfb-run |
修复文件:
core/browser.py- 新增get_linux_chrome_args()和find_browser_path()函数main.py- 首次登录同步修复,添加详细错误提示一键安装脚本点这里/install.py- Linux 自动添加浏览器参数,定时任务优化一键安装脚本点这里/linuxANDmacos.sh- 同步更新README.md- 故障排除部分重写config.yaml.example- 添加详细的 Linux 配置说明
如果仍然遇到问题:
# 更新到最新版本
git pull origin main
# 或重新克隆
git clone https://github.com/xtgm/linux-do-max.git修复 Linux 预编译二进制 glibc 兼容性问题:
| 修复项 | 说明 |
|---|---|
| glibc 版本 | 从 2.38 降到 2.31 |
| 兼容系统 | Debian 11+、Ubuntu 20.04+、大部分 LXC 容器 |
| 构建环境 | Linux x64 改为 ubuntu-20.04,ARM64 改为 ubuntu20.04 |
新增 LXC/Docker 容器支持:
| 功能 | 说明 |
|---|---|
chrome_args 配置 |
支持自定义 Chrome 启动参数 |
| LXC 容器检测 | 自动检测 LXC/Docker/Podman 容器环境 |
自动添加 --no-sandbox |
容器环境自动配置,无需手动设置 |
新增国产操作系统支持:
| 系统 | 说明 |
|---|---|
| 银河麒麟 (Kylin) | 国产 ARM/x86 操作系统,基于 Ubuntu |
| 统信 UOS | 国产操作系统,基于 Debian |
| 深度 Deepin | 国产操作系统,基于 Debian |
| Linux Mint | Ubuntu 衍生版 |
| Pop!_OS | System76 的 Ubuntu 衍生版 |
| Elementary OS | Ubuntu 衍生版 |
| Zorin OS | Ubuntu 衍生版 |
| Kali Linux | Debian 衍生版(安全测试) |
| Parrot OS | Debian 衍生版(安全测试) |
修复文件:
scripts/setup_arm.sh- 添加国产系统识别
一键安装脚本修复:
| 修复项 | 说明 |
|---|---|
| venv 创建失败 | 添加自动回退到 virtualenv 的逻辑 |
| venv 创建检查 | 添加创建成功验证,失败时提示错误 |
| 路径问题 | 修复 Windows 脚本使用脚本目录而非项目目录的问题 |
| apt 依赖 | 修复 python3-venv 包名和浏览器依赖 |
| dnf/yum 依赖 | 修复 python3-virtualenv 和 python3-devel 包名 |
| pacman 依赖 | 修复 python-virtualenv 包名 |
| apk 依赖 | 修复 python3-dev 包名(Alpine 系统) |
| zypper 依赖 | 修复 python3-virtualenv 和 python3-devel 包名 |
新增文件:
一键安装脚本点这里/Windows.cmd- Windows 一键安装脚本一键安装脚本点这里/linuxANDmacos.sh- Linux/macOS 一键安装脚本一键安装脚本点这里/install.py- Python 跨平台安装脚本
初始版本:
- 支持 Windows/macOS/Linux/Docker/青龙面板/ARM 设备
- 自动浏览帖子(热门+最新混合)
- 随机点赞(可配置概率)
- 等级识别和升级进度显示
- Telegram 通知
- CF 5秒盾自动处理
- 429 限流保护
- ARM 无图形界面解决方案(4种方案)
本工具使用 DrissionPage 控制 Chrome 浏览器,模拟真实用户浏览论坛的行为:
flowchart TD
A[1. 启动浏览器] --> B[2. 访问 linux.do]
B --> C[3. 等待 CF 验证]
C --> D{首次登录?}
D -->|是| E[手动登录并保存]
D -->|否| F[复用登录状态]
E --> G[用户数据目录]
F --> G
G --> H[4. 检查登录状态]
H --> I[5. 获取用户信息]
I --> J[等级、升级进度]
I --> K[6. 浏览帖子]
K --> L[滑动、点赞、统计]
J --> M[7. 发送 Telegram 通知]
L --> M
M --> N[8. 关闭浏览器]
| 机制 | 说明 |
|---|---|
| 用户数据目录 | 首次登录后,浏览器的 Cookie、登录状态保存在本地目录,后续运行自动复用 |
| 有头模式 | 默认使用有头浏览器(非无头),CF 验证通过率更高 |
| 随机行为 | 随机选择帖子、随机等待时间、随机点赞,模拟真实用户 |
| 限流保护 | 检测到 429 错误自动暂停 30 分钟,避免被封禁 |
每次执行签到,工具会按以下步骤运行:
- 读取配置文件
config.yaml - 创建/复用用户数据目录
- 启动 Chrome 浏览器
- 打开 https://linux.do
- 等待页面加载完成
- 检测 Cloudflare 5秒盾
- 自动等待验证完成(最长 120 秒)
- 如有 Turnstile 验证框,自动点击
- 检测页面是否已登录
- 已登录:继续执行
- 未登录:尝试用户名密码登录(如已配置)
- 访问 https://connect.linux.do
- 解析用户等级(1级、2级、3级...)
- 解析升级进度(访问天数、点赞、获赞等)
flowchart TD
A[获取帖子列表] --> B[访问 /top 热门帖子]
A --> C[访问 /hot 热门帖子]
A --> D[访问 /latest 最新帖子]
B --> E[合并去重 约80-100篇]
C --> E
D --> E
E --> F[随机打乱顺序]
F --> G[选取前10篇浏览]
G --> H[对每篇帖子]
H --> I[打开帖子页面]
I --> J[滑动到底部 模拟阅读]
J --> K[统计评论数]
K --> L{30%概率}
L -->|是| M[点赞]
L -->|否| N[跳过]
M --> O[随机等待3-8秒]
N --> O
- 汇总执行统计(浏览数、评论数、点赞数)
- 发送 Telegram 通知(如已配置)
- 保存浏览器状态
- 关闭浏览器进程
| 功能 | 说明 | 状态 |
|---|---|---|
| 首次登录 | --first-login 打开有头浏览器,手动登录后保存状态 |
✅ |
| 自动浏览 | 从热门+最新页面获取帖子,随机选择浏览 | ✅ |
| 滑动阅读 | 模拟真实阅读,分段滑动到页面底部 | ✅ |
| 随机点赞 | 30% 概率点赞(可配置) | ✅ |
| 等级识别 | 自动获取用户等级 | ✅ |
| 升级进度 | 2级+ 显示详细进度,1级提示查看 connect 页面 | ✅ |
| CF 5秒盾 | 自动等待 + Turnstile 点击 | ✅ |
| 429 限流 | 检测并暂停 30 分钟 | ✅ |
| CF 403 | 跳转 /challenge 页面处理 | ✅ |
| Telegram | 签到结果推送 | ✅ |
| 平台 | 定时任务方式 | 脚本 | 难度 |
|---|---|---|---|
| Windows | 任务计划程序 | scripts/setup_task.bat |
⭐ 简单 |
| macOS | launchd | scripts/setup_task.sh |
⭐⭐ 中等 |
| Linux | cron | scripts/setup_task_linux.sh |
⭐⭐ 中等 |
| Linux 二进制 | cron | 预编译可执行文件 | ⭐ 简单 |
| Docker | docker-compose | docker-compose.yml |
⭐⭐⭐ 较难 |
| 青龙面板 | 内置调度 | ql_main.py |
⭐⭐⭐ 较难 |
| ARM 设备 | cron / Docker | scripts/setup_arm.sh |
⭐⭐ 中等 |
推荐选择:
- 个人电脑:Windows / macOS 方案
- 服务器:Linux / Docker / 二进制 方案
- 已有青龙面板:青龙方案
- 树莓派/ARM 服务器:ARM 设备方案
- LXC 容器/VPS:二进制方案(最简单)
安装脚本位于 一键安装脚本点这里/ 文件夹中:
| 文件 | 平台 | 说明 |
|---|---|---|
Windows.cmd |
Windows | 双击运行,无需预装 Python |
linuxANDmacos.sh |
Linux/macOS | Bash 脚本,自动安装依赖 |
install.py |
全平台 | Python 脚本,功能最完整 |
:: 方法1:直接双击运行
双击 一键安装脚本点这里\Windows.cmd
:: 方法2:命令行运行
cd E:\linuxdo-checkin\一键安装脚本点这里
Windows.cmd:: 方法1:双击运行(需要 Python 已关联 .py 文件)
双击 一键安装脚本点这里\install.py
:: 方法2:在脚本目录运行
cd E:\linuxdo-checkin\一键安装脚本点这里
python install.py
:: 方法3:在项目根目录运行
cd E:\linuxdo-checkin
python 一键安装脚本点这里\install.py
:: 方法4:使用完整路径运行(任意目录)
python E:\linuxdo-checkin\一键安装脚本点这里\install.py虚拟机用户注意: 如果无法访问 GitHub,需要先配置代理。参考 问题 2.1:Linux 虚拟机无法访问 GitHub
# 进入项目目录
cd ~/linux-do-max
# 赋予执行权限
chmod +x 一键安装脚本点这里/linuxANDmacos.sh
# 运行脚本
./一键安装脚本点这里/linuxANDmacos.sh# 检查 Python 版本
python3 --version
# 如果没有 Python3,先安装:
# Ubuntu/Debian:
sudo apt update && sudo apt install -y python3
# CentOS/RHEL:
sudo yum install -y python3
# Fedora:
sudo dnf install -y python3
# Arch:
sudo pacman -S python
# Alpine:
sudo apk add python3# 方法1:在脚本目录运行
cd ~/linux-do-max/一键安装脚本点这里
python3 install.py
# 方法2:在项目根目录运行
cd ~/linux-do-max
python3 一键安装脚本点这里/install.py
# 方法3:使用完整路径运行(任意目录)
python3 ~/linux-do-max/一键安装脚本点这里/install.py
# 方法4:赋予执行权限后直接运行
chmod +x ~/linux-do-max/一键安装脚本点这里/install.py
~/linux-do-max/一键安装脚本点这里/install.py注意:Linux 系统使用
python3命令,不是python
# 进入项目目录
cd ~/linux-do-max
# 赋予执行权限
chmod +x 一键安装脚本点这里/linuxANDmacos.sh
# 运行脚本
./一键安装脚本点这里/linuxANDmacos.sh# 检查 Python 版本
python3 --version
# 如果没有 Python3,使用 Homebrew 安装:
brew install python3# 方法1:在脚本目录运行
cd ~/linux-do-max/一键安装脚本点这里
python3 install.py
# 方法2:在项目根目录运行
cd ~/linux-do-max
python3 一键安装脚本点这里/install.py
# 方法3:使用完整路径运行(任意目录)
python3 ~/linux-do-max/一键安装脚本点这里/install.py# 检查 Python 版本
python3 --version
# 树莓派/Debian 系统安装 Python:
sudo apt update && sudo apt install -y python3
# 运行安装脚本
cd ~/linux-do-max/一键安装脚本点这里
python3 install.py提示:ARM 设备如果没有图形界面,请参考 ARM 无图形界面解决方案
A: Linux/macOS 系统使用 python3 命令:
python3 install.pyA: 脚本会自动切换目录,如果仍报错,请手动切换:
cd /path/to/linux-do-max
python3 一键安装脚本点这里/install.pyA: 赋予执行权限:
chmod +x install.pyA: 使用 Windows.cmd 脚本,或确保终端使用 UTF-8 编码
脚本会自动:
- 检测操作系统(Windows/Linux/macOS)
- 检测架构(x64/ARM64/ARM32)
- 检测 Linux 发行版(Debian/Ubuntu/CentOS/Fedora/Arch/Alpine/银河麒麟/统信UOS/深度Deepin)
- 检测包管理器(apt/dnf/yum/pacman/apk/brew/zypper)
- 检测是否为树莓派/电视盒子等 ARM 设备
- 检测是否有图形界面
- 安装系统依赖(Chromium、Xvfb、中文字体)
- 创建 Python 虚拟环境并安装依赖
- 交互式配置(用户名、密码、Telegram、浏览设置)
- 设置定时任务(cron/launchd/Windows任务计划)
- 引导首次登录
| 选项 | 功能 |
|---|---|
| 1 | 一键安装(推荐) |
| 2 | 仅安装依赖 |
| 3 | 仅配置 Python 环境 |
| 4 | 编辑配置文件 |
| 5 | 设置定时任务 |
| 6 | 首次登录 |
| 7 | 运行签到 |
| 8 | 查看系统信息 |
| 0 | 退出 |
选择菜单 4. 编辑配置文件 可以交互式修改配置:
当前配置:
1. 用户名: your_username
2. 密码: ********
3. 用户数据目录: ~/.linuxdo-browser
4. 无头模式: false
5. 浏览器路径: /usr/bin/chromium
6. 浏览帖子数: 10
7. 点赞概率: 0.3
8. Telegram Token: 123456:ABC...
9. Telegram Chat ID: 123456789
0. 保存并返回
q. 不保存返回
修改后会自动同步到 config.yaml 配置文件。
环境变量优先级高于配置文件,适用于 Docker 和青龙面板:
| 环境变量 | 配置项 |
|---|---|
| LINUXDO_USERNAME | username |
| LINUXDO_PASSWORD | password |
| USER_DATA_DIR | user_data_dir |
| HEADLESS | headless |
| BROWSER_PATH | browser_path |
| BROWSE_COUNT | browse_count |
| LIKE_PROBABILITY | like_probability |
| TG_BOT_TOKEN | tg_bot_token |
| TG_CHAT_ID | tg_chat_id |
flowchart TD
subgraph 系统检测
A1[操作系统 Linux/macOS/Windows]
A2[架构 x64/ARM64/ARM32]
A3[发行版 Debian/Ubuntu/CentOS/Fedora/Arch/Alpine]
A4[包管理器 apt/dnf/yum/pacman/apk/brew]
A5[ARM设备检测 树莓派/电视盒子]
A6[图形界面检测]
end
subgraph 安装依赖
B1[Chromium / Chrome]
B2[Xvfb Linux无头模式]
B3[中文字体]
end
subgraph Python环境
C1[创建虚拟环境 venv]
C2[升级 pip]
C3[安装 requirements.txt]
end
subgraph 交互式配置
D1[Linux.do 用户名/密码]
D2[浏览帖子数量/点赞概率]
D3[无头模式/浏览器路径]
D4[Telegram 通知配置]
D5[生成 config.yaml]
end
subgraph 定时任务
E1[Linux: cron]
E2[macOS: launchd]
E3[Windows: 任务计划程序]
end
subgraph 首次登录
F1{有图形界面?}
F2[直接运行浏览器]
F3[提示 VNC/X11/方案四]
end
系统检测 --> 安装依赖
安装依赖 --> Python环境
Python环境 --> 交互式配置
交互式配置 --> 定时任务
定时任务 --> 首次登录
F1 -->|是| F2
F1 -->|否| F3
本章节汇总了所有平台的所有安装方式,帮助你快速找到最适合自己的方案。如果你已经熟悉某个方案,也可以直接跳转到对应的 方案详解 章节。
| 平台 | 一键脚本 | Python 脚本 | 二进制安装 | 源码手动 | Docker | 推荐方式 |
|---|---|---|---|---|---|---|
| Windows | ✅ Windows.cmd | ✅ install.py | ✅ exe | ✅ | ❌ | Windows.cmd |
| macOS | ✅ linuxANDmacos.sh | ✅ install.py | ✅ | ✅ | ❌ | linuxANDmacos.sh |
| Linux (x64) | ✅ linuxANDmacos.sh | ✅ install.py | ✅ | ✅ | ✅ | 桌面用 sh / VPS 用二进制 |
| Docker (x86) | ❌ | ❌ | ❌ | ❌ | ✅ | docker-compose |
| 青龙面板 | ❌ | ❌ | ❌ | ✅ 上传脚本 | ❌ | 青龙专用入口 |
| ARM 设备 | ✅ setup_arm.sh | ✅ install.py | ✅ | ✅ | ✅ ARM 版 | setup_arm.sh |
| LXC 容器 | ❌ | ❌ | ✅ | ✅ | ❌ | 二进制安装 |
选择建议:
- 🖥️ 个人电脑(Windows/macOS)→ 一键脚本,最简单
- 🖥️ Linux 桌面 → linuxANDmacos.sh 一键脚本
- ☁️ VPS / 云服务器 → 二进制安装(无需 Python)
- 📦 LXC 容器 → 二进制安装(最轻量)
- 🐳 Docker 环境 → docker-compose 部署
- 🔧 青龙面板 → 上传脚本 + 青龙入口
- 🍓 树莓派 / ARM → setup_arm.sh 安装脚本
适用场景: Windows 个人电脑,无需预装 Python,双击即可运行
前置条件:
- Windows 10/11
- 已安装 Chrome 浏览器
操作步骤:
:: 方法1:直接双击运行
双击 一键安装脚本点这里\Windows.cmd
:: 方法2:命令行运行
cd 项目目录\一键安装脚本点这里
Windows.cmd脚本会自动:下载 Python → 创建虚拟环境 → 安装依赖 → 交互式配置 → 引导首次登录
首次登录:
python main.py --first-login浏览器自动打开 linux.do → 手动登录 → 回到命令行按 Enter
定时任务:
:: 运行定时任务设置脚本
scripts\setup_task.bat
:: 选择 1. 创建定时任务 → 输入执行次数和时间详细说明参考 方案A:Windows 任务计划
适用场景: 已安装 Python,希望使用功能最完整的安装脚本
前置条件:
- Windows 10/11
- Python 3.8+
- 已安装 Chrome 浏览器
操作步骤:
:: 方法1:双击运行
双击 一键安装脚本点这里\install.py
:: 方法2:命令行运行
cd 项目目录\一键安装脚本点这里
python install.py
:: 方法3:在项目根目录运行
cd 项目目录
python 一键安装脚本点这里\install.py脚本提供交互式菜单,包括:安装依赖、配置、首次登录、设置定时任务等。
首次登录: 在菜单中选择 6. 首次登录,或手动运行:
python main.py --first-login定时任务: 在菜单中选择 5. 设置定时任务,按提示输入执行次数和时间。
适用场景: 不想安装 Python,希望单文件运行
前置条件:
- Windows 10/11
- 已安装 Chrome 浏览器
操作步骤:
- 前往 GitHub Releases 下载
linuxdo-checkin-windows-x64.exe - 首次登录:
linuxdo-checkin-windows-x64.exe --first-login- 运行签到:
linuxdo-checkin-windows-x64.exe- 设置定时任务:打开「任务计划程序」手动创建,或使用
scripts\setup_task.bat
适用场景: 开发者或需要自定义修改代码
前置条件:
- Python 3.8+
- Git
- Chrome 浏览器
操作步骤:
:: 1. 克隆项目
git clone https://github.com/xtgm/linux-do-max.git
cd linux-do-max
:: 2. 创建虚拟环境
python -m venv venv
venv\Scripts\activate
:: 3. 安装依赖
pip install -r requirements.txt
:: 4. 首次登录
python main.py --first-login
:: 5. 运行签到
python main.py定时任务:
:: 运行定时任务设置脚本
scripts\setup_task.batWindows 常见问题:
| 问题 | 解决方法 |
|---|---|
| 中文乱码 | 使用 Windows.cmd 脚本,或终端执行 chcp 65001 |
python 命令找不到 |
安装 Python 时勾选「Add to PATH」 |
| Chrome 路径错误 | 在 config.yaml 中指定 browser_path |
| 定时任务不执行 | 确保电脑开机且未锁屏(有头模式需要桌面环境) |
适用场景: macOS 个人电脑,一键完成所有配置
前置条件:
- macOS 10.15+
- 已安装 Chrome 浏览器
操作步骤:
# 进入项目目录
cd ~/linux-do-max
# 赋予执行权限
chmod +x 一键安装脚本点这里/linuxANDmacos.sh
# 运行脚本
./一键安装脚本点这里/linuxANDmacos.sh脚本会自动:检测系统 → 安装 Python(通过 Homebrew)→ 创建虚拟环境 → 安装依赖 → 交互式配置
首次登录:
python3 main.py --first-login定时任务:
chmod +x scripts/setup_task.sh
./scripts/setup_task.sh
# 选择 1. 创建定时任务详细说明参考 方案B:macOS launchd
适用场景: 希望使用功能最完整的安装脚本
前置条件:
- macOS 10.15+
- Python 3.8+(没有可通过 Homebrew 安装:
brew install python3)
操作步骤:
# 检查 Python 版本
python3 --version
# 运行安装脚本
cd ~/linux-do-max/一键安装脚本点这里
python3 install.py脚本提供交互式菜单,包括:安装依赖、配置、首次登录、设置定时任务等。
首次登录: 在菜单中选择 6. 首次登录,或手动运行:
python3 main.py --first-login定时任务: 在菜单中选择 5. 设置定时任务,按提示输入执行次数和时间。
适用场景: 不想安装 Python 环境
前置条件:
- macOS 10.15+
- 已安装 Chrome 浏览器
操作步骤:
# Intel Mac
curl -L -o linuxdo-checkin https://github.com/xtgm/linux-do-max/releases/download/v0.3.2/linuxdo-checkin-macos-x64
# Apple Silicon Mac (M1/M2/M3)
curl -L -o linuxdo-checkin https://github.com/xtgm/linux-do-max/releases/download/v0.3.2/linuxdo-checkin-macos-arm64
# 赋予执行权限
chmod +x linuxdo-checkin
# 首次登录
./linuxdo-checkin --first-login
# 运行签到
./linuxdo-checkin定时任务(launchd):
可以使用 scripts/setup_task.sh 自动创建,或手动创建 plist 文件:
# 自动创建
./scripts/setup_task.sh
# 手动查看任务
launchctl list | grep linuxdo适用场景: 开发者或需要自定义修改代码
前置条件:
- macOS 10.15+
- Python 3.8+(
brew install python3) - Git
- Chrome 浏览器
操作步骤:
# 1. 克隆项目
git clone https://github.com/xtgm/linux-do-max.git
cd linux-do-max
# 2. 创建虚拟环境
python3 -m venv venv
source venv/bin/activate
# 3. 安装依赖
pip install -r requirements.txt
# 4. 首次登录
python3 main.py --first-login
# 5. 运行签到
python3 main.py定时任务:
chmod +x scripts/setup_task.sh
./scripts/setup_task.shmacOS 常见问题:
| 问题 | 解决方法 |
|---|---|
python3 命令找不到 |
brew install python3 |
| 定时任务不执行 | 检查电脑是否休眠,运行 launchctl list | grep linuxdo |
| 二进制文件无法运行 | 系统偏好设置 → 安全性 → 允许运行 |
| 权限不足 | chmod +x 赋予执行权限 |
适用场景: 有图形界面的 Linux 桌面系统
前置条件:
- Linux 系统(Debian/Ubuntu/CentOS/Fedora/Arch/Alpine)
- 有图形界面(用于首次登录)
操作步骤:
# 进入项目目录
cd ~/linux-do-max
# 赋予执行权限
chmod +x 一键安装脚本点这里/linuxANDmacos.sh
# 运行脚本
./一键安装脚本点这里/linuxANDmacos.sh脚本会自动:检测发行版和包管理器 → 安装 Chrome/Chromium → 安装 Xvfb 和中文字体 → 创建 Python 虚拟环境 → 安装依赖 → 交互式配置
首次登录:
python3 main.py --first-login定时任务:
chmod +x scripts/setup_task_linux.sh
./scripts/setup_task_linux.sh
# 选择 1. 创建定时任务 → 输入执行次数和时间虚拟机用户注意: 如果无法访问 GitHub,需要先配置代理。参考 问题 2.1:Linux 虚拟机无法访问 GitHub
适用场景: 需要更完整的安装选项和交互式菜单
前置条件:
- Python 3.8+
安装 Python(如果没有):
# Ubuntu/Debian
sudo apt update && sudo apt install -y python3
# CentOS/RHEL
sudo yum install -y python3
# Fedora
sudo dnf install -y python3
# Arch
sudo pacman -S python
# Alpine
sudo apk add python3运行安装脚本:
cd ~/linux-do-max/一键安装脚本点这里
python3 install.py脚本提供交互式菜单,包括:安装依赖、配置、首次登录、设置定时任务等。
首次登录: 在菜单中选择 6. 首次登录,或手动运行:
python3 main.py --first-login定时任务: 在菜单中选择 5. 设置定时任务,按提示输入执行次数和时间。
注意:Linux 系统使用
python3命令,不是python
适用场景: VPS、云服务器、LXC 容器,无需安装 Python 环境
前置条件:
- Linux x86_64 系统
- Chromium 浏览器
- Xvfb(虚拟显示)
完整操作步骤:
# 1. 安装系统依赖
# Debian/Ubuntu
apt update && apt install -y wget unzip chromium xvfb fonts-wqy-zenhei fonts-wqy-microhei
# CentOS/RHEL
yum install -y wget unzip chromium xorg-x11-server-Xvfb wqy-zenhei-fonts
# Alpine
apk add wget unzip chromium xvfb ttf-wqy-zenhei
# 2. 下载二进制文件
cd /root
wget https://github.com/xtgm/linux-do-max/releases/download/v0.3.2/linuxdo-checkin-linux-x64
chmod +x linuxdo-checkin-linux-x64
# 3. 创建配置文件
cat > /root/config.yaml << 'EOF'
chrome_args:
- "--no-sandbox"
- "--disable-dev-shm-usage"
headless: false
browser_path: "/usr/bin/chromium"
browse_count: 10
like_probability: 0.3
tg_bot_token: ""
tg_chat_id: ""
EOF
# 4. 首次登录(在有图形界面的电脑上完成,然后上传登录数据)
# 参考下方"服务器首次登录方法"
# 5. 测试运行
xvfb-run -a ./linuxdo-checkin-linux-x64
# 6. 设置定时任务
(crontab -l 2>/dev/null; echo "0 8 * * * cd /root && xvfb-run -a ./linuxdo-checkin-linux-x64 >> /root/checkin.log 2>&1") | crontab -
(crontab -l 2>/dev/null; echo "0 20 * * * cd /root && xvfb-run -a ./linuxdo-checkin-linux-x64 >> /root/checkin.log 2>&1") | crontab -服务器首次登录方法:
由于服务器没有图形界面,需要在有图形界面的电脑上完成首次登录,然后将登录数据上传:
# === 在有图形界面的电脑上 ===
git clone https://github.com/xtgm/linux-do-max.git
cd linux-do-max
pip install -r requirements.txt
python main.py --first-login
# 完成登录后打包
tar -czvf linuxdo-browser.tar.gz -C ~ .linuxdo-browser
# === 上传到服务器 ===
scp linuxdo-browser.tar.gz root@你的服务器IP:~/
# === 在服务器上解压 ===
cd /root
tar -xzvf linuxdo-browser.tar.gz
ls -la ~/.linuxdo-browser/详细说明参考 方案G:二进制安装
适用场景: 开发者或需要自定义修改代码
前置条件:
- Python 3.8+
- Git
- Chrome/Chromium 浏览器
- Xvfb(无头服务器需要)
操作步骤:
# 1. 克隆项目
git clone https://github.com/xtgm/linux-do-max.git
cd linux-do-max
# 2. 安装系统依赖
# Debian/Ubuntu
sudo apt update && sudo apt install -y chromium-browser xvfb fonts-wqy-zenhei fonts-wqy-microhei
# CentOS/RHEL
sudo yum install -y chromium xorg-x11-server-Xvfb wqy-zenhei-fonts
# Arch
sudo pacman -S chromium xorg-server-xvfb wqy-zenhei
# 3. 创建虚拟环境
python3 -m venv venv
source venv/bin/activate
# 4. 安装 Python 依赖
pip install -r requirements.txt
# 5. 首次登录(需要图形界面)
python3 main.py --first-login
# 6. 运行签到
python3 main.py
# 7. 设置定时任务
chmod +x scripts/setup_task_linux.sh
./scripts/setup_task_linux.sh详细说明参考 方案C:Linux cron
适用场景: 希望隔离环境、方便迁移
前置条件:
- 已安装 Docker 和 Docker Compose
- 有图形界面支持(首次登录需要,或使用方案四在其他电脑完成)
# 1. 构建镜像
docker-compose build
# 2. 首次登录(需要 X11 转发)
xhost +local:docker
docker-compose run --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix linuxdo-checkin python main.py --first-login
# 3. 运行签到
docker-compose run --rm linuxdo-checkin python main.py
# 4. 后台运行(配合定时任务)
docker-compose up -d定时任务: 使用宿主机 cron 或 ofelia,详见 4.3 定时任务配置
详细说明参考 方案D:Docker 部署
Linux 常见问题:
| 问题 | 解决方法 |
|---|---|
| 浏览器启动失败 | config.yaml 添加 chrome_args: ["--no-sandbox"] |
python 命令找不到 |
使用 python3 |
| Xvfb 未安装 | apt install xvfb 或 yum install xorg-x11-server-Xvfb |
| 虚拟机无法访问 GitHub | 配置代理,参考 问题 2.1 |
| Snap Chromium 不兼容 | 使用 Google Chrome 官方 apt 源安装 |
适用场景: 服务器部署,隔离环境,方便管理
前置条件:
- 已安装 Docker 和 Docker Compose
- 有图形界面支持(首次登录需要,或使用方案四在其他电脑完成)
操作步骤:
# 1. 克隆项目
git clone https://github.com/xtgm/linux-do-max.git
cd linux-do-max
# 2. 配置环境变量(编辑 docker-compose.yml)
# 修改 environment 部分:
# TG_BOT_TOKEN=你的Token
# TG_CHAT_ID=你的ChatID
# 3. 构建镜像
docker-compose build
# 4. 首次登录
# 方式1:X11 转发(Linux 桌面)
xhost +local:docker
docker-compose run --rm \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
linuxdo-checkin python main.py --first-login
# 方式2:在其他电脑完成首次登录后上传数据
# 将 ~/.linuxdo-browser 目录复制到 ./data/browser/
# 5. 运行签到
docker-compose run --rm linuxdo-checkin python main.py适用场景: 不使用 docker-compose,直接用 docker 命令管理
首次登录: 使用方案四在有图形界面的电脑上完成登录,将 ~/.linuxdo-browser 目录复制到 ./data/browser/
# 构建镜像
docker build -t linuxdo-checkin .
# 运行
docker run --rm \
-v $(pwd)/data/browser:/root/.linuxdo-browser \
-v $(pwd)/logs:/app/logs \
-e TG_BOT_TOKEN=你的Token \
-e TG_CHAT_ID=你的ChatID \
linuxdo-checkin python main.py定时任务: 使用宿主机 cron:
crontab -e
# 添加:
0 8 * * * docker run --rm -v /path/to/data/browser:/root/.linuxdo-browser linuxdo-checkin python main.py方式1:使用 ofelia(Docker 原生定时任务)
在 docker-compose.yml 中取消 ofelia 服务的注释:
ofelia:
image: mcuadros/ofelia:latest
depends_on:
- linuxdo-checkin
command: daemon --docker
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
labels:
ofelia.job-run.checkin-am.schedule: "0 0 8 * * *"
ofelia.job-run.checkin-am.container: "linuxdo-checkin"
ofelia.job-run.checkin-pm.schedule: "0 0 20 * * *"
ofelia.job-run.checkin-pm.container: "linuxdo-checkin"方式2:使用宿主机 cron
crontab -e
# 添加:
0 8 * * * docker-compose -f /path/to/docker-compose.yml run --rm linuxdo-checkin python main.py
0 20 * * * docker-compose -f /path/to/docker-compose.yml run --rm linuxdo-checkin python main.py数据持久化:
| 目录 | 说明 |
|---|---|
./data/browser |
浏览器用户数据(登录状态) |
./logs |
运行日志 |
Docker 常见问题:
| 问题 | 解决方法 |
|---|---|
| 首次登录困难 | 使用方案四:在其他电脑完成登录后上传数据 |
| 容器时区不对 | 添加 -e TZ=Asia/Shanghai |
| 浏览器启动失败 | 确保 config.yaml 包含 --no-sandbox |
适用场景: 使用青龙面板官方 Docker 镜像(基于 Alpine Linux)
操作步骤:
# 1. SSH 登录青龙面板所在服务器
# 2. 进入青龙容器安装系统依赖
docker exec -it qinglong sh
apk add xvfb chromium fonts-wqy-zenhei
exit
# 3. 上传项目文件到青龙脚本目录
# 将以下文件上传到 /ql/scripts/linuxdo-checkin/
# core/ main.py ql_main.py config.yaml requirements.txt
# 4. 在青龙面板「依赖管理」→「Python」中添加:
# DrissionPage
# PyYAML
# requests
# 5. 在青龙面板「环境变量」中添加:
# TG_BOT_TOKEN = 你的Token
# TG_CHAT_ID = 你的ChatID
# USER_DATA_DIR = /ql/data/linuxdo-browser
# HEADLESS = false
# 6. 首次登录(需要 VNC 或 X11 转发)
docker exec -it qinglong sh
cd /ql/scripts/linuxdo-checkin
python3 main.py --first-login
# 7. 在青龙面板「定时任务」中添加:
# 名称: LinuxDO签到
# 命令: xvfb-run -a python3 /ql/scripts/linuxdo-checkin/ql_main.py
# 定时规则: 0 8,20 * * *适用场景: 使用 Debian 基础的青龙面板镜像
与 Alpine 的区别主要在系统依赖安装命令:
# 进入容器
docker exec -it qinglong bash
# 安装依赖(Debian 命令)
apt-get update && apt-get install -y xvfb chromium fonts-wqy-zenhei fonts-wqy-microhei其余步骤(上传文件、安装 Python 依赖、配置环境变量、首次登录、添加定时任务)与 5.1 Alpine 基础镜像 完全相同。
环境变量(在青龙面板中配置):
| 变量名 | 值 | 说明 |
|---|---|---|
| TG_BOT_TOKEN | 你的Token | Telegram Bot Token |
| TG_CHAT_ID | 你的ChatID | Telegram Chat ID |
| USER_DATA_DIR | /ql/data/linuxdo-browser | 用户数据目录 |
| HEADLESS | false | 有头模式(CF 验证需要) |
| BROWSER_PATH | /usr/bin/chromium-browser | 浏览器路径(按实际情况填写) |
定时任务格式:
| 字段 | 值 |
|---|---|
| 名称 | LinuxDO签到 |
| 命令 | xvfb-run -a python3 /ql/scripts/linuxdo-checkin/ql_main.py |
| 定时规则 | 0 8,20 * * *(每天 8:00 和 20:00) |
青龙面板常见问题:
| 问题 | 解决方法 |
|---|---|
| DrissionPage 安装失败 | pip3 install DrissionPage -i https://pypi.tuna.tsinghua.edu.cn/simple |
| Xvfb 未安装 | Alpine: apk add xvfb / Debian: apt install xvfb |
| 首次登录困难 | 使用方案四在其他电脑完成登录后上传数据 |
| 命令格式错误 | 确保使用 xvfb-run -a python3 /path/to/ql_main.py |
详细说明参考 方案E:青龙面板
适用场景: 树莓派、Orange Pi 等有图形界面的 ARM 设备
前置条件:
- ARM64 架构(推荐)
- 至少 1GB 内存(推荐 2GB+)
操作步骤:
# 1. 克隆项目
git clone https://github.com/xtgm/linux-do-max.git
cd linux-do-max
# 2. 赋予执行权限
chmod +x scripts/setup_arm.sh
# 3. 运行安装脚本
./scripts/setup_arm.sh
# 选择 1. 完整安装
# 4. 首次登录
./scripts/setup_arm.sh
# 选择 7. 首次登录
# 5. 设置定时任务
./scripts/setup_arm.sh
# 选择 6. 设置定时任务脚本会自动检测系统架构和操作系统,安装 Chromium、Xvfb、中文字体等依赖。
详细说明参考 方案F:ARM 设备部署
适用场景: ARM 设备上的 Debian/Ubuntu 系统,有图形界面
前置条件:
- ARM64 架构
- 有图形界面(用于首次登录)
cd ~/linux-do-max
chmod +x 一键安装脚本点这里/linuxANDmacos.sh
./一键安装脚本点这里/linuxANDmacos.sh脚本会自动检测 ARM 架构并安装对应依赖。首次登录和定时任务在脚本交互菜单中完成。
适用场景: 需要更完整的安装选项和交互式菜单
前置条件:
- Python 3.8+
# 安装 Python(如果没有)
sudo apt update && sudo apt install -y python3
# 运行安装脚本
cd ~/linux-do-max/一键安装脚本点这里
python3 install.py脚本提供交互式菜单,包括:安装依赖、配置、首次登录、设置定时任务等。
适用场景: ARM 服务器、电视盒子等无 Python 环境的设备
# 1. 安装依赖
apt update && apt install -y wget unzip chromium xvfb fonts-wqy-zenhei fonts-wqy-microhei
# 2. 下载 ARM64 版本
cd /root
wget https://github.com/xtgm/linux-do-max/releases/download/v0.3.2/linuxdo-checkin-linux-arm64
chmod +x linuxdo-checkin-linux-arm64
# 3. 创建配置文件
cat > /root/config.yaml << 'EOF'
chrome_args:
- "--no-sandbox"
- "--disable-dev-shm-usage"
headless: false
browser_path: "/usr/bin/chromium-browser"
browse_count: 10
like_probability: 0.3
tg_bot_token: ""
tg_chat_id: ""
EOF
# 4. 上传登录数据(在其他电脑完成首次登录后)
# 参考"无图形界面首次登录"部分
# 5. 测试运行
xvfb-run -a ./linuxdo-checkin-linux-arm64
# 6. 设置定时任务
(crontab -l 2>/dev/null; echo "0 8 * * * cd /root && xvfb-run -a ./linuxdo-checkin-linux-arm64 >> /root/checkin.log 2>&1") | crontab -适用场景: ARM 设备上使用 Docker 隔离环境
前置条件:
- 已安装 Docker 和 Docker Compose
- ARM64 架构
# 1. 使用 ARM 专用 Dockerfile 构建
docker-compose -f docker-compose.arm.yml build
# 2. 首次登录(需要 X11 转发或 VNC)
xhost +local:docker
docker-compose -f docker-compose.arm.yml run --rm \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
linuxdo-checkin python main.py --first-login
# 3. 启动服务
docker-compose -f docker-compose.arm.yml up -d定时任务: 使用宿主机 cron:
crontab -e
# 添加:
0 8 * * * docker-compose -f /path/to/docker-compose.arm.yml run --rm linuxdo-checkin python main.py
0 20 * * * docker-compose -f /path/to/docker-compose.arm.yml run --rm linuxdo-checkin python main.pyARM Docker 内存限制:
docker-compose.arm.yml 已配置内存限制(最大 1GB,保留 512MB)。如需调整:
deploy:
resources:
limits:
memory: 2G
reservations:
memory: 1GARM 设备(电视盒子、无桌面服务器)通常没有图形界面,首次登录需要特殊处理:
| 方案 | 适用场景 | 难度 |
|---|---|---|
| 方案一:VNC 远程桌面 | 有网络连接的 ARM 设备 | 中 |
| 方案二:SSH X11 转发 | 本地有 X Server | 较高 |
| 方案三:连接显示器 | 有 HDMI 接口 | 低 |
| 方案四:其他电脑登录 | 电视盒子/纯 SSH 环境(推荐) | 低 |
方案四(推荐)简要流程:
# 在有图形界面的电脑上完成首次登录
python main.py --first-login
# 打包登录数据
tar -czvf linuxdo-browser.tar.gz -C ~ .linuxdo-browser
# 上传到 ARM 设备
scp linuxdo-browser.tar.gz root@ARM设备IP:~/
# 在 ARM 设备上解压
tar -xzvf linuxdo-browser.tar.gz -C ~/
# 设置无头模式并运行
# config.yaml 中设置 headless: true
xvfb-run -a python3 main.py4种方案的完整说明参考 方案F 无图形界面解决方案
ARM 设备常见问题:
| 问题 | 解决方法 |
|---|---|
| 内存不足 | 增加 swap:编辑 /etc/dphys-swapfile 设置 CONF_SWAPSIZE=2048 |
| Chromium 崩溃 | 减少 browse_count,增加 swap |
| 找不到 Chromium | which chromium-browser 或 which chromium,更新 config.yaml |
| VNC 中文方块 | sudo apt install fonts-wqy-zenhei && fc-cache -fv |
| Docker 构建失败 | 使用 docker-compose -f docker-compose.arm.yml build |
树莓派内存优化:
# 增加 swap
sudo dphys-swapfile swapoff
sudo nano /etc/dphys-swapfile
# 设置 CONF_SWAPSIZE=2048
sudo dphys-swapfile setup
sudo dphys-swapfile swapon适用场景: Proxmox VE 等平台的 LXC 容器,无需安装 Python
前置条件:
- LXC 容器(Debian/Ubuntu/Alpine)
- root 权限
完整操作步骤:
# 1. 安装系统依赖
# Debian/Ubuntu LXC
apt update && apt install -y wget unzip chromium xvfb fonts-wqy-zenhei fonts-wqy-microhei
# Alpine LXC
apk add wget unzip chromium xvfb ttf-wqy-zenhei
# 2. 下载二进制文件
cd /root
wget https://github.com/xtgm/linux-do-max/releases/download/v0.3.2/linuxdo-checkin-linux-x64
chmod +x linuxdo-checkin-linux-x64
# 3. 创建配置文件(LXC 必须添加 --no-sandbox)
cat > /root/config.yaml << 'EOF'
chrome_args:
- "--no-sandbox"
- "--disable-dev-shm-usage"
headless: false
browser_path: "/usr/bin/chromium"
browse_count: 10
like_probability: 0.3
tg_bot_token: ""
tg_chat_id: ""
EOF
# 4. 在有图形界面的电脑上完成首次登录,打包上传登录数据
# (参考上方"服务器首次登录方法")
# 5. 解压登录数据
unzip linuxdo-browser.zip
# 或
tar -xzvf linuxdo-browser.tar.gz
# 6. 测试运行
xvfb-run -a ./linuxdo-checkin-linux-x64
# 7. 设置定时任务
(crontab -l 2>/dev/null; echo "0 8 * * * cd /root && xvfb-run -a ./linuxdo-checkin-linux-x64 >> /root/checkin.log 2>&1") | crontab -
(crontab -l 2>/dev/null; echo "0 20 * * * cd /root && xvfb-run -a ./linuxdo-checkin-linux-x64 >> /root/checkin.log 2>&1") | crontab -适用场景: 需要自定义修改代码
前置条件:
- LXC 容器(Debian/Ubuntu)
- root 权限
首次登录: LXC 容器没有图形界面,需要在有图形界面的电脑上完成首次登录,然后将 ~/.linuxdo-browser 目录打包上传到容器中。
# 1. 安装系统依赖和 Python
apt update && apt install -y python3 python3-pip python3-venv \
chromium xvfb fonts-wqy-zenhei fonts-wqy-microhei git
# 2. 克隆项目
cd /root
git clone https://github.com/xtgm/linux-do-max.git
cd linux-do-max
# 3. 创建虚拟环境
python3 -m venv venv
source venv/bin/activate
# 4. 安装依赖
pip install -r requirements.txt
# 5. 创建配置文件
cat > config.yaml << 'EOF'
chrome_args:
- "--no-sandbox"
- "--disable-dev-shm-usage"
headless: false
browser_path: "/usr/bin/chromium"
browse_count: 10
like_probability: 0.3
tg_bot_token: ""
tg_chat_id: ""
EOF
# 6. 上传登录数据后测试
xvfb-run -a ./venv/bin/python main.py
# 7. 设置定时任务
(crontab -l 2>/dev/null; echo "0 8 * * * cd /root/linux-do-max && xvfb-run -a ./venv/bin/python main.py >> /root/checkin.log 2>&1") | crontab -- 必须添加
--no-sandbox— LXC 容器没有完整的 Linux 内核命名空间,Chrome 的沙箱功能无法正常工作 --disable-dev-shm-usage— LXC 容器的/dev/shm通常较小,此参数避免共享内存不足导致崩溃- Xvfb 必须安装 — LXC 容器没有图形界面,需要虚拟显示
- 首次登录 — 必须在有图形界面的电脑上完成,然后上传登录数据
- 检查
/dev/shm大小 — 如果 Chromium 仍然崩溃:
df -h /dev/shm
# 如果太小,扩大:
sudo mount -o remount,size=512M /dev/shmLXC 常见问题:
| 问题 | 解决方法 |
|---|---|
| 浏览器启动失败 | 确保 config.yaml 包含 --no-sandbox |
| Chromium 崩溃 | 检查 /dev/shm 大小,扩大到 512M |
| cron 不执行 | 检查 cron 服务:service cron status,未启动则 service cron start |
| 找不到 chromium | which chromium,更新 config.yaml 中的 browser_path |
git clone https://github.com/你的用户名/linuxdo-checkin.git
cd linuxdo-checkinLinux 虚拟机用户注意: 如果 git clone 失败,可能需要配置代理。参考 问题 2.1:Linux 虚拟机无法访问 GitHub
pip install -r requirements.txt依赖列表:
DrissionPage>=4.0.0- 浏览器自动化PyYAML>=6.0- 配置文件解析requests>=2.28.0- HTTP 请求(Telegram 通知)
python main.py --first-login操作步骤:
- 浏览器自动打开 linux.do
- 等待 CF 5秒盾验证通过
- 手动点击「登录」按钮
- 输入用户名和密码
- 完成登录后,回到命令行按 Enter 键
- 登录状态已保存,后续运行无需再登录
编辑 config.yaml:
tg_bot_token: "你的Bot Token"
tg_chat_id: "你的Chat ID"python main.py根据你的平台,选择对应的方案(见下方详解)。
适用场景: Windows 个人电脑,希望每天自动执行签到
前置条件:
- Windows 10/11
- 已安装 Python 3.8+
- 已安装 Chrome 浏览器
- 已完成首次登录
步骤 1:打开设置脚本
双击运行 scripts/setup_task.bat
步骤 2:选择操作
========================================
LinuxDO 签到 - Windows 定时任务设置
========================================
请选择操作:
1. 创建定时任务(自定义时间和次数)
2. 删除定时任务
3. 查看定时任务
4. 立即运行签到
5. 首次登录(保存登录状态)
6. 测试 Telegram 提醒
7. 退出
步骤 3:创建定时任务(选择 1)
请输入每天执行的次数(1-4次):
次数: 2
请输入每次执行的时间(24小时制,如 08:00):
第 1 次执行时间(如 08:00): 08:00
[成功] 08:00 - Telegram 提醒
[成功] 08:01 - 自动签到
第 2 次执行时间(如 20:00): 20:00
[成功] 20:00 - Telegram 提醒
[成功] 20:01 - 自动签到
========================================
[成功] 已创建 2 组定时任务
========================================
| 任务名称 | 执行时间 | 功能 |
|---|---|---|
| LinuxDO-Reminder-1 | 08:00 | 发送 Telegram 提醒 |
| LinuxDO-Checkin-1 | 08:01 | 执行签到 |
| LinuxDO-Reminder-2 | 20:00 | 发送 Telegram 提醒 |
| LinuxDO-Checkin-2 | 20:01 | 执行签到 |
- 电脑需要开机 - 任务计划在电脑关机时不会执行
- 不要锁屏 - 有头浏览器需要桌面环境
- 查看任务 - 打开「任务计划程序」可查看和管理任务
- 日志位置 - 无独立日志,输出在命令行窗口
# 查看任务
schtasks /query /fo table | findstr LinuxDO
# 删除单个任务
schtasks /delete /tn "LinuxDO-Checkin-1" /f
# 立即运行任务
schtasks /run /tn "LinuxDO-Checkin-1"适用场景: macOS 个人电脑,希望每天自动执行签到
前置条件:
- macOS 10.15+
- 已安装 Python 3.8+
- 已安装 Chrome 浏览器
- 已完成首次登录
步骤 1:赋予执行权限
chmod +x scripts/setup_task.sh步骤 2:运行设置脚本
./scripts/setup_task.sh步骤 3:选择操作
========================================
LinuxDO 签到 - macOS 定时任务设置
========================================
项目目录: /Users/你的用户名/linuxdo-checkin
Python: /usr/local/bin/python3
请选择操作:
1. 创建定时任务(自定义时间和次数)
2. 删除定时任务
3. 查看任务状态
4. 立即运行签到
5. 首次登录(保存登录状态)
6. 测试 Telegram 提醒
7. 查看日志
8. 退出
步骤 4:创建定时任务(选择 1)
按提示输入执行次数和时间。
~/Library/LaunchAgents/
├── com.linuxdo.reminder.1.plist
├── com.linuxdo.checkin.1.plist
├── com.linuxdo.reminder.2.plist
└── com.linuxdo.checkin.2.plist
项目目录/logs/
├── main.log # 签到日志
├── main.error.log # 错误日志
├── reminder.log # 提醒日志
└── reminder.error.log
- 电脑需要开机 - 休眠状态不会执行
- 允许后台运行 - 系统偏好设置 → 电池 → 取消「电池供电时使显示器进入睡眠」
- 查看任务状态 -
launchctl list | grep linuxdo
# 查看任务状态
launchctl list | grep linuxdo
# 卸载任务
launchctl unload ~/Library/LaunchAgents/com.linuxdo.checkin.1.plist
# 加载任务
launchctl load ~/Library/LaunchAgents/com.linuxdo.checkin.1.plist
# 立即运行
launchctl start com.linuxdo.checkin.1适用场景: Linux 服务器或桌面,希望每天自动执行签到
前置条件:
- Linux(Debian/Ubuntu/CentOS/Arch/Alpine)
- 已安装 Python 3.8+
- 已安装 Chrome/Chromium 浏览器
- 已安装 Xvfb(虚拟显示)
- 已完成首次登录
步骤 1:安装 Xvfb
# Debian/Ubuntu
sudo apt-get install xvfb
# CentOS/RHEL
sudo yum install xorg-x11-server-Xvfb
# Arch
sudo pacman -S xorg-server-xvfb
# Alpine
sudo apk add xvfb或使用脚本自动安装(选项 8)。
步骤 2:首次登录(需要图形界面)
# 方式1:本地桌面环境
python main.py --first-login
# 方式2:VNC 远程桌面
# 先安装 VNC Server,通过 VNC 客户端连接后运行步骤 3:赋予执行权限
chmod +x scripts/setup_task_linux.sh步骤 4:运行设置脚本
./scripts/setup_task_linux.sh步骤 5:创建定时任务(选择 1)
按提示输入执行次数和时间。
# 提醒任务
0 8 * * * /usr/bin/python3 /path/to/reminder.py >> /path/to/logs/reminder.log 2>&1 # LinuxDO-Checkin-Reminder-1
# 签到任务(使用 xvfb-run)
1 8 * * * xvfb-run -a /usr/bin/python3 /path/to/main.py >> /path/to/logs/checkin.log 2>&1 # LinuxDO-Checkin-1
项目目录/logs/
├── checkin.log # 签到日志
└── reminder.log # 提醒日志
- 必须安装 Xvfb - 无头服务器需要虚拟显示
- 首次登录需要图形界面 - 使用 VNC 或本地桌面
- 检查 Python 路径 - 确保 cron 能找到 Python
- 网络代理 - 如果是虚拟机且需要代理访问外网,参考 问题 2.1:Linux 虚拟机无法访问 GitHub
# 查看 cron 任务
crontab -l | grep -i linuxdo
# 编辑 cron 任务
crontab -e
# 删除所有 LinuxDO 任务
crontab -l | grep -v "LinuxDO" | crontab -
# 手动运行(带虚拟显示)
xvfb-run -a python3 main.py适用场景: 服务器部署,希望隔离环境、方便迁移
前置条件:
- 已安装 Docker 和 Docker Compose
- 有图形界面支持(首次登录需要)
步骤 1:构建镜像
docker-compose build步骤 2:首次登录
# 方式1:X11 转发(Linux 桌面)
xhost +local:docker
docker-compose run --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix linuxdo-checkin python main.py --first-login
# 方式2:VNC(服务器)
# 需要额外配置 VNC 服务步骤 3:配置环境变量
编辑 docker-compose.yml:
services:
linuxdo-checkin:
environment:
- TG_BOT_TOKEN=你的Token
- TG_CHAT_ID=你的ChatID
- BROWSE_COUNT=10
- LIKE_PROBABILITY=0.3
- HEADLESS=false步骤 4:运行签到
# 单次运行
docker-compose run --rm linuxdo-checkin python main.py
# 后台运行(配合定时任务)
docker-compose up -d步骤 5:配置定时执行
方式1:使用 ofelia(推荐)
取消 docker-compose.yml 中 ofelia 服务的注释:
ofelia:
image: mcuadros/ofelia:latest
depends_on:
- linuxdo-checkin
command: daemon --docker
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
labels:
ofelia.job-run.checkin-am.schedule: "0 0 8 * * *"
ofelia.job-run.checkin-am.container: "linuxdo-checkin"
ofelia.job-run.checkin-pm.schedule: "0 0 20 * * *"
ofelia.job-run.checkin-pm.container: "linuxdo-checkin"方式2:使用宿主机 cron
crontab -e
# 添加以下内容
0 8 * * * docker-compose -f /path/to/docker-compose.yml run --rm linuxdo-checkin python main.py
0 20 * * * docker-compose -f /path/to/docker-compose.yml run --rm linuxdo-checkin python main.py| 目录 | 说明 |
|---|---|
./data/browser |
浏览器用户数据(登录状态) |
./logs |
运行日志 |
- 首次登录是难点 - 需要图形界面支持
- 数据持久化 - 确保 volumes 配置正确
- 时区设置 - 容器内时区可能与宿主机不同
适用场景: 已有青龙面板,希望统一管理定时任务
前置条件:
- 已部署青龙面板
- 青龙面板所在服务器已安装 Xvfb
- 有图形界面支持(首次登录需要)
步骤 1:上传文件
将项目文件上传到青龙面板的脚本目录:
/ql/scripts/linuxdo-checkin/
├── core/
│ ├── __init__.py
│ ├── browser.py
│ ├── checkin.py
│ ├── config.py
│ └── notify.py
├── main.py
├── ql_main.py
├── config.yaml
└── requirements.txt
步骤 2:安装依赖
在青龙面板的「依赖管理」→「Python」中添加:
DrissionPage
PyYAML
requests
步骤 3:安装 Xvfb
SSH 登录青龙面板所在服务器:
# Debian/Ubuntu
apt-get update && apt-get install -y xvfb
# Alpine(青龙官方镜像)
apk add xvfb步骤 4:配置环境变量
在青龙面板的「环境变量」中添加:
| 变量名 | 值 | 说明 |
|---|---|---|
| TG_BOT_TOKEN | 你的Token | Telegram Bot Token |
| TG_CHAT_ID | 你的ChatID | Telegram Chat ID |
| USER_DATA_DIR | /ql/data/linuxdo-browser | 用户数据目录 |
| HEADLESS | false | 有头模式 |
步骤 5:首次登录
# SSH 登录服务器,进入青龙容器
docker exec -it qinglong bash
# 运行首次登录(需要 VNC 或 X11 转发)
cd /ql/scripts/linuxdo-checkin
python3 main.py --first-login步骤 6:添加定时任务
在青龙面板的「定时任务」中添加:
| 字段 | 值 |
|---|---|
| 名称 | LinuxDO签到 |
| 命令 | xvfb-run -a python3 /ql/scripts/linuxdo-checkin/ql_main.py |
| 定时规则 | 0 8,20 * * * |
- 必须安装 Xvfb - 青龙容器内需要虚拟显示
- 首次登录是难点 - 需要 VNC 或 X11 转发
- 用户数据目录 - 确保路径在容器内可写
- 依赖安装 - 确保 DrissionPage 安装成功
适用场景: 树莓派、Orange Pi、ARM 服务器、Apple Silicon Mac 等 ARM 架构设备
支持设备:
| 设备类型 | 架构 | 支持状态 |
|---|---|---|
| 树莓派 4/5 | ARM64 | ✅ 完全支持 |
| 树莓派 3B+ | ARM64/ARM32 | |
| Orange Pi | ARM64 | ✅ 完全支持 |
| Apple Silicon Mac | ARM64 | ✅ 完全支持 |
| ARM 云服务器 | ARM64 | ✅ 完全支持 |
| 其他 ARM64 设备 | ARM64 | ✅ 完全支持 |
支持的操作系统:
| 系统类型 | 发行版 | 包管理器 |
|---|---|---|
| Debian 系 | Debian, Ubuntu, Raspberry Pi OS | apt |
| 国产系统 | 银河麒麟(Kylin), 统信UOS, 深度Deepin | apt |
| 衍生版 | Linux Mint, Pop!_OS, Elementary OS, Zorin OS | apt |
| Red Hat 系 | Fedora, CentOS, RHEL | dnf/yum |
| Arch 系 | Arch Linux, Manjaro | pacman |
| Alpine | Alpine Linux | apk |
| openSUSE | openSUSE | zypper |
前置条件:
- ARM64 架构(推荐)或 ARM32
- 已安装 Python 3.8+
- 已安装 Chromium 浏览器
- 已安装 Xvfb(虚拟显示)
- 至少 1GB 内存(推荐 2GB+)
步骤 1:赋予执行权限
chmod +x scripts/setup_arm.sh步骤 2:运行安装脚本
./scripts/setup_arm.sh步骤 3:选择「完整安装」
========================================
LinuxDO 签到 - ARM 设备安装脚本
========================================
系统信息:
架构: aarch64
系统: Debian GNU/Linux 12 (bookworm)
设备: Raspberry Pi 4 Model B Rev 1.4
请选择操作:
1. 完整安装(推荐)
2. 仅安装系统依赖
3. 仅安装 Python 依赖
4. 配置 Chromium 路径
5. 测试 Chromium
6. 设置定时任务
7. 首次登录
8. 运行签到
9. 查看系统信息
0. 退出
选择 1 进行完整安装,脚本会自动:
- 检测系统架构和操作系统
- 安装 Chromium、Xvfb、中文字体等依赖
- 创建 Python 虚拟环境并安装依赖
- 配置 Chromium 路径
- 测试 Chromium 是否正常
步骤 4:首次登录
# 需要图形界面(VNC 或本地桌面)
./scripts/setup_arm.sh
# 选择 7. 首次登录步骤 5:设置定时任务
./scripts/setup_arm.sh
# 选择 6. 设置定时任务步骤 1:构建 ARM 镜像
# 使用 ARM 专用 Dockerfile
docker-compose -f docker-compose.arm.yml build步骤 2:首次登录
# 需要 X11 转发或 VNC
xhost +local:docker
docker-compose -f docker-compose.arm.yml run --rm \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
linuxdo-checkin python main.py --first-login步骤 3:启动服务
docker-compose -f docker-compose.arm.yml up -d步骤 1:安装系统依赖
# Debian/Ubuntu/Raspberry Pi OS
sudo apt-get update
sudo apt-get install -y \
python3 python3-pip python3-venv \
chromium-browser chromium-chromedriver \
xvfb \
fonts-wqy-zenhei fonts-wqy-microhei \
libatk1.0-0 libatk-bridge2.0-0 libcups2 \
libdrm2 libxkbcommon0 libxcomposite1 \
libxdamage1 libxfixes3 libxrandr2 \
libgbm1 libasound2步骤 2:安装 Python 依赖
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt步骤 3:配置 Chromium 路径
编辑 config.yaml:
# 树莓派/Debian 通常是这个路径
browser_path: "/usr/bin/chromium-browser"步骤 4:首次登录
# 需要图形界面
source venv/bin/activate
python main.py --first-login步骤 5:设置 cron 定时任务
crontab -e
# 添加以下内容(修改路径)
0 8 * * * cd /home/pi/linuxdo-checkin && xvfb-run -a ./venv/bin/python main.py >> logs/checkin.log 2>&1
0 20 * * * cd /home/pi/linuxdo-checkin && xvfb-run -a ./venv/bin/python main.py >> logs/checkin.log 2>&1树莓派内存优化:
# 增加 swap(如果内存不足)
sudo dphys-swapfile swapoff
sudo nano /etc/dphys-swapfile
# 设置 CONF_SWAPSIZE=2048
sudo dphys-swapfile setup
sudo dphys-swapfile swapon
# 增加 GPU 内存
sudo nano /boot/config.txt
# 添加 gpu_mem=128
sudo rebootDocker 内存限制:
docker-compose.arm.yml 已配置内存限制:
- 最大内存:1GB
- 保留内存:512MB
如需调整,编辑 docker-compose.arm.yml:
deploy:
resources:
limits:
memory: 2G # 增加到 2GB
reservations:
memory: 1G| 文件 | 说明 |
|---|---|
Dockerfile.arm |
ARM64 专用 Dockerfile |
Dockerfile.multi |
多架构 Dockerfile(自动检测) |
docker-compose.arm.yml |
ARM 专用 Docker Compose |
scripts/setup_arm.sh |
ARM 设备安装脚本 |
ARM 设备(如电视盒子、无桌面服务器)通常没有图形界面,首次登录会提示"未检测到图形界面"。以下是 4 种解决方案:
方案一:VNC 远程桌面(推荐)
# 1. 在 ARM 设备上安装 VNC 服务器
# Debian/Ubuntu/Armbian
sudo apt install tigervnc-standalone-server
# 2. 安装中文字体(重要!否则中文显示为方块)
sudo apt install fonts-wqy-zenhei fonts-wqy-microhei
fc-cache -fv # 刷新字体缓存
# 3. 启动 VNC 服务(首次需要设置密码)
vncserver :1
# 4. 用 VNC 客户端连接
# 地址: ARM设备IP:5901
# 推荐客户端: RealVNC Viewer, TigerVNC
# 5. 在 VNC 桌面中运行首次登录
export DISPLAY=:1
./scripts/setup_arm.sh
# 选择 7. 首次登录注意:如果 VNC 中文显示为方块(□□□),说明缺少中文字体,请执行步骤 2 安装字体后重启 VNC。
方案二:SSH X11 转发
# 1. 在本地电脑安装 X Server
# Windows: 安装 VcXsrv 或 Xming
# macOS: 安装 XQuartz (brew install --cask xquartz)
# Linux: 已内置
# 2. SSH 连接时启用 X11 转发
ssh -X user@arm-device
# 3. 设置 DISPLAY 环境变量
export DISPLAY=localhost:10.0
# 4. 运行首次登录
./scripts/setup_arm.sh
# 选择 7. 首次登录方案三:直接连接显示器
将 ARM 设备通过 HDMI 连接到显示器,在本地桌面环境中运行首次登录。
方案四:在其他电脑完成首次登录(最简单)
适用于:电视盒子、无桌面服务器、纯 SSH 环境
# ========== 在有图形界面的电脑上操作 ==========
# 1. 克隆项目
git clone https://github.com/xtgm/linux-do-max.git
cd linux-do-max
# 2. 安装依赖
pip install -r requirements.txt
# 3. 运行首次登录(会打开浏览器)
python main.py --first-login
# 4. 在浏览器中完成登录,等待提示"登录状态已保存"
# ========== 将登录数据复制到 ARM 设备 ==========
# 5. 打包登录数据
# Windows (PowerShell):
Compress-Archive -Path "$env:USERPROFILE\.linuxdo-browser" -DestinationPath linuxdo-browser.zip
# macOS/Linux:
tar -czvf linuxdo-browser.tar.gz -C ~ .linuxdo-browser
# 6. 上传到 ARM 设备
# Windows:
scp linuxdo-browser.zip root@192.168.100.37:~/
# macOS/Linux:
scp linuxdo-browser.tar.gz root@192.168.100.37:~/
# ========== 在 ARM 设备上操作 ==========
# 7. SSH 登录 ARM 设备
ssh root@192.168.100.37
# 8. 解压登录数据
# 如果是 zip:
unzip linuxdo-browser.zip -d ~/
# 如果是 tar.gz:
tar -xzvf linuxdo-browser.tar.gz -C ~/
# 9. 确认数据已就位
ls -la ~/.linuxdo-browser/
# 10. 修改配置为无头模式
cd /path/to/linuxdo-checkin
nano config.yaml
# 设置: headless: true
# 11. 测试签到(无头模式)
xvfb-run -a python3 main.py
# 12. 设置定时任务
./scripts/setup_arm.sh
# 选择 6. 设置定时任务方案四流程图:
flowchart LR
subgraph PC[有图形界面的电脑]
A[安装项目] --> B[首次登录<br/>浏览器]
B --> C[~/.linuxdo-browser/<br/>登录数据]
end
C -->|scp/rsync| D
subgraph ARM[ARM设备 无图形界面]
D[~/.linuxdo-browser/<br/>复制过来的数据] --> E[headless: true]
E --> F[定时签到<br/>xvfb-run]
end
| 设备类型 | 芯片示例 | 支持状态 | 备注 |
|---|---|---|---|
| 树莓派 4/5 | BCM2711/BCM2712 | ✅ 完全支持 | 推荐 2GB+ 内存 |
| 树莓派 3B+ | BCM2837 | 1GB 内存较紧张 | |
| Orange Pi | Allwinner H6/H616 | ✅ 完全支持 | |
| 电视盒子 | Amlogic S905X3/S922X | ✅ 完全支持 | 需用方案四 |
| 玩客云 | Amlogic S805 | 内存可能不足 | |
| Apple Silicon Mac | M1/M2/M3 | ✅ 完全支持 | 有图形界面 |
| ARM 云服务器 | Ampere/Graviton | ✅ 完全支持 | 需用方案四 |
- 推荐 ARM64 - ARM32(armv7)支持有限,建议使用 64 位系统
- 内存要求 - 至少 1GB,推荐 2GB+(Chromium 较占内存)
- 首次登录 - 需要图形界面,无图形界面请使用上述方案四
- 散热 - 树莓派运行 Chromium 会发热,建议加装散热片/风扇
- SD 卡 - 建议使用高速 SD 卡(Class 10 / A1 / A2)
- 电视盒子 - 通常无图形界面,推荐使用方案四
适用场景: Linux 服务器、LXC 容器、VPS,无需安装 Python 环境,开箱即用
优势:
- 无需安装 Python 和依赖
- 单文件部署,简单快捷
- 适合 LXC/Docker 容器环境
- 文件体积小,下载快
支持平台:
| 平台 | 文件名 | 说明 |
|---|---|---|
| Linux x64 | linuxdo-checkin-linux-x64 |
适用于大多数 Linux 服务器、VPS、LXC 容器 |
| Linux ARM64 | linuxdo-checkin-linux-arm64 |
适用于树莓派、ARM 服务器 |
| macOS x64 | linuxdo-checkin-macos-x64 |
适用于 Intel Mac |
| macOS ARM64 | linuxdo-checkin-macos-arm64 |
适用于 Apple Silicon Mac (M1/M2/M3) |
| Windows x64 | linuxdo-checkin-windows-x64.exe |
适用于 Windows 系统 |
前往 GitHub Releases 下载最新版本。
适用于: Debian、Ubuntu、CentOS 等 x86_64 Linux 系统,以及 LXC/Docker 容器
# Debian/Ubuntu
apt update && apt install -y wget unzip chromium xvfb fonts-wqy-zenhei fonts-wqy-microhei
# CentOS/RHEL
yum install -y wget unzip chromium xorg-x11-server-Xvfb wqy-zenhei-fonts
# Alpine
apk add wget unzip chromium xvfb ttf-wqy-zenheicd /root
# 下载最新版本(替换 v0.3.2 为实际版本号)
wget https://github.com/xtgm/linux-do-max/releases/download/v0.3.2/linuxdo-checkin-linux-x64
# 赋予执行权限
chmod +x linuxdo-checkin-linux-x64cat > /root/config.yaml << 'EOF'
# LXC/Docker 容器必须配置
chrome_args:
- "--no-sandbox"
- "--disable-dev-shm-usage"
# 有头模式(必须,CF 验证需要)
headless: false
# 浏览器路径
browser_path: "/usr/bin/chromium"
# 签到配置
browse_count: 10
like_probability: 0.3
# Telegram 通知(可选,留空则不通知)
tg_bot_token: ""
tg_chat_id: ""
EOF注意:LXC/Docker 容器环境必须添加
--no-sandbox参数,否则浏览器无法启动。
由于服务器没有图形界面,首次登录需要在有图形界面的电脑上完成,然后将登录数据上传到服务器。
在 Windows 电脑上:
cd E:\linuxdo-checkin
python main.py --first-login完成登录后,打包上传登录数据:
# PowerShell 打包
Compress-Archive -Path "$env:USERPROFILE\.linuxdo-browser" -DestinationPath linuxdo-browser.zip
# 上传到服务器(替换为你的服务器 IP)
scp linuxdo-browser.zip root@你的服务器IP:~/在 macOS/Linux 电脑上:
# 打包
tar -czvf linuxdo-browser.tar.gz -C ~ .linuxdo-browser
# 上传到服务器
scp linuxdo-browser.tar.gz root@你的服务器IP:~/在服务器上解压:
cd /root
# 如果是 zip 文件
unzip linuxdo-browser.zip
# 如果是 tar.gz 文件
tar -xzvf linuxdo-browser.tar.gz
# 确认数据已就位
ls -la ~/.linuxdo-browser/# 使用 xvfb-run 运行(有头模式 + 虚拟显示)
xvfb-run -a /root/linuxdo-checkin-linux-x64# 编辑 crontab
crontab -e
# 添加以下内容(每天 8:00 和 20:00 执行)
0 8 * * * cd /root && xvfb-run -a ./linuxdo-checkin-linux-x64 >> /root/checkin.log 2>&1
0 20 * * * cd /root && xvfb-run -a ./linuxdo-checkin-linux-x64 >> /root/checkin.log 2>&1或使用一键命令添加:
(crontab -l 2>/dev/null; echo "0 8 * * * cd /root && xvfb-run -a ./linuxdo-checkin-linux-x64 >> /root/checkin.log 2>&1") | crontab -
(crontab -l 2>/dev/null; echo "0 20 * * * cd /root && xvfb-run -a ./linuxdo-checkin-linux-x64 >> /root/checkin.log 2>&1") | crontab -# 1. 安装依赖
apt update && apt install -y wget unzip chromium xvfb fonts-wqy-zenhei fonts-wqy-microhei
# 2. 下载二进制
cd /root
wget https://github.com/xtgm/linux-do-max/releases/download/v0.3.2/linuxdo-checkin-linux-x64
chmod +x linuxdo-checkin-linux-x64
# 3. 创建配置文件
cat > /root/config.yaml << 'EOF'
chrome_args:
- "--no-sandbox"
- "--disable-dev-shm-usage"
headless: false
browser_path: "/usr/bin/chromium"
browse_count: 10
like_probability: 0.3
tg_bot_token: ""
tg_chat_id: ""
EOF
# 4. 上传登录数据后解压(在本地电脑完成首次登录后)
unzip linuxdo-browser.zip
# 5. 测试运行
xvfb-run -a ./linuxdo-checkin-linux-x64
# 6. 设置定时任务
(crontab -l 2>/dev/null; echo "0 8 * * * cd /root && xvfb-run -a ./linuxdo-checkin-linux-x64 >> /root/checkin.log 2>&1") | crontab -
(crontab -l 2>/dev/null; echo "0 20 * * * cd /root && xvfb-run -a ./linuxdo-checkin-linux-x64 >> /root/checkin.log 2>&1") | crontab -适用于: 树莓派、Orange Pi、ARM 云服务器等 ARM64 设备
# 1. 安装依赖
apt update && apt install -y wget unzip chromium xvfb fonts-wqy-zenhei fonts-wqy-microhei
# 2. 下载 ARM64 版本
cd /root
wget https://github.com/xtgm/linux-do-max/releases/download/v0.3.2/linuxdo-checkin-linux-arm64
chmod +x linuxdo-checkin-linux-arm64
# 3. 创建配置文件(同上)
cat > /root/config.yaml << 'EOF'
chrome_args:
- "--no-sandbox"
- "--disable-dev-shm-usage"
headless: false
browser_path: "/usr/bin/chromium-browser"
browse_count: 10
like_probability: 0.3
tg_bot_token: ""
tg_chat_id: ""
EOF
# 4. 上传登录数据后解压
unzip linuxdo-browser.zip
# 5. 测试运行
xvfb-run -a ./linuxdo-checkin-linux-arm64
# 6. 设置定时任务
(crontab -l 2>/dev/null; echo "0 8 * * * cd /root && xvfb-run -a ./linuxdo-checkin-linux-arm64 >> /root/checkin.log 2>&1") | crontab -# 1. 下载对应版本
# Intel Mac
curl -L -o linuxdo-checkin https://github.com/xtgm/linux-do-max/releases/download/v0.3.2/linuxdo-checkin-macos-x64
# Apple Silicon Mac (M1/M2/M3)
curl -L -o linuxdo-checkin https://github.com/xtgm/linux-do-max/releases/download/v0.3.2/linuxdo-checkin-macos-arm64
# 2. 赋予执行权限
chmod +x linuxdo-checkin
# 3. 首次登录
./linuxdo-checkin --first-login
# 4. 运行签到
./linuxdo-checkin:: 1. 下载 linuxdo-checkin-windows-x64.exe
:: 2. 首次登录
linuxdo-checkin-windows-x64.exe --first-login
:: 3. 运行签到
linuxdo-checkin-windows-x64.exeA: 在 config.yaml 中添加:
chrome_args:
- "--no-sandbox"A: 检查浏览器路径:
# 查找 Chromium 路径
which chromium || which chromium-browser
# 更新 config.yaml 中的 browser_pathA: 重新下载最新版本覆盖即可:
cd /root
wget -O linuxdo-checkin-linux-x64 https://github.com/xtgm/linux-do-max/releases/download/v新版本号/linuxdo-checkin-linux-x64
chmod +x linuxdo-checkin-linux-x64A: 运行:
./linuxdo-checkin-linux-x64 --check-update# ========== 账号配置 ==========
# 用户名(可选,首次登录后会保存登录状态)
username: ""
# 密码(可选)
password: ""
# ========== 浏览器配置 ==========
# 用户数据目录(保存登录状态)
# 默认: ~/.linuxdo-browser/
# Windows 示例: C:\Users\你的用户名\.linuxdo-browser
# Linux/macOS 示例: /home/你的用户名/.linuxdo-browser
user_data_dir: ""
# 是否无头模式(默认 false,有头模式)
# 有头模式 CF 验证通过率更高
headless: false
# 浏览器路径(可选,留空使用系统默认)
# Windows 示例: C:\Program Files\Google\Chrome\Application\chrome.exe
# macOS 示例: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
# Linux 示例: /usr/bin/google-chrome
browser_path: ""
# Chrome 额外启动参数(可选)
# LXC/Docker 容器需要添加 --no-sandbox
# 无界面服务器可添加 --headless=new
# 示例:
# chrome_args:
# - "--no-sandbox"
# - "--disable-gpu"
chrome_args: []
# ========== 签到配置 ==========
# 浏览帖子数量(默认 10)
browse_count: 10
# 点赞概率(0-1,0.3 表示 30%)
like_probability: 0.3
# 浏览间隔(秒)
browse_interval_min: 15
browse_interval_max: 30
# ========== Telegram 通知 ==========
# Bot Token(从 @BotFather 获取)
tg_bot_token: ""
# Chat ID(从 @userinfobot 获取)
tg_chat_id: ""| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| username | 字符串 | 空 | Linux.do 用户名(可选) |
| password | 字符串 | 空 | Linux.do 密码(可选) |
| user_data_dir | 字符串 | ~/.linuxdo-browser | 浏览器用户数据目录 |
| headless | 布尔 | false | 是否无头模式 |
| browser_path | 字符串 | 空 | 浏览器可执行文件路径 |
| chrome_args | 列表 | [] | Chrome 额外启动参数 |
| browse_count | 整数 | 10 | 每次浏览帖子数量 |
| like_probability | 浮点 | 0.3 | 点赞概率(0-1) |
| browse_interval_min | 整数 | 15 | 浏览间隔最小秒数 |
| browse_interval_max | 整数 | 30 | 浏览间隔最大秒数 |
| tg_bot_token | 字符串 | 空 | Telegram Bot Token |
| tg_chat_id | 字符串 | 空 | Telegram Chat ID |
环境变量优先级高于 config.yaml,适用于 Docker 和青龙面板:
| 环境变量 | 对应配置 |
|---|---|
| LINUXDO_USERNAME | username |
| LINUXDO_PASSWORD | password |
| USER_DATA_DIR | user_data_dir |
| HEADLESS | headless |
| BROWSER_PATH | browser_path |
| CHROME_ARGS | chrome_args(逗号分隔) |
| BROWSE_COUNT | browse_count |
| LIKE_PROBABILITY | like_probability |
| TG_BOT_TOKEN | tg_bot_token |
| TG_CHAT_ID | tg_chat_id |
- 在 Telegram 中搜索 @BotFather
- 发送
/newbot - 按提示输入机器人名称和用户名
- 获得 Bot Token(格式:
123456789:ABCdefGHIjklMNOpqrsTUVwxyz)
- 在 Telegram 中搜索 @userinfobot
- 发送任意消息
- 获得你的 Chat ID(纯数字)
签到成功:
✅ LINUX DO 签到成功
👤 你的用户名
📊 执行统计
├ 📖 浏览:10 篇
├ 💬 阅读评论:85 条
└ 👍 点赞:3 次
🏆 当前等级:2 级
📈 升级进度 (2→3 级)
├ ✅ 访问天数:50天/50天
├ ⏳ 点赞:15次/30次 (差15次)
├ ✅ 获赞:25次/20次
├ ✅ 回复的话题:10个/10个
├ ✅ 浏览的话题:200个/100个
└ ✅ 已读帖子:500篇/500篇
🎯 完成度 83%
🟩🟩🟩🟩🟩⬜
已完成 5/6 项
签到失败:
❌ LINUX DO 签到失败
👤 未知
📊 执行统计
├ 📖 浏览:0 篇
├ 💬 阅读评论:0 条
└ 👍 点赞:0 次
🏆 当前等级:0 级
A: 首次登录是为了保存浏览器的登录状态(Cookie)。
- Linux.do 使用 Cloudflare 保护,需要通过 CF 验证
- CF 验证后的状态保存在浏览器的用户数据目录中
- 首次登录时手动完成验证和登录,后续运行自动复用
A: 尝试以下方法:
- 确保使用有头模式(
headless: false) - 重新运行首次登录(
python main.py --first-login) - 手动通过 CF 验证后再按 Enter
- 检查网络环境,某些 IP 可能被 CF 拦截
A: 登录状态可能已过期:
- 删除用户数据目录(默认
~/.linuxdo-browser) - 重新运行首次登录
- 确保登录成功后再按 Enter
A: 429 表示请求过于频繁,被服务器限流。
- 工具会自动暂停 30 分钟
- 建议减少每天执行次数(1-2 次即可)
- 不要同时运行多个签到实例
A: 需要图形界面支持:
| 环境 | 方法 |
|---|---|
| 本地 Linux 桌面 | 直接运行 python main.py --first-login |
| 远程 VPS | 安装 VNC Server,通过 VNC 客户端连接后运行 |
| Docker | 使用 X11 转发或 VNC |
A: 常见问题:
- 未安装 Xvfb - 运行
apk add xvfb(Alpine)或apt install xvfb(Debian) - 依赖未安装 - 在依赖管理中添加 DrissionPage、PyYAML、requests
- 命令格式错误 - 确保使用
xvfb-run -a python3 /path/to/ql_main.py
A: 缺少中文字体,在 ARM 设备上安装:
# Debian/Ubuntu/Armbian
sudo apt install fonts-wqy-zenhei fonts-wqy-microhei
fc-cache -fv # 刷新字体缓存
# 重启 VNC 服务
vncserver -kill :1
vncserver :1A: VMware/VirtualBox 中的 Linux 虚拟机需要配置代理才能访问 GitHub:
- 获取宿主机 IP:
ip route | grep default
# 输出示例: default via 192.168.252.1 dev ens33- 配置 git 代理:
git config --global http.proxy http://192.168.252.1:10808
git config --global https.proxy http://192.168.252.1:10808- 宿主机代理软件需开启"允许局域网连接"
详细配置参考 问题 2.1:Linux 虚拟机无法访问 GitHub
A: 检查以下几点:
- 电脑是否休眠 - 休眠状态不会执行
- 任务是否加载 - 运行
launchctl list | grep linuxdo - 查看错误日志 -
cat logs/main.error.log
A: 编辑 config.yaml:
browse_count: 20 # 改为 20 篇或设置环境变量:
export BROWSE_COUNT=20A: 将点赞概率设为 0:
like_probability: 0 # 不点赞A: 目前不支持。如需多账号,可以:
- 复制项目到不同目录
- 每个目录配置不同的
user_data_dir - 分别运行首次登录和定时任务
A: 支持。使用方案F(ARM 设备部署):
- 运行
./scripts/setup_arm.sh安装脚本 - 选择「完整安装」自动配置环境
- 或使用
docker-compose.arm.yml部署 Docker
注意事项:
- 推荐 ARM64 架构(64位系统)
- 至少 1GB 内存,推荐 2GB+
- 树莓派建议加装散热片
A: 常见原因和解决方法:
- 缺少依赖库 - 运行
./scripts/setup_arm.sh选择「仅安装系统依赖」 - 内存不足 - 增加 swap 或减少
browse_count - 路径错误 - 检查
config.yaml中的browser_path
# 查找 Chromium 路径
which chromium-browser || which chromium
# 测试 Chromium
xvfb-run -a chromium-browser --versionA: 使用 git checkout 切换到指定版本:
# 查看所有可用版本
git tag -l
# 回退到指定版本(例如 v0.3.8)
git checkout v0.3.8
# 回退后测试
python main.py --first-login
# 如果需要回到最新版本
git checkout main
git pull可用版本列表:
| 版本 | 说明 |
|---|---|
| v0.4.0 | 全平台浏览器支持重构 |
| v0.3.8 | Ubuntu 浏览器安装优化 |
| v0.3.7 | 定时任务兼容 |
| v0.3.6 | 智能检测 Python 环境 |
| v0.3.5 | 更新检查修复 |
| v0.3.4 | 更新功能完善 |
| v0.3.1 | Linux glibc 兼容性修复 |
| v0.3.0 | Linux/ARM 浏览器启动修复 |
| v0.2.0 | GitHub Actions 自动打包 |
二进制版本回退:
从 Releases 页面下载指定版本的预编译二进制文件。
错误信息:
❌ 浏览器启动失败:
浏览器连接失败。
地址: 127.0.0.1:9222
提示:
1、用户文件夹没有和已打开的浏览器冲突
2、如为无界面系统,请添加'--headless=new'启动参数
3、如果是Linux系统,尝试添加'--no-sandbox'启动参数
原因: Linux 系统(包括有图形界面的桌面环境)运行 Chromium 通常需要额外的启动参数。
解决方法:
v0.3.2+ 版本已自动修复此问题,程序会自动检测 Linux 系统并添加必要参数。 如果仍然遇到问题,请尝试以下方法:
方法1:更新到最新版本(推荐)
git pull origin main方法2:手动修改配置文件
编辑 config.yaml,添加:
chrome_args:
- "--no-sandbox"
- "--disable-dev-shm-usage"
- "--disable-gpu"方法3:重新运行安装脚本
安装脚本会自动检测 Linux 系统并配置:
# Linux/macOS
./一键安装脚本点这里/linuxANDmacos.sh
# 或使用 Python 脚本
python3 一键安装脚本点这里/install.py方法4:检查浏览器是否正确安装
# Ubuntu/Debian
sudo apt install chromium-browser
# Fedora/RHEL
sudo dnf install chromium
# Arch
sudo pacman -S chromium
# 验证安装
which chromium-browser || which chromium || which google-chrome原因: 容器环境中 Chrome 必须使用 --no-sandbox 参数。
解决方法: 同上,v0.3.2+ 版本已自动处理。
原因: ARM 设备(树莓派、ARM 服务器等)可能需要额外配置。
解决方法:
- 确保安装了 ARM 版本的 Chromium:
# Raspberry Pi OS / Debian ARM
sudo apt install chromium-browser
# 验证
chromium-browser --version- 如果仍然失败,检查
/dev/shm大小:
df -h /dev/shm
# 如果太小,可以扩大:
sudo mount -o remount,size=512M /dev/shm错误信息:
[浏览器] 访问失败: 超时
解决方法:
- 检查网络连接
- 检查是否能正常访问 linux.do
- 尝试使用代理
现象: VMware/VirtualBox 中的 Linux 虚拟机无法 git clone 或访问 GitHub
原因: 虚拟机需要配置宿主机代理才能访问外网
解决方法:
- 宿主机运行代理软件(v2rayN/Clash 等),开启"允许局域网连接"
- 获取宿主机 IP(通常是
192.168.x.1)
# 在 Linux 虚拟机中查看网关 IP
ip route | grep default
# 输出示例: default via 192.168.252.1 dev ens33
# 192.168.252.1 就是宿主机 IP临时生效:
export http_proxy="http://192.168.252.1:10808"
export https_proxy="http://192.168.252.1:10808"永久生效:
echo 'export http_proxy="http://192.168.252.1:10808"' >> ~/.bashrc
echo 'export https_proxy="http://192.168.252.1:10808"' >> ~/.bashrc
source ~/.bashrcgit config --global http.proxy http://192.168.252.1:10808
git config --global https.proxy http://192.168.252.1:10808取消代理:
git config --global --unset http.proxy
git config --global --unset https.proxysudo nano /etc/apt/apt.conf.d/proxy.conf添加内容:
Acquire::http::Proxy "http://192.168.252.1:10808/";
Acquire::https::Proxy "http://192.168.252.1:10808/";
Settings → Network → Network Proxy → Manual
- HTTP 代理:
192.168.252.1端口10808 - HTTPS 代理:
192.168.252.1端口10808 - Socks 主机:
192.168.252.1端口10808
连接被拒绝:
- 检查宿主机代理软件是否开启"允许局域网连接"
- 检查 Windows 防火墙入站规则,添加代理端口(如 10808)
- 确认 IP 地址正确(
ip route | grep default)
v2rayN 配置局域网:
- 编辑
guiConfigs/guiNConfig.json - 在
Inbound中添加"Listen": "0.0.0.0" - 重启 v2rayN
现象: CF 验证一直不通过,循环等待
解决方法:
- 删除用户数据目录,重新首次登录
- 更换网络环境(某些 IP 被 CF 标记)
- 使用有头模式
错误信息:
[通知] Telegram 发送失败: ...
解决方法:
- 检查 Bot Token 是否正确
- 检查 Chat ID 是否正确
- 确保已与 Bot 对话(发送过 /start)
- 检查网络是否能访问 Telegram API
# 测试 Telegram API
curl https://api.telegram.org/bot你的Token/getMe错误信息:
ERROR: Could not find a version that satisfies the requirement DrissionPage
解决方法:
# 进入青龙容器
docker exec -it qinglong bash
# 手动安装
pip3 install DrissionPage -i https://pypi.tuna.tsinghua.edu.cn/simple错误信息:
Xvfb: command not found
解决方法:
# Debian/Ubuntu
apt-get update && apt-get install -y xvfb
# Alpine
apk add xvfb
# CentOS
yum install -y xorg-x11-server-Xvfb错误信息:
Permission denied: '/root/.linuxdo-browser'
解决方法:
# 创建目录并设置权限
mkdir -p ~/.linuxdo-browser
chmod 755 ~/.linuxdo-browser错误信息:
[浏览器] 启动失败: Chromium crashed
解决方法:
- 增加 swap(树莓派):
sudo dphys-swapfile swapoff
sudo nano /etc/dphys-swapfile
# 设置 CONF_SWAPSIZE=2048
sudo dphys-swapfile setup
sudo dphys-swapfile swapon- 减少浏览数量:
browse_count: 5 # 减少到 5 篇- 使用 Docker 内存限制:
docker-compose -f docker-compose.arm.yml up -d
# 已配置最大 1GB 内存错误信息:
ERROR: no matching manifest for linux/arm64/v8
解决方法:
使用 ARM 专用配置:
# 使用 ARM 专用 Dockerfile
docker-compose -f docker-compose.arm.yml build
# 或使用多架构 Dockerfile
docker build -f Dockerfile.multi -t linuxdo-checkin .错误信息:
FileNotFoundError: [Errno 2] No such file or directory: 'chromium'
解决方法:
- 查找 Chromium 路径:
which chromium-browser || which chromium || find /usr -name "chromium*" -type f 2>/dev/null- 更新配置:
# config.yaml
browser_path: "/usr/bin/chromium-browser" # 或实际路径- 重新安装:
# Debian/Ubuntu/Raspberry Pi OS
sudo apt-get install -y chromium-browserlinuxdo-checkin/
├── core/ # 核心代码
│ ├── __init__.py # 模块初始化
│ ├── browser.py # 浏览器控制(启动、关闭、CF验证)
│ ├── checkin.py # 签到逻辑(浏览、点赞、统计)
│ ├── config.py # 配置管理(YAML + 环境变量)
│ └── notify.py # Telegram 通知
├── scripts/ # 定时任务脚本
│ ├── setup_task.bat # Windows 任务计划
│ ├── setup_task.sh # macOS launchd
│ ├── setup_task_linux.sh # Linux cron
│ └── setup_arm.sh # ARM 设备安装脚本
├── main.py # 主入口(支持 --first-login)
├── ql_main.py # 青龙面板入口
├── reminder.py # Telegram 提醒脚本
├── config.yaml # 配置文件
├── .env.example # 环境变量示例
├── requirements.txt # Python 依赖
├── Dockerfile # Docker 镜像(x86_64)
├── Dockerfile.arm # Docker 镜像(ARM64 专用)
├── Dockerfile.multi # Docker 镜像(多架构自动检测)
├── docker-compose.yml # Docker Compose(x86_64)
├── docker-compose.arm.yml # Docker Compose(ARM 专用)
├── docker-entrypoint.sh # Docker 入口脚本
└── README.md # 项目说明
本工具仅供学习交流使用,请勿用于违反网站服务条款的行为。使用本工具产生的任何后果由使用者自行承担。