Я адаптировал geo файлы v2ray для OpenWrt: теперь работают все сайты, а размер файлов уменьшен в 1000 раз

от автора

Вступление

В стандартных клиентах, таких как v2rayN, используются специальные (geo) файлы, которые позволяют проксировать, блокировать трафик, а также пропускать его напрямую в зависимости от домена/IP адреса назначения. Пользователь @runetfreedomсоздал такие файлы для российских пользователей, за что ему большое спасибо. В теории, настроив маршрутизацию с этими файлами один раз, не нужно постоянно включать/выключать VPN или прокси при пользовании интернетом, так как клиент вроде v2rayN проксирует только заблокированные сайты. На практике же у меня при настроенной маршрутизации некоторые и зарубежные, и российские сайты не загружались: из того что помню сайт pogodaiklimat.ru; сайты, связанные с разработкой на python вроде pip.pypa.io. То есть с одной стороны, в этих geo файлах (@runetfreedom/russia-v2ray-rules-dat) список заблокированных сайтов/IP неполный, а с другой, есть лишние записи, которые блокируют загрузку незаблокированных сайтов. Также в этих файлах очень много категорий (рекламные сайты, яндекс, гугл, блок-лист1, блок-лист2, …), записи между которыми дублируются. Я хотел сделать так, чтобы при включенном VPN/прокси клиенте все сайты и сервисы работали, а сами geo файлы (geosite.dat и geoip.dat) имели минимальный размер без дублирования записей, чтобы в итоге с помощью этих файлов можно было настроить маршрутизацию на роутере с OpenWrt.

Идем противоположным путем

Абсолютно все geo файлы, которые я встречал, подразумевают такое использование: если домен/IP сервиса есть в файле, подключаемся через прокси, иначе напрямую. Собрал новые geo файлы, в которых, наоборот, хранятся разрешенные домены и IP для подключения из России: по ним переход напрямую, а подключение по умолчанию проксируется.

GeoSite.dat

Ссылка на репозиторий: @golukon/russia-only-geosite.
Категория: geosite:ru-inside — домены, доступные внутри РФ (в т.ч. недоступные из-за границы, белые списки, гос сервисы). Дублирование доменов отсутствует.

Используемые источники данных:

GeoIP.dat

Ссылка на репозиторий: @golukon/russia-only-geoip.

Категории:

  • geoip:ru — список всех российских IPv4-адресов,

  • geoip:private — приватные и зарезервированные сети, например 10.0.0.0/8, 127.0.0.0/8, 192.168.0.0/16.

Используемые источники данных:

Пример конфигурации для v2rayA

default: proxyip(geoip:private)->direct# write your own rules belowip(geoip:ru)->directdomain(geosite:ru-inside)->direct

Пример конфигурации для v2rayN/v2rayNG

[    {        "enabled": true,        "ip": [            "geoip:private"        ],        "locked": false,        "outboundTag": "direct",        "remarks": "RU-0 [Приватные сети напрямую]"    },    {        "enabled": true,        "ip": [            "geoip:ru"        ],        "locked": false,        "outboundTag": "direct",        "remarks": "RU-0 [Российские IPv4 напрямую]"    },    {        "domain": [            "geosite:ru-inside"        ],        "enabled": true,        "locked": false,        "outboundTag": "direct",        "remarks": "RU-0 [Российские домены напрямую]"    },    {        "enabled": true,        "locked": false,        "outboundTag": "proxy",        "port": "0-65535",        "remarks": "RU-0 [Остальное прокси]"    }]

Чтобы применить данную конфигурацию

  • в v2rayN: перейдите в настройки->настройки маршрутизации->расширенная функция->добавить (из файла/буфера обмена),

  • в v2rayNG: перейдите в маршрутизация->импорт набора правил (из буфера обмена).

Заключение

Размер geo файлов измеряется килобайтами, по субъективным ощущениям скорость загрузки увеличилась. Понятно, что добавление всех российских IPv4 не обеспечивает стопроцентную правильную маршрутизацию при блокировках, однако все сайты, с которыми раньше были проблемы при включенном VPN, теперь работают.

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