← К библиотеке
Каскады Практика

Гео Google/YouTube без рекламы через РФ-выход

Полезный побочный эффект гео-маршрутизации: если увести Google/YouTube на российский выход, реклама почти пропадает, а регион остаётся родным. Но чтобы это работало без утечек, нужны четыре штриха в конфиге — маршрут, DNS без ECS, глушёный IPv6 и QUIC в туннеле. Собираем. Команды и JSON рабочие.

Почему РФ-выход убирает рекламу

Простая механика: Google свернул продажу рекламы в РФ ещё в 2022-м. Поэтому ролики, отданные на российский IP, идут практически без пре-роллов — рекламы для этого региона просто нет. Плюс родные RU-рекомендации, регион RU без гео-капчи, а часто и низкий пинг к Google (пиринг РФ-датацентра).

Отсюда приём: заворачиваем Google/YouTube на российский выход отдельно от остального трафика. Важная оговорка сразу, чтобы не было сюрприза: РФ-IP убирает рекламу, но не снимает замедление — YouTube в РФ душат на уровне ТСПУ, и сам по себе российский адрес видео не ускорит. Чтобы не буферило, РФ-выход под YouTube должен обходить замедление (отдельный РФ-хост с zapret, разбор в статье про YouTube). Здесь — про гео и белизну, не про скорость.

Штрих 1: маршрут Google/YouTube на РФ-выход

В роутинге отправляем Google и YouTube на российский выход. На каскадном входе (серверный роутинг) это правило вида:

config.json
{ "type": "field", "domain": ["geosite:youtube"], "outboundTag": "exit-ru" },
{ "type": "field", "ip": ["geoip:google"],        "outboundTag": "exit-ru" }

geoip:google ловит и то, что резолвится в Google-CDN без явного домена. Всё остальное идёт своим маршрутом (заграничный выход/балансер). Это и есть «нода по сервису»: YouTube выходит российским, прочая заграница — как настроено.

Штрих 2: DNS без ECS

Даже с идеальным выходом можно спалиться на DNS. Если резолвер передаёт ECS (EDNS Client Subnet) с российской подсетью клиента, Google-CDN геолоцирует по ней мимо IP. Заворачиваем резолв Google/YouTube на не-ECS DoH прямо в конфиг ноды:

config.json
"dns": {
  "queryStrategy": "UseIPv4",
  "servers": [
    {
      "address": "https://1.1.1.1/dns-query",
      "domains": ["geosite:google", "geosite:youtube"]
    },
    "https://1.1.1.1/dns-query",
    "localhost"
  ]
}

Cloudflare 1.1.1.1 по умолчанию ECS наружу не шлёт — это его фишка приватности, ровно то, что нам нужно. queryStrategy: UseIPv4 заодно отсекает IPv6-ответы (см. штрих 3).

Штрих 3: глушим IPv6

Тихая утечка: если у клиента есть российский IPv6 и Google открывается по нему мимо туннеля — весь маскарад насмарку, регион утечёт по v6. Либо туннелируем v6, либо режем. Проще — резать, и на клиентском шаблоне, и запросом только в v4:

config.json
{ "type": "field", "ip": ["::/0"], "outboundTag": "block" }

Плюс queryStrategy: UseIPv4 в блоке DNS выше — резолвим только в IPv4, чтобы v6-адресов Google вообще не появлялось.

Штрих 4: QUIC в туннель, не мимо

Google почти весь на QUIC (UDP 443). Если QUIC полезет напрямую мимо туннеля — приехали, IP утечёт. Следим, чтобы UDP шёл в туннель. Либо, если QUIC мешает (видео залипает через высоколатентный канал), глушим его и Google уходит на TCP:

config.json
{ "type": "field", "network": "udp", "port": "443", "outboundTag": "block" }

Выбор зависит от канала: на нормальном РФ-выходе QUIC можно оставить в туннеле; на высоколатентном (CDN/каскад) — блокировать, чтобы видео не зависало в застрявшем QUIC.

Обязательное условие: sniffing

Чтобы правила по доменам (youtube.com и прочее) вообще срабатывали, на инбаунде должен быть включён sniffing — иначе роутинг и DNS не увидят имя *.google.com в шифрованном трафике:

config.json
"sniffing": { "enabled": true, "destOverride": ["http", "tls", "quic"] }

Без этого домены не распознаются, и весь роутинг по Google рассыпается — трафик уйдёт куда попало.

Проверка

  • Открой YouTube — регион RU, реклама почти отсутствует, рекомендации родные.
  • Проверь на 2ip.ru, каким видят твой IP при заходе на Google — должен быть российский (выход exit-ru), не заграничный.
  • Убедись, что v6 не течёт: test-ipv6.com не должен показывать российский v6-адрес мимо туннеля.

Границы приёма

Честно, чтобы не ждать чуда. Это сетевая часть, и она чинит гео-флаг и гео-рекламу по местоположению. Но есть то, что сетью не решается:

  • Старый аккаунт. Если Google-аккаунт годами жил из РФ (язык ru, российская карта, +7), страна прописана на самом аккаунте — российский выход её не перебьёт.
  • Локаль браузера. Accept-Language: ru-RU и московская таймзона перечёркивают любой российский-или-нет IP для антифрода. Это памятка клиенту, туннель в браузер не залезет.
  • Язык запросов. Вбиваешь русские запросы и смотришь русские ролики — Google честно отдаст русскую выдачу, плевать на IP.

То есть приём убирает рекламу и держит регион чистым на уровне сети, а остальное — уже про аккаунт и поведение. Механику гео-маршрутизации целиком (RU-direct, порядок правил, антифрод) разбирали в статье «Гео-разделение трафика: зачем маршрутизация».

Следующий гайд Запасной вход за час → Не понравилась статья или что-то непонятно? Напишите мне — помогу или поправлю. @notrealvpn →
Материал носит образовательный характер и посвящён инженерии сетевой инфраструктуры. Вы отвечаете за соблюдение законов своей юрисдикции.