核心特性
|
多源聚合抓取 从多个高质量公共渠道自动提取免费订阅信息。 |
自动化运维 支持定时更新机制,确保持续维护节点数据的时效性。 |
|
智能去重过滤 内置指纹识别逻辑,自动剔除重复的链接,保持订阅纯净。 |
全协议兼容 全面支持 Clash, V2ray, SS, SSR, Trojan, Sing-Box 等。 |
要求
- Node.js: 18.0.0 或更高版本
快速开始
本地部署
静态模式 (无依赖)
直接通过浏览器打开 public/index.html 即可查看静态快照数据。
2完整模式 (支持实时抓取)
# 克隆仓库
git clone https://github.com/Re0XIAOPA/AutoScrapeFreeNodes.git
安装必要依赖
npm install
启动服务端应用
npm start
配置指南
项目核心配置文件位于根目录 config.json。
抓取站点 (sites)
| 字段 | 类型 | 说明 |
|------|------|------|
| url | String | 需要爬取的网页 URL |
| enabled | Boolean | 是否启用该抓取任务 |
| description | String | 站点用途备注 |
添加自定义订阅
通过修改根目录的 config.json 文件,可以轻松添加需要抓取的网站和您自己的自定义订阅:
抓取的配置格式:
"sites": [
{
"url": "https://example.com/clash",
"enabled": true,
"description": "免费节点订阅站点1"
},
{
"url": "https://example.com/v2ray",
"enabled": true,
"description": "免费节点订阅站点2"
}
]
自定义配置文件格式:
"subscriptions": [
{
"type": "Clash",
"name": "我的Clash订阅",
"url": "https://example.com/clash",
"description": "自定义Clash订阅"
},
{
"type": "V2ray",
"name": "我的V2ray订阅",
"url": "https://example.com/v2ray",
"description": "自定义V2ray订阅"
}
]
每个订阅项需要包含以下字段:
type: 订阅类型,可以是以下值之一:Clash,V2ray,SS,SSR,Trojan,Sing-Box,Shadowrocket,Quantumult或通用name: 订阅名称url: 订阅链接description: 订阅描述(可选)
抓取的网站
本工具会自动抓取以下网站的免费节点:
https://clashnode.github.io/free-nodes/ https://clash-meta.github.io/free-nodes/ https://www.airportnode.com/category-1.html
Docker 部署
Docker 模式运行的是完整应用:Express 同时托管前端页面(public/)、提供实时抓取 API(/api/*),并按 config.json 的 updateInterval 定时刷新数据。抓取结果持久化在挂载的 ./data 卷中。
方式一:Docker Compose(推荐)
docker compose up -d
- 访问
http://localhost:3000 - 数据目录
./data已挂载为卷,重启 / 更新不丢数据 - 容器配置了健康检查(
/)与init信号处理,异常会自动按restart: unless-stopped重启
方式二:Docker 命令
docker build -t autoscrape-free-nodes .
docker run -d -p 3000:3000 -v $(pwd)/data:/app/data --name autoscrape autoscrape-free-nodes
更新镜像
代码变动后需重新构建(镜像不会自动拉取最新代码):
git pull
docker compose build
docker compose up -d
用域名访问(如 asfn.awafuns.cn)
镜像只暴露容器端口 3000,前面用 Nginx / Caddy 反代即可。Nginx 示例:
server {
listen 80;
server_name asfn.awafuns.cn;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
说明:Docker 部署 = 动态全量应用(含实时 API 与定时抓取);gh-pages 分支 = 静态快照,方便分发到 GitHub Pages / Netlify / Vercel 等任意静态平台。两者可并存,按需选用。
- 本项目仅作为技术交流与学术研究使用。
- 所有节点数据均来源于第三方互联网公开页面,工具本身不存储、不分发任何服务器资源。
- 使用者应自行判断节点安全性,并严格遵守当地相关法律法规。
- 作者不对因使用本工具导致的任何形式的损失或法律纠纷负责。