Как я адаптировал v2rayN для России или российские источники geo файлов для v2ray/sing-box/etc

от автора

Сегодня был выпущен мажорный релиз v2rayN v7.0, а вместе с ним и моя серия коммитов, которые добавляют поддержку пресета «Россия».

Введение

Ни для кого не секрет, что ввиду блокировок «обычных» vpn протоколов в России, многие пользователи перешли на использование v2ray/xray/sing-box. Как известно, почти все GUI клиенты разработаны в Китае для Китая, но их специфика мало применима для России (по крайней мере пока).

Поэтому мне в голову пришла идея сделать репозиторий с российскими GeoIP/GeoSite файлами, а так же добавить их поддержку в, вероятно, самый популярный клиент для Windows — v2rayN.

Обратите внимание, что с версии 7.0.0 v2rayN поддерживает Linux!

v2rayN

Если вам не интересны подробности, то вот ссылка на релиз: v2rayN v7.0

Нужно просто скачать, v2rayN-windows-64-SelfContained-With-Core.7z, распаковать и запустить v2rayN.exe.

После этого добавьте свой конфиг и нажмите Настройки -> Региональные пресеты -> Россия (Для английской локали Settings -> Regional presets setting -> Russia).

Что было сделано

  1. Добавлена поддержка сторонних источников GeoIP/GeoSite файлов для Xray и sing-box и их обновления.

  2. Добавлена поддержка сторонних источников правил маршрутизации.

  3. Добавлена поддержка сторонних источников DNS конфигурации для Xray и sing-box.

  4. Добавлен, собственно, пресет «Россия», который просто устанавливает все вышеперечисленные параметры и обновляет Geo файлы.

В v2rayN уже добавлена поддержка российских источников, но вы можете использовать свои. Все источники, кроме DNS настраивается в Настройки -> Настройки параметров -> Настройка v2rayN.

Скачивание из всех источников происходит через прокси, так что можно не беспокоиться о будущих блокировках.

Источники GeoIP/GeoSite

Официальные GeoIP/GeoSite и sing-box srs файлы загружаются из репозитория @runetfreedom/russia-v2ray-rules-dat

Этот репозиторий является агрегатором файлов из @runetfreedom/russia-blocked-geoip и @runetfreedom/russia-blocked-geosite. Единственная цель этой агрегации состоит в том, что код v2rayN ожидает один репозиторий для обоих типов файлов.

Подробнее о содержимом этих файлов ниже.

Источники правил маршрутизации

Официальные правила маршрутизации загружаются из репозитория @runetfreedom/russia-v2ray-custom-routing-list

Вcе правила блокируют рекламу и пропускают трафик напрямую до приватных и зарезервированных сетей, определенных в RFC6890.

На данный момент существуют 3 набора правил:

  1. Вcё — как следует из названия, направляет весь трафик в прокси/VPN.

  2. Вcё, кроме РФ — в прокси/VPN направляется весь трафик, кроме торрентов и всех российских IP. В этом режиме нормально работают госуслуги, ржд, банки и т.д.

  3. Заблокированное — В прокси/VPN направляются только заблокированные в России домены (antifilter community и re:filter) и ip адреса. Дополнительно пришлось завернуть UDP порты 50000-65535 для работы войса дискорда.

Выбор правила зависит от задачи и желаемого уровня анонимности, но в целом, для обычного пользователя, достаточно второго набора. Из-за нового подхода с блокировками на ТСПУ у нас на самом деле нет единого реестра ресурсов, к которым они применяют рестрикции, так что третий набор может работать не идеально.

Источники DNS конфигурации

Официальная DNS конфигурация загружаются из репозитория @runetfreedom/russia-v2ray-custom-routing-list

В них нет ничего особенно интересного, они очень похожи на встроенные кроме блокировки рекламы и замены китайских DNS для локальных запросов на DNS Яндекса (77.88.8.8)

Российский источник GeoIP и GeoSite файлов

Я не нашел в интернете ни одного репозитория, который собирал бы все источники вместе, поэтому я решил сделать свои.

Источниками данных о блокировках в России являются:

  1. antifilter.download

  2. community.antifilter.download

  3. re:filter

Для роутеров и мобильных телефонов стоит использовать geosite-ru-only.dat и geoip-ru-only.dat, так как полные списки слишком велики для них.

Контент обновляется раз в 6 часов средствами GitHub Actions.

GeoIP

GeoIP файлы доступны в репозитории @runetfreedom/russia-blocked-geoip

На данный момент поддерживаются следующие выходные форматы:

  • geoip.dat (V2Ray, Xray-core, v2rayN и прочие)

  • MaxMind mmdb

  • sing-box srs

  • mihomo mrs

  • Clash правила

  • SURGE правила

  • nginx allow и deny шаблоны (для reverse proxy и fallback схем)

Основные категории:

  1. geoip:ru-blocked содержит ipresolve.lst и subnet.lst сервиса antifilter.download

  2. geoip:ru-blocked-community содержит community.lst сервиса community.antifilter.download

  3. geoip:re-filter содержит ipsum.lst из re:filter

Для вашего удобства в файлы включены несколько дополнительных категорий на основе ASN:

  • geoip:cloudflare

  • geoip:cloudfront

  • geoip:facebook

  • geoip:fastly

  • geoip:google

  • geoip:netflix

  • geoip:telegram

  • geoip:twitter

  • geoip:ddos-guard

  • geoip:yandex

Содержимое файлов:

  • geoip.dat, Country.mmdb — содержит полный набор данных (оригинальный geoip + все категории)

  • geoip-asn.dat, Country-asn.mmdb — содержит только дополнительные категории

  • geoip-ru-only.dat, Country-ru-only.mmdb — содержит только списки заблокированных сетей и адресов + private (geoip:ru-blocked, geoip:ru-blocked-community, geoip:re-filter и geoip:private)

  • ru-blocked.dat, ru-blocked-community.dat, re-filter.dat — отдельно соответствующие категории (только geoip.dat формат)

  • private.dat — Приватные/Зарезервированные сети (RFC6890)

Содержимое директорий

Во всех директориях содержимое разбито по принципу «1 файл = 1 категория»

  • datgeoip.dat формат

  • text — Текстовые списки

  • srs — sing-box формат

  • clash — Clash формат (включая классическую и ip-cidr нотацию)

  • mrs — mihomo формат

  • surge — SURGE формат

  • nginx — allow и deny правила для nginx

GeoSite

GeoSite файлы доступны в репозитории @runetfreedom/russia-blocked-geosite

На данный момент поддерживается только формат geosite.dat

Дополнительно к спискам заблокированного используются:

  • @v2fly/domain-list-community — огромный список доменов, разбитых по множеству сервисов, компаний и категорий. Включая discord, youtube и тд.

  • AdGuard Dns Filter — список рекламных доменов

  • Peter Lowe’s list — список рекламных доменов

  • WindowsSpyBlocker — список доменов, используемых windows (в том числе для слежки и сбора аналитики)

В списки так же загружаются дополнительные домены из @runetfreedom/russia-domains-list. Для добавления заблокированных доменов по возможности вместо PR в этот репозиторий используйте, пожалуйста, бота Antifilter Community

Доступные категории

  • Все категории из @v2fly/domain-list-community. Включая: google, discord, youtube, twitter, meta, openai и так далее.

  • geosite:ru-blocked — заблокированные в России домены (antifilter-download-community + re:filter)

  • geosite:ru-blocked-allвсе известные заблокированные в России домены (antifilter-download + antifilter-download-community + re:filter). Список содержит не менее 700 тысяч доменов, употреблять с осторожностью.

  • geosite:ru-available-only-inside — Домены, доступные только внутри России

  • geosite:antifilter-download — все домены из antifilter.download (почти 700 тысяч, употреблять с осторожностью)

  • geosite:antifilter-download-community — все домены из community.antifilter.download

  • geosite:refilter — все домены из re:filter

  • geosite:category-ads-all — все рекламные домены

  • geosite:win-spy — домены, используемые windows для слежки и сбора аналитики

  • geosite:win-update — домены, используемые windows для обновлений

  • geosite:win-extra — прочие домены, используемые windows

Обратите внимание, что geosite:category-ads-all из v2fly перезаписывается, тк он слишком мал и во многом бесполезен.

Релиз так же содержит эти категории в виде текстовых файлов со списком доменов.

Заключение

Все файлы доступны для скачивания и использования в любых целях. Если у вас есть идеи или предложения, то пишите в issues соответствующих репозиториев.

У меня в планах было сделать еще и правила маршрутизации для FoxRay (клиент для iOS/macOS), но разработчики клиента недавно удалили поддержку импорта правил.


ссылка на оригинал статьи https://habr.com/ru/articles/853796/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *