
В Shadowrocket Simple Config у меня лежат списки доменов для маршрутизации трафика. Но некоторые прокси-клиенты (Xray, Clash, Mihomo) работают не с текстовыми списками, а с бинарным форматом geosite.dat. Чтобы не конвертировать руками, сделал автоматический генератор.
Что такое geosite.dat?#
geosite.dat — это protobuf-файл, который используется в ядрах Xray/v2Ray/Clash для компактного хранения и быстрого поиска доменов по категориям. Вместо правил в конфиге пишется что-то тип такого:
rules:
- GEOSITE,MAIN,PROXY
- GEOSITE,RUDIRECT,DIRECTА маршрутизатор сам проверяет домен по базе.
Зачем отдельный репозиторий?#
Ручная конвертация — это Python, написать скрипт, запустить, проверить, загрузить куда-то. Кароче много дел.
Решение: отдельный репозиторий srscdat, который:
- Берёт списки из
ShadowRocketSimpleConfig - Конвертирует в формат domain-list-community
- Генерирует
geosite.datчерез официальный инструмент v2fly - Публикует как GitHub Release с постоянной ссылкой
Как это работает#
Всё построено на GitHub Actions:
on:
workflow_dispatch: # только вручную, без расписанияПроцесс:
- Checkout
srscdatиShadowRocketSimpleConfig - Клонирование domain-list-community (официальный генератор)
- Конвертация
.list→ формат нужный черезconvert.py - Генерация
geosite.datчерезgo run ./ - Публикация в Releases через
softprops/action-gh-release
Структура проекта#
srscdat/
├── .github/workflows/generate.yml ← GitHub Actions
├── src/
│ ├── convert.py ← конвертер Shadowrocket → DLC
│ └── check.py ← проверка geosite.dat
├── data/ ← промежуточные файлы (не коммитятся)
└── output/ ← результат (не коммитится)Категории в geosite.dat#
На данный момент файл содержит 13 категорий:
| Категория | Доменов | Описание |
|---|---|---|
AI | 97 | ChatGPT, Claude, Gemini, Copilot |
FITNESS | 4 | Спорт и здоровье |
GAMES | 22 | Игровые платформы и CDN |
MAIN | 254 | Соцсети, медиа, инструменты |
MUSIC | 12 | Музыкальные стриминги |
NEVAMESSENGER | 61 | Мессенджер |
REDTUBE | 16 | RedTube и CDN |
RUADS | 174 | Российская реклама и трекинг |
RUBANKING | 671 | Российские банки |
RUDIRECT | 337 | Российские локальные сервисы |
RUIPCHECKER | 9 | Проверка IP |
VIDEO | 41 | Видео стриминги |
ZETASERVICES | 107 | Сервисы аналога ВК |
Итого: 1805 доменов, ~33 КБ.
Как использовать#
Постоянная ссылка (всегда ведёт на последнюю версию):
https://github.com/tatarinovms/srscdat/releases/latest/download/geosite.datВ конфиге вашего клиента\сервера:
{
"Geositeurl": "https://github.com/tatarinovms/srscdat/releases/latest/download/geosite.dat",
"DirectSites": ["geosite:RUBANKING", "geosite:RUDIRECT"],
"ProxySites": ["geosite:MAIN", "geosite:AI"],
"BlockSites": ["geosite:RUADS"]
}В Clash/Mihomo:
rule-providers:
geosite:
type: http
behavior: domain
url: https://github.com/tatarinovms/srscdat/releases/latest/download/geosite.dat
path: ./geosite.dat
interval: 86400
rules:
- RULE-SET,geosite,DIRECTЛокальная генерация#
Если не хочешь юзать GitHub Actions:
git clone https://github.com/tatarinovms/srscdat.git
cd srscdat
./update-geosite.sh --checkТребования: Python 3.6+, Go 1.21+, Git.
Репозиторий#
Всё открыто: github.com/tatarinovms/srscdat
Если хочешь так же форкай и алга, поменяй ссылку на свои списки в generate.yml, запушъ. И теперь и у тебя есть автоматический генератор geosite.dat из любых списков Shadowrocket.


