-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Расширение очень крутое и поэтому мне хотелось бы концепцию на system-wide уровень. Особенно это актуально для Android. Да, там можно настроить в системе PAC-файл, но в небраузерных приложениях это работать не будет.
Китайцы придумали мощную коробку под названием sing-box, она интегрирована в кучу приложений включая Nekoray, NekoBox, SagerNet и другие.
Там есть удобная фича с правилами маршрутизации, в частности правила geosite и geoip. Компилируют готовую базу они тут: https://github.com/SagerNet/sing-geosite
Вкладывают при этом вручную подобные списки, которые делает коммьюнити: https://github.com/v2fly/domain-list-community
Собственно идея простая:
- Можно компилировать базу в похожем формате.
- Далее форкнуть sing-box и сделать отдельное правило, например
antizapret, при его добавлении в конфигурацию подгружать БД запрещенных доменов и IP. - В конфигурации sing-box сделать два правила: по умолчанию обход, а antizapret пускать через прокси.
На мой взгляд изменения подготовить достаточно легко:
- Генератор PAC-файлов у нас уже есть. Адаптировать под генерацию db-файлов и можно также заливать в GitHub-релизы новые версии.
- Форкнуть и добавить для 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 (сам матчер)
- Форкнуть Nekobox и использовать нашу версию sing-box (других изменений делать там не придется).
В теории можно будет даже попробовать это замержить, если поговорить с оригинальными авторами, но тут уже не знаю насколько они открыты к подобному.