|
1 week ago | |
---|---|---|
config | 2 weeks ago | |
go-speed-test | 1 week ago | |
public | 1 week ago | |
src | 1 week ago | |
.gitignore | 2 weeks ago | |
BOT_USAGE.md | 1 week ago | |
PING_REFACTOR.md | 1 week ago | |
README.md | 2 weeks ago | |
debug.js | 1 week ago | |
env.example | 1 week ago | |
package-lock.json | 1 week ago | |
package.json | 1 week ago | |
start.js | 2 weeks ago | |
test-comprehensive.js | 1 week ago | |
test-fixes.js | 1 week ago |
一个基于Node.js的Clash节点测速工具,支持定时监控、Telegram通知和自动订阅更新。
npm install
复制 env.example
为 .env
并修改配置:
cp env.example .env
# 数据库配置
DB_HOST=localhost
DB_PORT=3306
DB_NAME=clash_speed_test
DB_USER=root
DB_PASSWORD=your_password
# Telegram机器人配置
TELEGRAM_BOT_TOKEN=7804040067:AAFeV7WeCWHUJTJzLUnN83C0Wid0pGSj6NQ
TELEGRAM_CHAT_ID=your_chat_id
# 应用配置
PORT=3000
NODE_ENV=development
# Clash配置
CLASH_CONFIG_PATH=./config/clash_config.yaml
CLASH_API_URL=http://127.0.0.1:9090
CLASH_SUBSCRIPTION_URL=http://so.xfxssr.me/api/v1/client/subscribe?token=7854d59f38ac51700730b9e782c5160c
# 测速配置
SPEED_TEST_INTERVAL=15
SPEED_TEST_TIMEOUT=10000
SPEED_TEST_URLS=https://www.google.com,https://www.youtube.com,https://www.github.com
# 通知配置
NOTIFICATION_FAILURE_THRESHOLD=3
NOTIFICATION_RECOVERY_THRESHOLD=2
CREATE DATABASE clash_speed_test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
npm run migrate
# 开发模式
npm run dev
# 生产模式
npm start
@BotFather
/newbot
创建新机器人快速获取Chat ID:
npm run get-chat-id
测试机器人功能:
npm run test-telegram
启动应用后,在浏览器中访问 http://localhost:3000
即可使用Web界面进行:
speed-test/
├── src/
│ ├── api/ # API路由
│ ├── config/ # 配置文件
│ ├── core/ # 核心功能
│ ├── database/ # 数据库相关
│ ├── models/ # 数据模型
│ └── utils/ # 工具函数
├── logs/ # 日志文件
├── config/ # 配置文件目录
├── package.json
├── env.example
└── README.md
SPEED_TEST_INTERVAL
: 测速间隔(分钟)SPEED_TEST_TIMEOUT
: 测试超时时间(毫秒)SPEED_TEST_URLS
: 测试目标网站(逗号分隔)NOTIFICATION_FAILURE_THRESHOLD
: 故障通知阈值NOTIFICATION_RECOVERY_THRESHOLD
: 恢复通知阈值CLASH_SUBSCRIPTION_URL
: Clash订阅地址SUBSCRIPTION_UPDATE_INTERVAL
: 订阅更新间隔(毫秒)FROM node:16-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
npm install -g pm2
pm2 start src/app.js --name clash-speed-test
pm2 save
pm2 startup
# 查看应用日志
tail -f logs/combined.log
# 查看错误日志
tail -f logs/error.log
系统会自动清理:
数据库连接失败
Telegram通知失败
节点测试失败
NODE_ENV=development npm run dev
欢迎提交Issue和Pull Request!
MIT License