velvet-rnd/abuse-geodata

GitHub: velvet-rnd/abuse-geodata

每日自动聚合公开威胁情报源并生成 Xray、sing-box、ipset 可直接使用的多格式规则集,帮助运维人员快速拦截恶意流量并减少滥用投诉。

Stars: 6 | Forks: 0

# abuse-geodata **[English](#english) | [Русский](#russian) | [中文](#chinese)** ## English Automated threat intelligence geodata for **Xray**, **sing-box**, and **ipset**. Built daily from public abuse feeds. Designed for VPN operators, hosting providers, and network administrators to protect infrastructure and reduce abuse complaints. ### 下载 All files are published as [GitHub Releases](../../releases/latest). | File | Format | Use case | |:-----|:-------|:---------| | `abuse-geoip.dat` | Xray/V2Ray | `ext:abuse-geoip.dat:category-*` rules | | `abuse-geosite.dat` | Xray/V2Ray | `ext:abuse-geosite.dat:category-*` rules | | `abuse-geoip.db` | MaxMind MMDB | sing-box geoip rules | | `abuse-category-*.srs` | sing-box | Per-category rule-sets | | `abuse-category-bundle-strict-*.srs` | sing-box | Stable categories only | | `abuse-category-bundle-full-*.srs` | sing-box | All categories | | `abuse-category-*.txt` | Plain text | ipset, hosts, scripts | ### 用法 #### Xray ``` { "routing": { "rules": [ { "type": "field", "ip": [ "ext:abuse-geoip.dat:category-sinkhole", "ext:abuse-geoip.dat:category-malware-c2", "ext:abuse-geoip.dat:category-spam", "ext:abuse-geoip.dat:category-brute-force" ], "outboundTag": "block" }, { "type": "field", "domain": [ "ext:abuse-geosite.dat:category-malware-c2", "ext:abuse-geosite.dat:category-phishing" ], "outboundTag": "block" } ] }, "outbounds": [ { "tag": "block", "protocol": "blackhole" } ] } ``` Place `abuse-geoip.dat` and `abuse-geosite.dat` in your Xray assets directory (default: `/usr/local/share/xray/`). #### Remnawave/Remnanode (Docker) 1. Create the assets directory and download the files: ``` mkdir -p /opt/remnanode/xray/share curl -sLo /opt/remnanode/xray/share/abuse-geoip.dat \ https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-geoip.dat curl -sLo /opt/remnanode/xray/share/abuse-geosite.dat \ https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-geosite.dat ``` 2. Mount the files in `docker-compose.yml` (remnanode service): ``` volumes: - /opt/remnanode/xray/share/abuse-geoip.dat:/usr/local/bin/abuse-geoip.dat:ro - /opt/remnanode/xray/share/abuse-geosite.dat:/usr/local/bin/abuse-geosite.dat:ro ``` 3. Add routing rules in Xray config (via Remnawave panel or config file): ``` { "routing": { "rules": [ { "type": "field", "ip": [ "ext:abuse-geoip.dat:category-sinkhole", "ext:abuse-geoip.dat:category-malware-c2", "ext:abuse-geoip.dat:category-spam", "ext:abuse-geoip.dat:category-brute-force" ], "outboundTag": "block" }, { "type": "field", "domain": [ "ext:abuse-geosite.dat:category-malware-c2", "ext:abuse-geosite.dat:category-phishing" ], "outboundTag": "block" } ] } } ``` 4. Auto-update (optional) — add to crontab: ``` 0 4 * * * curl -sLo /opt/remnanode/xray/share/abuse-geoip.dat https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-geoip.dat && curl -sLo /opt/remnanode/xray/share/abuse-geosite.dat https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-geosite.dat && docker restart remnanode ``` #### sing-box ``` { "route": { "rule_set": [ { "tag": "malware-c2-ip", "type": "remote", "format": "binary", "url": "https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-category-malware-c2-ip.srs", "update_interval": "24h" } ], "rules": [ { "rule_set": [ "malware-c2-ip", "malware-c2-domain", "sinkhole", "phishing" ], "outbound": "block" } ] } } ``` #### ipset (Linux) ``` ipset create abuse-block hash:net curl -sL https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-category-bundle-strict-ip.txt \ | grep -v '^#' | xargs -I{} ipset add abuse-block {} iptables -I FORWARD -m set --match-set abuse-block dst -j DROP ``` ### 分类 | Category | Type | Description | Flags | |:---------|:-----|:------------|:------| | `category-sinkhole` | IP | Known sinkhole IPs operated by security researchers | – | | `category-sinkhole-domain` | Domain | Sinkhole domains seized by CERT.PL | large | | `category-malware-c2` | IP + Domain | Malware C2 servers (botnets, ransomware, trojans) | – | | `category-phishing` | Domain | Phishing domains | volatile | | `category-spam` | IP | Spamhaus DROP/EDROP – hijacked IP blocks | – | | `category-tor-exit` | IP | Tor exit nodes | controversial | | `category-brute-force` | IP | IPs conducting brute-force attacks | volatile | | `category-torrent` | Domain | Torrent sites and piracy resources (legal excluded) | controversial, large | | `category-torrent-legal` | Domain | Legitimate torrent services (Linux distros, archives, FOSS) | – | | `category-torrent-announce` | IP + Domain | BitTorrent tracker announce servers | controversial | | `category-threatview` | Domain | Threatview.io aggregated malware/phishing domains | large | | `category-dga` | Domain | DGA-generated malware domains | high FP, large | #### 标记图例 | Flag | Meaning | |:-----|:--------| | `high_false_positive` | Legitimate traffic may be blocked. Review before deploying. | | `high_volatility` | List changes rapidly. IPs may be reassigned to legitimate users. | | `controversial` | Blocking has valid counter-arguments depending on use case. | | `large_dataset` | Large number of entries. May affect routing performance. | #### 捆绑包 - **`category-bundle-strict-*`** – only categories with no `high_false_positive` or `large_dataset` flags. Safe for most deployments. - **`category-bundle-full-*`** – all categories. Includes DGA and other noisy sets. ### 来源 | Source | URL | |:-------|:----| | Feodo Tracker (abuse.ch) | https://feodotracker.abuse.ch | | URLhaus (abuse.ch) | https://urlhaus.abuse.ch | | ThreatFox full export (abuse.ch) | https://threatfox.abuse.ch | | Emerging Threats | https://rules.emergingthreats.net | | C2IntelFeeds | https://github.com/drb-ra/C2IntelFeeds | | Threatview.io | https://threatview.io | | Disconnect.me | https://disconnect.me | | CyberHost Malware | https://cyberhost.uk | | ShadowWhisperer | https://github.com/ShadowWhisperer/BlockLists | | Spamhaus DROP/EDROP | https://www.spamhaus.org/drop/ | | Tor Project | https://check.torproject.org/torbulkexitlist | | blocklist.de | https://www.blocklist.de | | OpenPhish | https://openphish.com | | brakmic/Sinkholes | https://github.com/brakmic/Sinkholes | | CERT.PL Sinkhole | https://hole.cert.pl | | Bambenek DGA feed | https://bambenekconsulting.com | | blocklistproject Torrent | https://github.com/blocklistproject/Lists | | hagezi Anti-Piracy | https://github.com/hagezi/dns-blocklists | | ngosang Trackers | https://github.com/ngosang/trackerslist | ### 测试 Each build runs `scripts/test.py` to validate all output files: - `.dat` files exist and have minimum expected size - `.db` (MMDB) has valid MaxMind metadata structure - `.srs` files decompile successfully with sing-box - `.txt` files contain only valid IPs/domains - Every source category has corresponding output files - txt/srs entry counts are consistent ``` # 测试当前构建输出 python scripts/test.py # 在其他目录中测试已下载的发布版本 python scripts/test.py /path/to/release-dir ``` The release directory should have the same structure: `output/`, `output/srs/`, `output/txt/`, `sources/`, and optionally `tools/sing-box`. ### 更新计划 Rebuilt automatically every day at **03:00 UTC** via GitHub Actions. ### Telegram bot Subscribe to [@abuse_geodata_bot](https://t.me/abuse_geodata_bot) to get notifications about new releases with per-category stats and delta from the previous build. ## Русский Автоматически обновляемые threat intelligence данные в форматах **Xray**, **sing-box** и **ipset**. Собираются ежедневно из публичных abuse-фидов. Предназначены для операторов VPN, хостинг-провайдеров и сетевых администраторов – для защиты инфраструктуры и снижения числа abuse-жалоб. ### 下载 Все файлы публикуются в [GitHub Releases](../../releases/latest). | Файл | Формат | Применение | |:-----|:-------|:-----------| | `abuse-geoip.dat` | Xray/V2Ray | Правила `ext:abuse-geoip.dat:category-*` | | `abuse-geosite.dat` | Xray/V2Ray | Правила `ext:abuse-geosite.dat:category-*` | | `abuse-geoip.db` | MaxMind MMDB | sing-box geoip правила | | `abuse-category-*.srs` | sing-box | Rule-set на каждую категорию | | `abuse-category-bundle-strict-*.srs` | sing-box | Только стабильные категории | | `abuse-category-bundle-full-*.srs` | sing-box | Все категории | | `abuse-category-*.txt` | Текст | ipset, hosts, скрипты | ### 用法 #### Xray ``` { "routing": { "rules": [ { "type": "field", "ip": [ "ext:abuse-geoip.dat:category-sinkhole", "ext:abuse-geoip.dat:category-malware-c2", "ext:abuse-geoip.dat:category-spam", "ext:abuse-geoip.dat:category-brute-force" ], "outboundTag": "block" }, { "type": "field", "domain": [ "ext:abuse-geosite.dat:category-malware-c2", "ext:abuse-geosite.dat:category-phishing" ], "outboundTag": "block" } ] }, "outbounds": [ { "tag": "block", "protocol": "blackhole" } ] } ``` Положи `abuse-geoip.dat` и `abuse-geosite.dat` в директорию ресурсов Xray (по умолчанию `/usr/local/share/xray/`). #### Remnawave/Remnanode (Docker) 1. Создай директорию и скачай файлы: ``` mkdir -p /opt/remnanode/xray/share curl -sLo /opt/remnanode/xray/share/abuse-geoip.dat \ https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-geoip.dat curl -sLo /opt/remnanode/xray/share/abuse-geosite.dat \ https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-geosite.dat ``` 2. Примонтируй файлы в `docker-compose.yml` (сервис remnanode): ``` volumes: - /opt/remnanode/xray/share/abuse-geoip.dat:/usr/local/bin/abuse-geoip.dat:ro - /opt/remnanode/xray/share/abuse-geosite.dat:/usr/local/bin/abuse-geosite.dat:ro ``` 3. Добавь правила маршрутизации в конфиг Xray (через панель Remnawave или конфиг-файл): ``` { "routing": { "rules": [ { "type": "field", "ip": [ "ext:abuse-geoip.dat:category-sinkhole", "ext:abuse-geoip.dat:category-malware-c2", "ext:abuse-geoip.dat:category-spam", "ext:abuse-geoip.dat:category-brute-force" ], "outboundTag": "block" }, { "type": "field", "domain": [ "ext:abuse-geosite.dat:category-malware-c2", "ext:abuse-geosite.dat:category-phishing" ], "outboundTag": "block" } ] } } ``` 4. Автообновление (опционально) — добавь в crontab: ``` 0 4 * * * curl -sLo /opt/remnanode/xray/share/abuse-geoip.dat https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-geoip.dat && curl -sLo /opt/remnanode/xray/share/abuse-geosite.dat https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-geosite.dat && docker restart remnanode ``` #### sing-box ``` { "route": { "rule_set": [ { "tag": "malware-c2-ip", "type": "remote", "format": "binary", "url": "https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-category-malware-c2-ip.srs", "update_interval": "24h" } ], "rules": [ { "rule_set": ["malware-c2-ip", "malware-c2-domain", "sinkhole", "phishing"], "outbound": "block" } ] } } ``` #### ipset (Linux) ``` ipset create abuse-block hash:net curl -sL https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-category-bundle-strict-ip.txt \ | grep -v '^#' | xargs -I{} ipset add abuse-block {} iptables -I FORWARD -m set --match-set abuse-block dst -j DROP ``` ### 分类 | Категория | Тип | Описание | Флаги | |:----------|:----|:---------|:------| | `category-sinkhole` | IP | Известные sinkhole IP исследователей безопасности | – | | `category-sinkhole-domain` | Domain | Sinkhole-домены, перехваченные CERT.PL | большой | | `category-malware-c2` | IP + Domain | C2-серверы малвари (ботнеты, ransomware, трояны) | – | | `category-phishing` | Domain | Фишинговые домены | волатильный | | `category-spam` | IP | Spamhaus DROP/EDROP – захваченные спамерами блоки | – | | `category-tor-exit` | IP | Exit-ноды сети Tor | спорный | | `category-brute-force` | IP | IP-адреса, ведущие брутфорс-атаки | волатильный | | `category-torrent` | Domain | Торрент-сайты и пиратские ресурсы (без легальных) | спорный, большой | | `category-torrent-legal` | Domain | Легитимные торрент-сервисы (Linux-дистрибутивы, архивы, FOSS) | – | | `category-torrent-announce` | IP + Domain | Announce-серверы BitTorrent-трекеров | спорный | | `category-dga` | Domain | DGA-домены малвари | высокий FP, большой | #### 标记图例 | Флаг | Значение | |:-----|:---------| | `high_false_positive` | Возможна блокировка легитимного трафика. Проверь перед деплоем. | | `high_volatility` | Список меняется часто. IP могут быть переназначены легитимным пользователям. | | `controversial` | У блокировки есть весомые контраргументы в зависимости от контекста использования. | | `large_dataset` | Большое число записей. Может влиять на производительность роутинга. | #### 捆绑包 - **`category-bundle-strict-*`** – только категории без флагов `high_false_positive` и `large_dataset`. Безопасен для большинства деплоев. - **`category-bundle-full-*`** – все категории, включая DGA и другие шумные наборы. ### 来源 | Источник | URL | |:---------|:----| | Feodo Tracker (abuse.ch) | https://feodotracker.abuse.ch | | URLhaus (abuse.ch) | https://urlhaus.abuse.ch | | ThreatFox full export (abuse.ch) | https://threatfox.abuse.ch | | Emerging Threats | https://rules.emergingthreats.net | | C2IntelFeeds | https://github.com/drb-ra/C2IntelFeeds | | Threatview.io | https://threatview.io | | Disconnect.me | https://disconnect.me | | CyberHost Malware | https://cyberhost.uk | | ShadowWhisperer | https://github.com/ShadowWhisperer/BlockLists | | Spamhaus DROP/EDROP | https://www.spamhaus.org/drop/ | | Tor Project | https://check.torproject.org/torbulkexitlist | | blocklist.de | https://www.blocklist.de | | OpenPhish | https://openphish.com | | brakmic/Sinkholes | https://github.com/brakmic/Sinkholes | | CERT.PL Sinkhole | https://hole.cert.pl | | Bambenek DGA feed | https://bambenekconsulting.com | | blocklistproject Torrent | https://github.com/blocklistproject/Lists | | hagezi Anti-Piracy | https://github.com/hagezi/dns-blocklists | | ngosang Trackers | https://github.com/ngosang/trackerslist | ### 测试 Каждый билд запускает `scripts/test.py` для валидации всех выходных файлов: - `.dat` файлы существуют и имеют минимальный ожидаемый размер - `.db` (MMDB) имеет валидную структуру метаданных MaxMind - `.srs` файлы успешно декомпилируются sing-box - `.txt` файлы содержат только валидные IP/домены -аждая категория из sources имеет соответствующие выходные файлы - Количество записей в txt и srs консистентно ``` # 测试当前构建 python scripts/test.py # 在其他目录中测试已下载的发布版本 python scripts/test.py /path/to/release-dir ``` Директория релиза должна иметь структуру: `output/`, `output/srs/`, `output/txt/`, `sources/`, и опционально `tools/sing-box`. ### 更新计划 Пересборка автоматически каждый день в **03:00 UTC** через GitHub Actions. ### Telegram bot Подпишись на [@abuse_geodata_bot](https://t.me/abuse_geodata_bot), чтобы получать уведомления о новых релизах со статистикой по категориям и дельтой от предыдущей сборки. ## 中文 自动化威胁情报地理数据,支持 **Xray**、**sing-box** 和 **ipset**。 每日从公开 abuse 数据源构建。专为 VPN 运营商、主机托管商和网络管理员设计,用于保护基础设施、减少滥用投诉。 ### 下载 所有文件发布在 [GitHub Releases](../../releases/latest)。 | 文件 | 格式 | 用途 | |:-----|:-----|:-----| | `abuse-geoip.dat` | Xray/V2Ray | `ext:abuse-geoip.dat:category-*` 规则 | | `abuse-geosite.dat` | Xray/V2Ray | `ext:abuse-geosite.dat:category-*` 规则 | | `abuse-geoip.db` | MaxMind MMDB | sing-box geoip 规则 | | `abuse-category-*.srs` | sing-box | 按类别的规则集 | | `abuse-category-bundle-strict-*.srs` | sing-box | 仅稳定类别 | | `abuse-category-bundle-full-*.srs` | sing-box | 所有类别 | | `abuse-category-*.txt` | 纯文本 | ipset、hosts、脚本 | ### 使用方法 #### Xray ``` { "routing": { "rules": [ { "type": "field", "ip": [ "ext:abuse-geoip.dat:category-sinkhole", "ext:abuse-geoip.dat:category-malware-c2", "ext:abuse-geoip.dat:category-spam", "ext:abuse-geoip.dat:category-brute-force" ], "outboundTag": "block" }, { "type": "field", "domain": [ "ext:abuse-geosite.dat:category-malware-c2", "ext:abuse-geosite.dat:category-phishing" ], "outboundTag": "block" } ] }, "outbounds": [ { "tag": "block", "protocol": "blackhole" } ] } ``` 将 `abuse-geoip.dat` 和 `abuse-geosite.dat` 放入 Xray 资源目录(默认:`/usr/local/share/xray/`)。 #### Remnawave/Remnanode (Docker) 1. 创建资源目录并下载文件: ``` mkdir -p /opt/remnanode/xray/share curl -sLo /opt/remnanode/xray/share/abuse-geoip.dat \ https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-geoip.dat curl -sLo /opt/remnanode/xray/share/abuse-geosite.dat \ https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-geosite.dat ``` 2. 在 `docker-compose.yml` 中挂载文件(remnanode 服务): ``` volumes: - /opt/remnanode/xray/share/abuse-geoip.dat:/usr/local/bin/abuse-geoip.dat:ro - /opt/remnanode/xray/share/abuse-geosite.dat:/usr/local/bin/abuse-geosite.dat:ro ``` 3. 在 Xray 配置中添加路由规则(通过 Remnawave 面板或配置文件): ``` { "routing": { "rules": [ { "type": "field", "ip": [ "ext:abuse-geoip.dat:category-sinkhole", "ext:abuse-geoip.dat:category-malware-c2", "ext:abuse-geoip.dat:category-spam", "ext:abuse-geoip.dat:category-brute-force" ], "outboundTag": "block" }, { "type": "field", "domain": [ "ext:abuse-geosite.dat:category-malware-c2", "ext:abuse-geosite.dat:category-phishing" ], "outboundTag": "block" } ] } } ``` 4. 自动更新(可选)— 添加到 crontab: ``` 0 4 * * * curl -sLo /opt/remnanode/xray/share/abuse-geoip.dat https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-geoip.dat && curl -sLo /opt/remnanode/xray/share/abuse-geosite.dat https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-geosite.dat && docker restart remnanode ``` #### sing-box ``` { "route": { "rule_set": [ { "tag": "malware-c2-ip", "type": "remote", "format": "binary", "url": "https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-category-malware-c2-ip.srs", "update_interval": "24h" } ], "rules": [ { "rule_set": ["malware-c2-ip", "malware-c2-domain", "sinkhole", "phishing"], "outbound": "block" } ] } } ``` #### ipset (Linux) ``` ipset create abuse-block hash:net curl -sL https://github.com/velvet-rnd/abuse-geodata/releases/latest/download/abuse-category-bundle-strict-ip.txt \ | grep -v '^#' | xargs -I{} ipset add abuse-block {} iptables -I FORWARD -m set --match-set abuse-block dst -j DROP ``` ### 类别 | 类别 | 类型 | 说明 | 标记 | |:-----|:-----|:-----|:-----| | `category-sinkhole` | IP | 安全研究人员运营的已知 sinkhole 服务器 | – | | `category-sinkhole-domain` | Domain | CERT.PL 接管的 sinkhole 域名 | 大型 | | `category-malware-c2` | IP + Domain | 恶意软件 C2 服务器(僵尸网络、勒索软件、木马) | – | | `category-phishing` | Domain | 钓鱼域名 | 高波动 | | `category-spam` | IP | Spamhaus DROP/EDROP — 被劫持的 IP 段 | – | | `category-tor-exit` | IP | Tor 出口节点 | 争议性 | | `category-brute-force` | IP | 暴力破解攻击源 IP | 高波动 | | `category-torrent` | Domain | 盗版种子站点(已排除合法站点) | 争议性、大型 | | `category-torrent-legal` | Domain | 合法种子服务(Linux 发行版、归档站、FOSS) | – | | `category-torrent-announce` | IP + Domain | BitTorrent Tracker Announce 服务器 | 争议性 | | `category-dga` | Domain | 恶意软件 DGA 生成域名 | 高误报、大型 | #### 标记说明 | 标记 | 含义 | |:-----|:-----| | `high_false_positive` | 可能误拦合法流量,部署前请审查。 | | `high_volatility` | 列表变化频繁,IP 可能被重新分配给合法用户。 | | `controversial` | 根据使用场景,封锁存在合理的反对意见。 | | `large_dataset` | 条目数量大,可能影响路由性能。 | #### 聚合包 - **`category-bundle-strict-*`** — 仅包含无 `high_false_positive` 和 `large_dataset` 标记的类别。适用于大多数部署。 - **`category-bundle-full-*`** — 所有类别,包括 DGA 等高噪声数据集。 ### 数据源 | 数据源 | URL | |:-------|:----| | Feodo Tracker (abuse.ch) | https://feodotracker.abuse.ch | | URLhaus (abuse.ch) | https://urlhaus.abuse.ch | | ThreatFox full export (abuse.ch) | https://threatfox.abuse.ch | | Emerging Threats | https://rules.emergingthreats.net | | C2IntelFeeds | https://github.com/drb-ra/C2IntelFeeds | | Threatview.io | https://threatview.io | | Disconnect.me | https://disconnect.me | | CyberHost Malware | https://cyberhost.uk | | ShadowWhisperer | https://github.com/ShadowWhisperer/BlockLists | | Spamhaus DROP/EDROP | https://www.spamhaus.org/drop/ | | Tor Project | https://check.torproject.org/torbulkexitlist | | blocklist.de | https://www.blocklist.de | | OpenPhish | https://openphish.com | | brakmic/Sinkholes | https://github.com/brakmic/Sinkholes | | CERT.PL Sinkhole | https://hole.cert.pl | | Bambenek DGA feed | https://bambenekconsulting.com | | blocklistproject Torrent | https://github.com/blocklistproject/Lists | | hagezi Anti-Piracy | https://github.com/hagezi/dns-blocklists | | ngosang Trackers | https://github.com/ngosang/trackerslist | ### 测试 每次构建运行 `scripts/test.py` 验证所有输出文件: - `.dat` 文件存在且达到最小预期大小 - `.db`(MMDB)具有有效的 MaxMind 元数据结构 - `.srs` 文件可被 sing-box 成功反编译 - `.txt` 文件仅包含有效的 IP/域名 - 每个源类别都有对应的输出文件 - txt/srs 条目数量一致 ``` # 测试当前构建输出 python scripts/test.py # 测试下载到其他目录的发布版本 python scripts/test.py /path/to/release-dir ``` 发布目录需具有以下结构:`output/`、`output/srs/`、`output/txt/`、`sources/`,以及可选的 `tools/sing-box`。 ### 更新计划 通过 GitHub Actions 每天 **03:00 UTC** 自动重新构建。 ### Telegram 机器人 订阅 [@abuse_geodata_bot](https://t.me/abuse_geodata_bot) 以获取新版本通知,包含各类别统计信息和与上次构建的差异。 ## 贡献 欢迎提交 PR。如需添加新数据源,请在相应的 `sources/category-*.yml` 中添加记录,或参照现有文件创建新文件。
标签:Docker, GeoIP, GeoSite, ipset, MaxMind MMDB, Remnawave, sing-box, V2Ray, VPN运维, Xray, 主机托管, 减少投诉, 地理数据, 基础设施保护, 威胁情报, 安全防御评估, 开发者工具, 开源, 恶意IP, 网络安全, 网络封锁, 网络管理员, 网络调试, 自动化, 规则集, 路由规则, 逆向工具, 防滥用, 隐私保护, 黑名单