Вступление
В стандартных клиентах, таких как 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 — домены, доступные внутри РФ (в т.ч. недоступные из-за границы, белые списки, гос сервисы). Дублирование доменов отсутствует.
Используемые источники данных:
-
@v2fly/domain-list-community — сборщик и
category-gov-ru, -
@runetfreedom/russia-domains-list — список
ru-available-only-inside, -
@hxehex/russia-mobile-internet-whitelist — список
whitelist.txt.
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.
Используемые источники данных:
-
@Loyalsoldier/geoip — сборщик geoip.dat,
-
@runetfreedom/russia-blocked-geoip — шаблон репозитория,
-
scanitex.com — список российских ip адресов.
Пример конфигурации для 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/