Обхід блокування ВКонтакті, Однокласників на роутеріMikrotik, блог
Всі наведені нижче налаштування ви робите на свій страх і ризик. У будь-якому випадку рекомендую спочатку зробити резервну копію налаштувань роутера наступною командою:
Якщо щось піде не так, завжди можна буде відкотити стан роутера до попереднього, працездатного стану такою командою:
Далі у статті наводяться приклади скриптів і деякі з них можуть бути «згорнуті». Щоб побачити повний текст скрипта, необхідно натиснути кнопку +expand source в блоці з текстом лістингу.
Отже, перш за все нам потрібно визначитися з провайдером VPN. Є безліч безкоштовних ресурсів з надання безкоштовних шифрованих тунелів. Звичайно, не варто очікувати високої швидкості та хорошої стабільності від такого роду сервісів, але для перевірки згодиться. Ідеальний варіант, якщо у вас є інший роутер мікротік, підключений до іншого провайдера, який не блокує дані сайти, тоді можна пускати частину трафіку через нього.
Для нашого прикладу скористаємось безкоштовним VPN сервісом freevpn.me. Протоколи роботи з VPN сервісами бувають різні, це і L2TP/IPSEC, SSTP, IKEv2, OpenVPN. Сервіси надання шифрованих каналів можуть працювати різних протоколах. Буває, один сервіс може підтримувати кілька протоколів. Щоб не ускладнювати матеріал, підключення будемо налаштовувати протокол PPTP, т.к. він найпоширеніший і один із найпростіших у налаштуванні. Отже, відкриємо розділ «PPP» і додамо інтерфейс типу PPTP Client:

Для кращого сприйняття назвемо наш щойно створений PPTP-інтерфейс bypass_block. Для цього перейдемо на вкладку General та заповнимо поле Name:




У жодному разі не ставте прапорець Add Default Route, інакше весь трафік піде через щойно створений VPN.Статичний маршрут ми пропишемо пізніше вручну.
Все вищеперелічене можна зробити одним рядком у консолі. Консоль запускається командою New terminal в головному меню інтерфейсу, будь то winbox або веб-панель:

На самому початку ми заповнюємо масив myServers потрібними нам доменами (або тільки частинами назв цих доменів), ip яких потрібно зібрати. Тобто. ми можемо, наприклад, вказати як і повне FQDN ім'я: vk.com, так і лише частина назви сайту: vkontakte та скрипт таким чином виділить ip як для vkontakte.ru так і для vkontakte.com і т.д. Слід, щоправда, дуже акуратно ставити такі шаблони, т.к. чим коротшим буде шаблон, тим більше доменів потрапить під умову, збільшуючи таким чином навантаження на процесор роутера при виконанні скрипта і перенаправляючи все більше доменів через тунель шифрований.
Якщо скрипт, наприклад, сильно «вішує» домашній роутер зі слабким процесором, можемо збільшити час затримки перед кожною ітерацією циклу, змінивши число мілісекунд у цьому рядку:
Взагалі варто поспостерігати за навантаженням процесора при виконанні скрипта. Зробити це ми можемо двома способами. Перший, якщо для підключення до роутера використовується утиліта Winbox: додати індикатор завантаження процесора на панель, розміщеної у верхній частині програми, відразу під головним меню Winbox. Для цього потрібно клацнути правою кнопкою миші по панелі та вибрати пункт Add CPU:

Другий спосіб, більш інформативний, працює як і у разі підключення до роутера за допомогою утиліти Winbox, так і за допомогою веб-інтерфейсу webfig. Полягає він у наступному. Слід перейти в меню System, вибрати підпункт Resources, відкриється відповідне вікно, в якому буде видно завантаження процесора і далі, за бажанням, можемо натиснути кнопкуCPU, в результаті чого побачимо розшифровку завантаження процесора в розрізі кожного ядра, якщо цих ядер у процесора Mikrotik кілька:

Ну і звичайно можемо змінити на свій смак список доменів, перехід до яких повинен здійснюватися через шифрований канал, відкоригувавши цей список. Зауважте, що після останнього запису не повинно бути крапки з комою:
Потрібно зберегти цей скрипт у роутері, тому переходимо до підменю System головного меню та вибираємо підпункт Scripts:

Далі додаємо новий скрипт натиснувши на плюсик, вказуємо ім'я скрипта (наприклад, fetch_dns_ips) для більшої інформативності, і копіюємо в полі Source власне сам вихідний наведений вище і натискаємо ОК:

Або можемо додати його через консоль, скопіювавши в неї наступний текст і натиснувши Enter:
Далі потрібно вказати роутеру, щоб скрипт виконувався за розкладом, наприклад, раз на 2 хвилини. Для цього знову переходимо до підменю System і вибираємо підпункт Scheduler:

Тут додаємо нове завдання виконання команд за розкладом, натискаючи на синій плюсик. Вказуємо ім'я розкладу (наприклад, fetch_dns_ips), вказуємо в полі Interval 00:02:00, що означатиме запуск разів на 2 хвилини і в полі On Event прописуємо "/system script run fetch_dns_ips" і, звичайно, натискаємо ОК:

Те саме можна зробити через консоль таким чином:

Взагалі, у майбутньому варто було б збільшити інтервал запуску скрипта, щоб не завантажувати зайвий раз процесор роутера. Для цього потрібно змінити параметр Interval у створеному нами раніше розкладі на запуск, де у значенні параметра час вказується як годинник:хвилини: секунди.
Тепер нам потрібно промаркувати маршрути, якими буденамагатись піти роутер для досягнення заблокованого ресурсу, щоб потім ці маршрути завернути у шифрований канал. Для цього йдемо в меню IP, вибираємо підпункт Firewall, переходимо на вкладку Mangle та додаємо нове правило маркування:




Щоб позначені маршрути до заблокованих ресурсів пішли через VPN канал, нам потрібно прописати статичний маршрут. Робиться це через підменю IP та підпункт Route:



На вкладці General задаємо ланцюжок (Chain): srcnat і вказуємо вихідний інтерфейс (Out. Interface) наш інтерфейс PPTP-тунелю: bypass_block. На вкладці Action в однойменному параметрі потрібно вказати дію masquerade (маскарадінг):



Для нетерплячих наводжу спосіб налаштування через консоль, куди достатньо скопіювати весь наведений нижче код і натиснути Enter. Щоб відкрити консоль, потрібно зліва в меню натиснути на New Terminal:

Щоб простіше було скопіювати текст скрипту, можна в віконці з текстом скрипта натиснути view plain:

Якщо в настройках PPTP-інтерфейсу статус підключення відображається як підключений (Status: connected), але при цьому доступ до заблокованих ресурсів все одно обмежений, необхідно виконати наступний скрипт у консолі:
Якщо після цього сайти взагалі перестали відкриватися, потрібно виконати наступний скрипт:
Все ж таки, якщо щось пішло не так і все-все-все поламалося, то відновити стан роутера до виконання скрипту можна командою:

[для пошуковика: обхід блокування вконтакті, однокласників, однокласники, яндекс, яндекс картки, mikrotik, мікротик, вконтакте в Україні, однокласники]