splify2-lists#
Каталог списков доменов и адресов для splify2
Каталог списков для splify2: что можно завернуть в
туннель, одним файлом lists.json.
Роутер скачивает только lists.json — в нём перечислено, какие списки бывают, как они
называются по-человечески и где лежит каждый. Сами списки живут двумя способами: свои — в
этом репозитории, чужие — в релизах тех, кто их ведёт. Мы чужое к себе не перекладываем.
Подключить к своему роутеру#
В splify2: Настройки → Общее, карточка «Источник списков», вставить ссылку:
https://github.com/splify2/splify2-lists/releases/latest/download/lists.json
Это же значение можно задать по ssh:
uci set splify2.main.manifest_url='https://github.com/splify2/splify2-lists/releases/latest/download/lists.json'
uci commit splify2
Свой каталог: сделайте форк#
Форк работает сразу и без единой правки: сборка подставляет владельца из окружения, поэтому списки поедут из вашего дерева, а не из чужого. Дальше:
-
Добавить список — положить файл в
lists/. Один файл — один список:имя.lst— домены и подсети, можно вперемешку;имя.asn— номера автономных систем; подсети сборка спросит сама и положит рядом.
Подробности и шапка файла — в
lists/README.md. -
Добавить или убрать чужой источник — строка в
sources.txt. Название набора по-человечески — строка вnames.txt; чего там нет, то называется именем файла набора. -
Ничего больше. Сборка идёт раз в сутки сама (
.github/workflows/lists.yml), аlists.jsonобновляется, только если содержимое действительно изменилось.
Проверить у себя на машине, ничего не публикуя:
python3 build.py # зависимостей нет, только Python 3.8+
Откуда берутся чужие списки#
sources.txt называет репозитории; из последнего релиза каждого берутся наборы .srs
(формат sing-box). splify2 читает их сам — ядро steer раскладывает набор на домены и подсети
(steer srs-read).
Сейчас это:
| Источник | Что даёт | Приставка |
|---|---|---|
| itdoginfo/allow-domains | сервисы и категории под РФ | itdoginfo: |
| Greeg0ry/b4geoip-forkop | игры и игровые сервисы | b4geoip: |
Приставка нужна по двум причинам: имена у источников совпадают (roblox есть и там, и там), и
приставка itdog уже занята вторым издателем, зашитым в сам splify2 — с ней он забирал бы
списки этого каталога себе и качал их своим, зафиксированным в пакете тегом.
Тег релиза записывается в ссылку. Не latest: две сборки одного lists.json обязаны
означать одно и то же, иначе «вчера работало, сегодня нет» не с чем сравнить. Пока у чужого
издателя не вышел новый релиз, ссылки в lists.json не меняются, и роутеру нечего скачивать.
Сами .srs не качает даже сборка. У чужого релиза спрашивается только тег и перечень
файлов; байты списка идут напрямую с их релиза на роутер, когда человек включит список.
Что внутри lists.json#
Тот же формат, который splify2 читает у своего манифеста, — чтобы каталог можно было подменить одной ссылкой:
{
"version": "2026-09-08_20-46", // меняется, только когда изменилось содержимое
"generated_at": "2026-09-08T20:46:14Z",
"base_url": "https://raw.githubusercontent.com/<владелец>/splify2-lists/main/lists",
"categories": [ // списки ПОДСЕТЕЙ
{ "id": "itdoginfo:telegram", "name_ru": "Telegram", "file": "itdoginfo/telegram.srs.lst",
"format": "srs", "tag": "2026-09-07_14-23",
"url": "https://github.com/itdoginfo/allow-domains/releases/download/2026-09-07_14-23/telegram.srs" }
],
"domain_lists": [ // списки ДОМЕНОВ
{ "id": "mydyson", "kind": "domains", "name_ru": "MyDyson",
"file": "mydyson.lst", "count": 1, "default_on": false },
{ "id": "svc_itdoginfo_telegram", "kind": "domains", "name_ru": "Telegram",
"file": "itdoginfo/domains/telegram.srs.lst", "same_as_ip": ["itdoginfo:telegram"],
"format": "srs", "url": "…", "tag": "…" }
]
}
file— имя половины НА РОУТЕРЕ (и, для своих списков, путь относительноbase_url). Качается.srs, а ядро steer держит в спеке текстовые списки: набор ему нужен только чтобы их получить. Поэтому у половин чужого набора имя от набора —telegram.srs.lst: происхождение списка читается прямо в правиле.format: "srs"иurl— «скачай вот это и разложи набором sing-box». Без них список скачивается как обычный текстовый файл изbase_url.same_as_ip— «домены и подсети здесь про одно и то же»: splify2 показывает такую пару одной строкой, а не двумя.default_on— список включён у того, кто ничего не выбирал. В шапке файла этоon: yes.
Лицензия#
Списки принадлежат их издателям; условия — в их репозиториях. Всё, что в этом репозитории своё (сборка, формат, документация), — MIT.