|
| 1 | +--- |
| 2 | +title: Google IP Updater — установка на MikroTik |
| 3 | +tags: |
| 4 | + - mikrotik |
| 5 | + - routeros |
| 6 | + - firewall |
| 7 | + - google |
| 8 | + - youtube |
| 9 | + - script |
| 10 | +created: 2026-06-12 |
| 11 | +aliases: |
| 12 | + - google-ip-updater |
| 13 | + - VPN_ytb address-list |
| 14 | +--- |
| 15 | + |
| 16 | +# Google IP Updater — установка на MikroTik |
| 17 | + |
| 18 | +Скрипт [[google-ip-updater]] (`routeros/google-ip-updater.rsc`) скачивает официальный список IP-диапазонов Google (`goog.json`) и наполняет ими firewall `address-list` с именем **`VPN_ytb`**. Удобно для policy-routing/VPN на сервисы Google, включая YouTube. |
| 19 | + |
| 20 | +> [!info] Назначение |
| 21 | +> Список `VPN_ytb` сам по себе ничего не блокирует и не разрешает — он используется в правилах firewall/mangle (например, «заворачивать трафик к Google в VPN-маршрут»). Обновляется по расписанию, чтобы всегда соответствовать официальным диапазонам Google. |
| 22 | +
|
| 23 | +> [!warning] goog.json — это ВСЕ диапазоны Google |
| 24 | +> Файл `goog.json` содержит все публичные подсети Google, а не только YouTube. Отдельного официального списка «только YouTube» Google не публикует, поэтому маршрутизируемый набор будет шире, чем подразумевает имя `VPN_ytb`. |
| 25 | +
|
| 26 | +> [!warning] Требования |
| 27 | +> - **RouterOS 6.43+** или **7.x** (используется `/tool fetch ... as-value`). |
| 28 | +> - Доступ роутера в интернет (HTTPS к `gstatic.com`). |
| 29 | +> - Права скрипта: `read,write,test`. |
| 30 | +
|
| 31 | +--- |
| 32 | + |
| 33 | +## Способ 1. Разовый запуск через `import` |
| 34 | + |
| 35 | +> [!tip] Когда использовать |
| 36 | +> Быстро проверить работу или наполнить список один раз, без автообновления. |
| 37 | +
|
| 38 | +### 1. Загрузить файл на роутер |
| 39 | + |
| 40 | +Перетащить `google-ip-updater.rsc` в **Files** (Winbox/WebFig), или скачать прямо на роутер: |
| 41 | + |
| 42 | +```routeros |
| 43 | +/tool fetch url="https://raw.githubusercontent.com/gpas45/scripts/main/routeros/google-ip-updater.rsc" |
| 44 | +``` |
| 45 | + |
| 46 | +### 2. Выполнить импорт |
| 47 | + |
| 48 | +```routeros |
| 49 | +/import file-name=google-ip-updater.rsc |
| 50 | +``` |
| 51 | + |
| 52 | +После этого `address-list VPN_ytb` наполнится сразу. |
| 53 | + |
| 54 | +--- |
| 55 | + |
| 56 | +## Способ 2. System script + автозапуск (рекомендуется) |
| 57 | + |
| 58 | +> [!tip] Когда использовать |
| 59 | +> Постоянная установка с обновлением по расписанию. |
| 60 | +
|
| 61 | +### 1. Создать именованный скрипт |
| 62 | + |
| 63 | +```routeros |
| 64 | +/system script |
| 65 | +add name=google-ip-updater policy=read,write,test \ |
| 66 | + source=[/file get google-ip-updater.rsc contents] |
| 67 | +``` |
| 68 | + |
| 69 | +> [!note] |
| 70 | +> Альтернатива — вставить тело скрипта вручную в `source={ ... }`, если файл не загружали в Files. |
| 71 | +
|
| 72 | +### 2. Запустить вручную (проверка) |
| 73 | + |
| 74 | +```routeros |
| 75 | +/system script run google-ip-updater |
| 76 | +``` |
| 77 | + |
| 78 | +### 3. Поставить на автообновление (раз в 7 дней) |
| 79 | + |
| 80 | +```routeros |
| 81 | +/system scheduler |
| 82 | +add name=google-update interval=7d start-time=03:41:00 \ |
| 83 | + on-event="/system script run google-ip-updater" \ |
| 84 | + policy=read,write,test |
| 85 | +``` |
| 86 | + |
| 87 | +--- |
| 88 | + |
| 89 | +## Проверка результата |
| 90 | + |
| 91 | +```routeros |
| 92 | +/ip firewall address-list print where list=VPN_ytb |
| 93 | +/log print where message~"Google IP updater" |
| 94 | +``` |
| 95 | + |
| 96 | +> [!success] Ожидаемый результат |
| 97 | +> В списке появятся сети Google (`8.8.4.0/24`, `8.8.8.0/24`, `34.0.0.0/9`, …), а в логе — строка `Added N IPv4 prefixes`. |
| 98 | +
|
| 99 | +--- |
| 100 | + |
| 101 | +## Использование списка в firewall / policy-routing |
| 102 | + |
| 103 | +Пример: заворачивать трафик к Google в отдельную таблицу маршрутизации (VPN). |
| 104 | + |
| 105 | +```routeros |
| 106 | +/ip firewall mangle |
| 107 | +add chain=prerouting dst-address-list=VPN_ytb action=mark-routing \ |
| 108 | + new-routing-mark=to-vpn passthrough=no comment="route Google via VPN" |
| 109 | +``` |
| 110 | + |
| 111 | +Пример: просто разрешить трафик к Google. |
| 112 | + |
| 113 | +```routeros |
| 114 | +/ip firewall filter |
| 115 | +add chain=forward dst-address-list=VPN_ytb action=accept comment="allow Google" |
| 116 | +``` |
| 117 | + |
| 118 | +--- |
| 119 | + |
| 120 | +## Возможные проблемы |
| 121 | + |
| 122 | +> [!bug]- Google IP updater: Fetch failed |
| 123 | +> Скрипт уже использует `check-certificate=no`, поэтому TLS обычно не виноват. Проверь причину вручную: |
| 124 | +> ```routeros |
| 125 | +> /tool fetch url="https://www.gstatic.com/ipranges/goog.json" output=user as-value |
| 126 | +> ``` |
| 127 | +> - `could not resolve` → нет DNS: `/ip dns set servers=1.1.1.1,8.8.8.8` |
| 128 | +> - `host unreachable` / `timeout` → у роутера нет маршрута/интернета |
| 129 | +> - `tls` / `certificate` → импортируй CA или оставь `check-certificate=no` |
| 130 | +
|
| 131 | +> [!bug]- `as-value` не поддерживается |
| 132 | +> RouterOS до 6.43 не умеет `fetch output=user as-value`. Нужна версия 6.43+ либо файловый вариант скрипта. |
| 133 | +
|
| 134 | +> [!bug]- Список `VPN_ytb` пустой |
| 135 | +> Проверь интернет-доступ роутера и `policy` скрипта/расписания (`read,write`). Скрипт намеренно НЕ очищает старый список, если новый ответ пустой или в нём нет валидных префиксов. |
| 136 | +
|
| 137 | +--- |
| 138 | +
|
| 139 | +## Связанные заметки |
| 140 | +
|
| 141 | +- [[cloudflare-ip-updater]] — аналогичный апдейтер для CloudFlare |
| 142 | +- [[telegram-ip-updater]] — аналогичный апдейтер для Telegram |
| 143 | +- [[autorun]] — первоначальная настройка RouterOS |
| 144 | +- [[initial-setup]] — базовый firewall и interface-lists |
0 commit comments