Skip to content

Создание правила Anticensority для sing-box #2

@savely-krasovsky

Description

@savely-krasovsky

Расширение очень крутое и поэтому мне хотелось бы концепцию на system-wide уровень. Особенно это актуально для Android. Да, там можно настроить в системе PAC-файл, но в небраузерных приложениях это работать не будет.

Китайцы придумали мощную коробку под названием sing-box, она интегрирована в кучу приложений включая Nekoray, NekoBox, SagerNet и другие.

Там есть удобная фича с правилами маршрутизации, в частности правила geosite и geoip. Компилируют готовую базу они тут: https://github.com/SagerNet/sing-geosite

Вкладывают при этом вручную подобные списки, которые делает коммьюнити: https://github.com/v2fly/domain-list-community

Собственно идея простая:

  1. Можно компилировать базу в похожем формате.
  2. Далее форкнуть sing-box и сделать отдельное правило, например antizapret, при его добавлении в конфигурацию подгружать БД запрещенных доменов и IP.
  3. В конфигурации sing-box сделать два правила: по умолчанию обход, а antizapret пускать через прокси.

На мой взгляд изменения подготовить достаточно легко:

  1. Генератор PAC-файлов у нас уже есть. Адаптировать под генерацию db-файлов и можно также заливать в GitHub-релизы новые версии.
  2. Форкнуть и добавить для sing-box новое правило по аналогии с geosite: https://github.com/SagerNet/sing-box/blob/dev-next/route/router_geo_resources.go (загрузка актуальной БД), https://github.com/SagerNet/sing-box/blob/dev-next/route/rule_item_geosite.go (сам матчер)
  3. Форкнуть Nekobox и использовать нашу версию sing-box (других изменений делать там не придется).

В теории можно будет даже попробовать это замержить, если поговорить с оригинальными авторами, но тут уже не знаю насколько они открыты к подобному.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions