Openwrt как редактировать файлы
Обновлено: 03.07.2024
Мой вопрос в том, что я хочу изменить исходный код программного обеспечения openwrt и снова перестроить.
Я пытаюсь отредактировать исходный код build_dir. Но хочу, чтобы я перестроил openwrt. Мой код обновлялся с помощью нового кода svn.
Кто-нибудь, как это сделать?
Написание кода и его синхронизация:
1) Клонирование официального репозитория linino от Arduino на вашей машине с помощью git (установите его с помощью sudo apt-get install git):
2) Сделайте свои собственные изменения в соответствующих файлах кода, Makefiles или что-то еще, что вам нужно изменить.
3) Всякий раз, когда вы хотите синхронизировать свою работу с последними изменениями из удаленной основной ветки в репозитории linino, вам нужно сначала извлечь изменения, то есть извлечь их, не объединяя их, а затем во второй раз объединить их, а затем разрешить конфликты если таковые имеются:
Предварительно: если вы создали локальный филиал со своими собственными изменениями, вернитесь в главную ветку, вам нужно проверить мастер: git checkout master a) получение последних изменений:
b) Объединение их с вашими изменениями в локальном репозитории (обычно называемом источником):
Примечание: вы можете сделать это в одной команде:
По сути, это выборка и слияние в одно и то же время, но важно понять процесс, используя сначала выборку. По опыту это может ввести в заблуждение для новичков, плюс это может привести к автогерметизации, если не указано явно иначе, что приведет к большей работе, чтобы отменить их.
4) Теперь вы готовы разрешать конфликты, если таковые имеются, для того, что вы можете использовать:
Это позволит вам разрешать конфликты с помощью графического инструмента, такого как tkdiff (инструмент слияния с двумя способами), или meld (инструмент слияния трех способов, diff ваши изменения, изменения с удаленного мастера и исходный файл).
Компиляция кода:
5) Откройте терминал в своем каталоге linino buildroot, убедитесь, что вы обновили конфигурацию, если вы добавили новые пакеты, а затем перекомпилируете образ, т.е.
Примечание. В качестве альтернативы вы можете перекомпилировать пакеты по одному. Вместо того, чтобы make простой make сделать:
Предварительный шаг: убедитесь, что вы скомпилировали инструментальную линейку linino, которая позволяет вам скомпилировать пакеты отдельно: cd trunk/make tools/install make toolchain/install make target/compile
Затем скомпилируйте свой пакет:
Или, альтернативно, вы можете быть более конкретным, выбрав любую цель из своего пакета. Makefile скажет, например, установить или скомпилировать или построить цели:
Наконец, перекомпилируйте целевую trunk/bin/yourArchitecture/packages индекса, общую для всех пакетов, которая позволит вам иметь каталог trunk/bin/yourArchitecture/packages каталоге trunk/bin/yourArchitecture/packages который содержит обновленный индекс пакетов, включая только что скомпилированный:
Проверяя, что все в порядке:
Теперь взгляните на trunk/bin/yourArchitecture/packages/Packages , сделайте grep, чтобы убедиться, что он указан в Packages (фактический индексный файл пакета) и обновлен:
Сокращение UCI значит Unified Configuration Interface и направлен на централизованную настройку OpenWrt. Настройка должна быть простой, понятной и документированной.
Многие программы имеют собственный конфигурационный файл, например /etc/network/interfaces или /etc/exports или /etc/dnsmasq.conf /etc/samba/samba.conf и иногда они используют несколько отличающуюся структуру синтаксиса. В OpenWRT вам не нужно мучиться с ними, мы только заменяем файлы настроек UCI!
Вам не нужно перезагружать свою систему для изменения настроек! Перейдите по ссылке command.line.utility:,чтобы знать как это делается. И, пожалуйста, не забывайте, что некоторые демоны уже имеются в системе, но по умолчанию они отключены! К примеру, демон cron отключён по умолчанию, следовательно, редактирование crontab не даст результата. Вам необходимо либо запустить демона при помощи /etc/init.d/cron start или включить его /etc/init.d/cron enable . Вы можете disable (отключить), stop (остановить) и restart (перезапустить) большинство демонов. Возможно документация по notuci.config поможет вам.
Общие принципы
Централизованная конфигурация OpenWrt находится в нескольких файлах, расположенных в каталоге /etc/config/ . Каждый файл относится к части системы, который он настраивает. Вы можете редактировать файлы конфигурации в текстовом редакторе или с помощью утилиты командной строки uci , или через различные интерфейсы программирования (например, Shell, Lua и C).
Конфигурационные Файлы
Синтакс Файлов
Конфигурационные файлы uci обычно содержат одно или более конфигурационных определений , которые также называются секциями, в которых содержатся одна или более опций определений, определяющих фактические значения.
Ниже приведен пример простого конфигурационного файла:
В строках начинающихся с дескриптора list определены опции с множественными значениями. Все определения list , которые используют одинаковое имя ( collection в нашем примере), будут объединены в один список значений в том порядке, в котором они были в конфигурационном файле. Наличие отступов в строчках с определениями option и list является соглашением для улучшения читаемости конфигурационного файла, но синтаксически не обязательно.Все приведенные ниже примеры являются синтаксически корректными в uci:
В противовес, следующий пример синтаксически неверен:
option example some value with space (кавычки отсутствуют вокруг значения)Важно знать, что идентификаторы UCI и имена конфигурационных файлов могут содержать только символы a-z , 0-9 и _ . Значения опций могут содержать любые символы (пока они в кавычках).
Утилита Командной Строки (UCI)
Использование awk и grep для парсинга конфигурационных файлов OpenWrt является избыточным, неумным и неэффективным. Вместо этого используйте утилиту uci для получения того что Вам нужно.
Ниже приведено описание, а также некоторые полезные примеры использования этой мощной утилиты. Запомните, друзья не позволяют друзьям парсить собственные конфигурационные файлы!
Использование
Команда | Цель | Описание |
---|---|---|
commit | [<config>] | Сохраняет изменения данного конфигурационного файла, либо, если он не указан, всех конфигурационных файлов в файловую систему. Все команды “uci set”, “uci add”, “uci rename” и “uci delete” сохраняют результаты во временное хранилище и сохраняются сразу скопом во флэш-память с помощью “uci commit”. Это не нужно делать после редактирования конфигурационного файла в текстовом редакторе, но необходимо для скриптов, GUI и других программ работающих непосредственно с UCI файлами. |
batch | - | Запускает многострочный UCI скрипт, который обычно выполнен в форме here-документа). |
export | [<config>] | Экспорт конфигурации в машино-читаемый формат. Используется внутренне для преобразования конфигурационных файлов в shell-скрипты. |
import | [<config>] | Импорт конфигурационных файлов в синтаксисе UCI. |
changes | [<config>] | Список зарезервированных (пер. но еще не сохраненных) изменений данного конфигурационного файла или, если файл не указан, всех конфигурационных файлов. |
add | <config> <section-type> | Добавить анонимную секцию типа section-type в данную конфигурацию. |
add_list | <config>.<section>.<option>=<string> | Добавить данную строку в существующий список опций. |
show | [<config>[.<section>[.<option>]]] | Отобразить данную опцию, секцию или конфигурацию в компактном виде. |
get | <config>.<section>[.<option>] | Получить значение данной опции или тип данной секции. |
set | <config>.<section>[.<option>]=<value> | Установить значение данной опции, или добавить новую секцию с типом равным указанному значению. |
delete | <config>[.<section[.<option>]] | Удалить данную секцию или опцию. |
rename | <config>.<section>[.<option>]=<name> | Переименовать данную секцию или опцию. |
revert | <config>[.<section>[.<option>]] | Отменить изменения данной опции, секции или конфигурационного файла. |
Примеры:
Нет необходимости рестарта всей системы
Все сделано. Перезагрузка не требуется.
Экспорт всей конфигурации
Отобразить в древовидном виде данную конфигурацию
Вся работа UCI сводится к редактированию файлов, расположенных в каталоге /etc/config/. Поэтому все команды uci можно свести к примитивной работе с текстовыми файлами с помощью джентельменского набора awk, cat, grep и редактора vi. Но такой подход является избыточным и мало эффективным по сравнению с предложенным разработчиками функционалом. Посудите сами: для получения детальной информации о параметрах текущего WAN соединении необходимо написать сложный парсер вывода команды ifconfig:
Список команд и опций uci доступен по вызову этой утилиты в консоли без параметров:
После конфигурирования необходимо сделать uci commit для сохранения изменений и перезапустить соответствующий сервис. Список сервисов (с соответствующими файлами папки /etc/config) приведен ниже:
Файл | Описание |
---|---|
Основные | |
/etc/config/dhcp | Конфигурация Dnsmasq и установки DHCP |
/etc/config/dropbear | Опции SSH сервера |
/etc/config/firewall | NAT, пакетная фильтрация, перенаправление портов, и т.д. |
/etc/config/network | Конфигурация коммутатора, интерфейсов и маршрутизатора |
/etc/config/system | Доп. системные настройки |
/etc/config/timeserver | Список серверов времени для rdate |
/etc/config/wireless | Настройки беспроводного подключения и сети wifi |
IPv6 | |
/etc/config/ahcpd | Ad-Hoc Configuration Protocol (AHCP) server and forwarder configuration |
/etc/config/aiccu | AICCU client configuration |
/etc/config/dhcp6c | WIDE-DHCPv6 client |
/etc/config/dhcp6s | WIDE-DHCPv6 server |
/etc/config/gw6c | GW6c client configuration |
/etc/config/radvd | Router Advertisement (radvd) configuration |
Другое | |
/etc/config/bbstored | Конфигурация сервера резервного копирования BoxBackup |
/etc/config/etherwake | Wake-on-Lan: etherwake |
/etc/config/fstab | Точки монтирования и раздел подкачки |
/etc/config/hd-idle | Another idle-daemon for attached hard drives |
/etc/config/httpd | Установки веб-серввера (Busybox httpd, устарело) |
/etc/config/luci | Основные настройки LuCI |
/etc/config/luci_statistics | Настройка пакета статистики |
/etc/config/mini_snmpd | Настройки SNMP демона mini_snmpd |
/etc/config/minidlna | Настройки MiniDLNA |
/etc/config/mjpg-streamer | Настройки потокового вещания для Linux-UVC совместимых веб-камер |
/etc/config/mountd | Настройки демона автомонтирования OpenWrt |
/etc/config/mroute | Конфигурационные файлы для маршрутов мульти-WAN |
/etc/config/multiwan | Конфигурация простого мульти-WAN |
/etc/config/ntpclient | Настройки NTP клиента синхронизации времени |
/etc/config/p910nd | Настройки для без-буферного демона печати p910nd.server |
/etc/config/pure-ftpd | Конфигурация сервера Pure-FTPd |
/etc/config/qos | Реализация QoS для upload |
/etc/config/racoon | Настройки сервиса IPsec racoon |
/etc/config/samba | Настройки сервера SAMBA для шаринга файлов и принтеров сетей Microsoft |
/etc/config/snmpd | Настройки SNMP демона SNMPd |
/etc/config/sshtunnel | Установки пакета sshtunnel |
/etc/config/stund | Настройки сервера STUN |
/etc/config/transmission | Настройки BitTorrent |
/etc/config/uhttpd | Настройки веб-сервера (uHTTPd) |
/etc/config/upnpd | Настройки UPnP сервера miniupnpd |
/etc/config/users | База данных пользователей для различных сервисов |
/etc/config/ushare | Настройки сервера UPnP uShare |
/etc/config/vblade | vblade userspace AOE target |
/etc/config/vnstat | vnstat downloader settings |
/etc/config/wifitoggle | Скрипт для вкл. WiFi кнопкой |
/etc/config/wol | Wake-on-Lan: wol |
/etc/config/wshaper | wondershaper qos script settings |
/etc/config/znc | ZNC bouncer configuration |
Изменение системного имени
На данный момент случайно заблокированных сайтов уже стало сильно меньше, чем пару лет назад, но мне так понравилось не думать об этих блокировках вообще, что я и дальше буду их обходить. Пожалуй, всегда. Не питаю никакого оптимизма по поводу людей, которые управляют этим рубильником, и не хочу зависеть от их спонтанных капризов.
Так как большая часть моего трафика всё-таки ходит к незаблокированной части интернета, то логично пускать через VPN лишь тот трафик, который в этом нуждается. Ну нет ведь смысла гонять через VPN просмотр видео на YouTube или какую-нибудь игру? В итоге получится просто более медленный доступ, а профита никакого.
Стоит отметить, что если вам нужен обход блокировок только на одном устройстве, там вам намного проще будет настроить VPN именно на нём. У многих провайдеров VPN есть программы-клиенты, которые в несколько кликов по красивым кнопкам настроят вам всё, что нужно — просто погуглите, сравните цены и условия. Ещё можете посмотреть в сторону таких бесплатных проектов, как АнтиЗапрет.
Опишу свой процесс настройки роутера на OpenWRT с точечным обходом блокировок. Мне уже приходилось делать это пару раз (то переезд со сменой провайдера, то смена роутера), и вот на третий раз я решил наконец задокументировать этот процесс, чтобы в следующие разы было легче. Может и ещё кому пригодится.
Роутер и прошивка
OpenWRT — это опенсорсный проект, который разрабатывает прошивки для роутеров на основе Linux. В той или иной мере, пожалуй, поддерживаются все существующие девайсы. Внутри есть даже свой собственный пакетный менеджер. Так как роутер с OpenWRT — это почти настоящая линукс-машина, то открывается огромное поле для различных извращений — файловые шары, торрент-клиенты, блокировка рекламы на уровне роутера, VPN — да что угодно.
Мой нынешний роутер — это Xiaomi Mi WiFi Router 3G. Выбрал его, потому что в нём достаточно мощи, чтобы на нём хорошо работала OpenWRT. Да и вообще, Mir3G — это, похоже, один из самых популярных девайсов в тусовке людей, которые занимаются дрессировкой роутеров, так что в сети по нему уже есть много мануалов и обсуждений на форумах. Если захотите купить такой же, то будьте аккуратны с конкретной моделью — их две под одним названием, а хорошая только та, у которой есть порт USB3. Такой роутер должно быть несложно купить на Авито или других досках объявлений.
У меня на данный момент установлена почти последняя версия прошивки:
Прошивка OpenWRT и базовая настройка роутера выходит за рамки этой статьи. Поищите мануалы для вашего роутера. Далее предполагается, что у вас уже есть роутер с OpenWRT, подключенный к интернету, и к нему настроен доступ по SSH.
Блокировки
Грубо говоря, существует два типа блокировок:
Нам нужно победить оба. Разберёмся с каждым из них по порядку.
Шаг 1. Шифрованный DNS
DNS (Domain Name System) — это распределенная система (нет, это не сеть магазинов), состоящая из множества серверов по всему миру, которая позволяет вашему компьютеру преобразовать человекочитаемое имя сайта в машиночитаемый IP-адрес, например, из github.com получить 140.82.121.3 . Этот процесс называется "разрешением" или "резолвингом" доменного имени.
Блокировка по доменным именам зачастую реализуется провайдером следующим образом: ваш роутер по умолчанию использует DNS-сервер, который контролируется провайдером и для заблокированных доменных имён возвращает специальный адрес сайта-заглушки. Именно это происходит, когда вы видите в браузере "доступ к ресурсу ограничен в соответствии со 149-ФЗ".
Кажется, что решение очевидно — просто не пользоваться DNS-сервером провайдера, а использовать, например, Google DNS, IP-адреса которого уже стоит знать наизусть как считалку — 8.8.8.8, 8.8.4.4 . Раньше это действительно работало, но сегодня провайдеры уже не дадут вам так просто себя обмануть.
Поскольку DNS — это очень старый протокол, в котором никак не было предусмотрено шифрование от слова "вообще", у провайдеров есть возможность перехватывать ваши запросы и подменять ответы, вставляя свой сайт-заглушку, даже если запрос шёл, например, к Google DNS. Именно этим они и занимаются. По сути, провайдер проводит против вас атаку DNS hijacking.
Вот как это работает, если всё хорошо. В таком сценарии можно даже не заметить этого "человека посередине" в лице вашего провайдера:
А вот так это работает, когда всё плохо. Провайдер наверняка даже не отправляет запрос к DNS-серверу, которому он предназначался, а просто сразу же возвращает ответ, подставляя адрес своей заглушки:
Но по-настоящему эффективное решение есть. Если провайдер не сможет увидеть, к какому домену происходит обращение, то не сможет и подменить ответ. А ещё лучше, если он вообще не будет знать, что происходит резолвинг имени. Этого можно достичь шифрованием.
Обновим список пакетов. Эту команду нужно выполнять после каждой перезагрузки роутера перед установкой пакетов:
Чтобы плагин для LuCI заработал, нужно сделать выполнить вот такую команду:
Готово! Теперь на компьютере, подключенном к роутеру, можно проверить как это работает:
Обратите внимание, что адреса возвращаются разные: до настройки DoH — неправильный, это результат подмены адресов провайдером, а после — правильный. Можно считать это маленькой победой!
Сам по себе обход блокировок по DNS вряд ли даст ожидаемый эффект, потому что, как правило, в довесок к доменному имени, ресурс блокируется еще и по IP-адресам — видимо, для надежности. Это следующий тип блокировок, которые нужно победить.
Стоит упомянуть про побочные эффекты от такой настройки — могут стать недоступными различные внутренние ресурсы провайдера. Например, когда у меня кончается интернет и я забываю его оплатить, провайдер просто не может меня переадресовать на страницу, куда он обычно направляет своих забывчивых абонентов. Для меня выглядит это всё так, будто интернет просто пропал, без каких-либо объяснений. Я даже первый раз из-за этого чуть не поругался с поддержкой, а оказалось, что это я сам дурак. Что ж, просто приходится платить заранее.
Если нравится статья, то подпишитесь на уведомления о новых постах в блоге, чтобы ничего не пропустить! А ещё читайте другие мои посты!
Шаг 2. Настройка VPN WireGuard
Для того, чтобы обходить блокировки по IP-адресам, придётся настроить VPN — другого способа нет. VPN "спрячёт" от провайдера ваши IP-пакеты так, что он не будет знать куда именно они направляются и что в себе содержат. В качестве протокола предлагаю использовать WireGuard — легковесный VPN-протокол, который к тому же довольно легко настраивать.
Всё описанное дальше вдохновлено и по сути является пересказом вот этой замечательной статьи на Хабре с некоторыми (минимальными) дополнениями от меня.
VPN — это клиент-серверный протокол. Наш роутер будет клиентом, но также нам обязательно нужен сервер. Можно либо поднять свой VPN-сервер самостоятельно (смотрите инструкцию в статье по ссылке выше, это не сложно), либо оформить подписку на какой-нибудь готовый VPN-сервис. Я пробовал оба варианта, но поддерживать свой VPN-сервер оказалось достаточно трудозатратно, и это тоже, как ни странно, стоит денег. Сложнее всего найти хостинг для своего VPN с незаруиненной репутацией. Проблема, с которой я столкнулся, заключалась в том, что все дешевые хостинги уже имеют плохую репутацию (спасибо вам, господа спамеры), и некоторые ресурсы, типа Пикабу (который тоже, как выяснилось, немножко заблокирован), сразу же заранее отвечают ошибкой 403. Намного проще купить готовый VPN, и пусть лучше кто-то другой за меня беспокоится о том, чтобы мне были доступны все нужные мне сайты.
В последнее время появляется очень много VPN-сервисов, которые работают по протоколу WireGuard — это нынче горячая тема. Недавно поддержка WireGuard была добавлена в основной состав ядра Linux. Погуглите, выбор сервисов действительно есть. Сейчас я пользуюсь RedShieldVPN, и меня пока что всё устраивает.
Бонус для читателей: при регистрации по этой ссылке вам подарят месяц бесплатного VPN.
Дальше буду описывать процесс для RedShieldVPN, но, думаю, для других подобных сервисов процесс должен быть похожим.
Переходим в раздел WireGuard, авторизуемся, выбираем страну и скачиваем конфиг. Я обычно выбираю какую-нибудь европейскую страну, чтобы пинг был приемлемым. В этот раз возьму Финляндию.
Вот примерно такой файл конфигурации скачался (ключи я заменил):
Переключимся на роутер и установим там нужную зависимость:
Дальше нужно настроить сеть. Это происходит в файле /etc/config/network . Открываем его при помощи vi (если не умеете пользоваться этим редактором, то лучше предварительно почитайте что-нибудь для подготовки психики) и дописываем в конец две секции вот такого содержания:
Приватный и публичный ключи замените соответствующими значениями из конфига. Поле list addresses заполняется IPv4-адресом из строчки Address в конфиге, а IPv6 адрес мы просто игнорируем — позже станет понятно почему. Поле Endpoint из конфига WireGuard распадается, соответственно, в поля endpoint_host и endpoint_port в конфиге OpenWRT. Остальные поля статичные.
Перезапустим сеть на роутере:
Если команда wg show выводит что-то подобное, то всё идёт хорошо.
Шаг 3. Скрипт для сбора списков заблокированных адресов
Это возможно благодаря крутейшему сервису antifilter.download, который обрабатывает выгрузки Роскомнадзора и отдает их в виде списков IP-адресов в машиночитаемых форматах. Мы настроим периодическую выгрузку списков заблокированных адресов с antifilter.download, чтобы всегда иметь актуальную информацию о блокировках. По моему опыту обновлять этот список раз в сутки (например, ночью) вполне достаточно.
Кроме того, нам нужно настроить файрволл роутера, чтобы он помечал пакеты, которые направляются к заблокированным адресам, специальным маркером. Такие маркированные пакеты должны маршрутизироваться роутером через VPN.
Начнём со скрипта, который реализует эту логику по обновлению списков заблокированных адресов.
Создадим файл /etc/init.d/hirkn со скриптом следующего содержания:
Этот скрипт скачивает два списка заблокированных адресов — один в виде сетей (иногда РКН блокирует адреса целыми подсетями), другой — обобщенный список отдельных заблокированных адресов. За счёт обобщения в небольшие подсети он содержит не миллионы строк, а всего лишь что-то около 15 тысяч. Нам нужны оба списка, они не пересекаются между собой. Файлы сохраняются в каталог /tmp , который в OpenWRT хранится в оперативной памяти — это должно работать быстро. В конце скрипт перезапускает файлволл. Настройка файлволла будет происходит позже.
Добавим этому скрипту права на выполнение:
Добавим скрипт в "автозапуск", чтобы он выполнялся при включении роутера после всех остальных скриптов:
Через cron запланируем выполнение этого скрипта раз в сутки:
В открывшемся редакторе нужно добавить на новой строке:
На crontab.guru можно посмотреть объяснение этой строчки.
Включим cron , потому что по умолчанию в OpenWRT он выключен:
Убедимся, что скрипт работает.
Если файлы со списками заблокированных адресов появились, то всё ок:
Шаг 4. Дальнейшая настройка
Теперь осталось настроить роутер так, чтобы он правильно маршрутизировал пакеты через VPN-туннель.
Создадим таблицу маршрутизации для VPN, добавив в файл /etc/iproute2/rt_tables строчку следующего вида:
Добавим дефолтный маршрут для VPN через туннельный интерфейс:
Чтобы сделать это изменение постоянным, чтобы оно переживало перезагрузки роутера, создадим файл /etc/hotplug.d/iface/30-rknroute с вот таким содержимым:
В файл /etc/config/network , который мы уже редактировали в процессе настройки WireGuard, добавим правило, которое будет перенаправлять маркированные пакеты в таблицу маршрутизации VPN:
Теперь приступим к настройке файрволла. Это самая важная часть логики, которая просматривает списки заблокированных адресов, и маркирует пакеты. В файл /etc/config/firewall допишем несколько абзацев:
Первый из них настраивает зону для VPN — из неё разрешён лишь выход пакетов и включён маскарадинг.
Второй абзац разрешает переход из зоны lan , где по умолчанию находятся все устройства, подключенные к роутеру, в зону для VPN.
Третий и четвертый абзацы заставляют файрволл загрузить файлы со списками заблокированных адресов и распихать по хеш-таблицам в памяти. Как известно, поиск по хеш-таблице происходит за константное время, так что роутер сможет эффективно определять направляется ли пакет к заблокированному адресу или к обычному.
Пятый и шестой абзацы отвечают за маркировку пакетов: "если пакет направляется на заблокированный адрес, то добавим ему пометку 0x1 ".
И запустим наш скрипт:
После этого трафик к заблокированным сайтам должен побежать через VPN. Если нет, то попробуйте перезагрузить роутер.
Шаг 5. Отключаем IPv6
Этот шаг мой самый нелюбимый, потому что я за всё новое и против всего старого. По моему глубокому убеждению IPv4 уже давно должен умереть и быть вытеснен шестой версией протокола. К сожалению, дела у IPv6 пока идут не так гладко, как хотелось бы (сейчас он занимает всего около 30% процентов трафика).
Проблема в том, что antifilter.download выдаёт только заблокированные IPv4 адреса. Это значит, что наш обход блокировок не будет работать по IPv6. Если разрешить вашему роутеру работать по IPv6, то многие ваши устройства предпочтут открывать сайты по IPv6 либо напарываясь на страницы с блокировками от провайдеров, либо просто получая ошибки подключения по таймауту.
Отключаем IPv6 (команды взяты отсюда):
После этого может потребоваться ещё одна перезагрузка роутера, чтобы он перестал раздавать вновь подключенным устройствам IPv6-адреса.
Вот как-то так можно при помощи несложных (ладно, сложных) манипуляций настроить свой роутер на точечный обход блокировок. Все незаблокированные сайты работают как обычно, а заблокированные — через VPN. С такой конфигурацией можно полностью забыть про мелкие пакости от Роскомнадзора и начать, наконец, жить :)
Читайте также: