Сервер smb keenetic что это
Перейти к содержимому

Сервер smb keenetic что это

  • автор:

Работа с USB-накопителями на роутерах Keenetic

Почти половина текущих моделей роутеров Keenetic оборудована портами USB, которые могут быть использованы для подключения внешних накопителей, принтеров и МФУ, сотовых модемов, фирменных модулей расширения. В этой статье рассмотрим возможности по работе с дисками на примере роутера Keenetic Ultra, в котором есть один порт USB 3.0 и один порт USB 2.0. Из актуальной линейки аналогичные возможности имеет только Keenetic Giga и все описанное далее можно полностью применить к этой модели. Другие устройства могут похвастаться только портами версии 2.0, что скажется на скорости доступа, однако программные возможности у всех моделей одинаковы. Кроме того, надо учитывать, что из них только Keenetic Viva имеет гигабитные проводные порты, так что фактически с точки зрения скорости есть три группы: две топовые модели с гигабитной сетью и USB 3.0, одна модель среднего уровня с гигабитной сетью и USB 2.0, остальные устройства с сетью 100 Мбит/с и USB 2.0. При этом последние могут иметь двухдиапазонный радиоблок, который при работе с быстрыми клиентами и 802.11ac может обеспечить более эффективное использование возможностей USB 2.0. В любом случае, если требуется высокая скорость работы с файлами и большой объем хранилища – лучше выбрать одну из двух топовых моделей. Остальные варианты будет менее производительны в данной задаче. Впрочем, и здесь, как будет показано далее, не все однозначно.

Возможности и настройки

Прошивка роутеров Keenetic имеет модульную структуру и для работы с внешними дисками может потребоваться добавление некоторых пакетов. В частности, в них вынесены некоторые файловые системы, серверы (протоколы) и дополнительные сервисы. На топовых роутерах установлен чип флешпамяти достаточно большой емкости, так что проблем с добавлением модулей не будет. Но на более доступных устройствах не стоит ставить сразу все галочки – места может и не хватить.

На момент подготовки статьи была доступна релизная версия прошивки 3.4.12. О ней и пойдет далее речь. Ограничений на максимальный объем дисков со стороны программного обеспечения нет. При этом допускается иметь на диске несколько разделов, а список поддерживаемых файловых систем включает в себя NTFS, FAT32, ext2/3/4 и HFS+. Ожидается также появление поддержки exFAT (уже есть в текущей beta-версии прошивки). При необходимости можно использовать подключение и через хабы, не забывая, что в этом случае желательно иметь внешнее питание у хаба и/или дисков. В общем случае можно «на лету» подключать и отключать накопители, предусмотрена опция безопасного извлечения через Web-интерфейс или нажатием кнопки на корпусе роутера. При этом система «запоминает» ранее подключенные диски и их настройки, а настройки прав доступа записаны на сами диски. Кроме того, в зависимости от исполнения внешнего диска, поддерживается режим сна при отсутствии активности.

Наиболее распространенным протоколом сетевого доступа к файлам в локальных сетях для операционных систем Microsoft является SMB. Большинство других ОС, включая Linux и macOS, также могут работать с ним. При желании, можно настроить работу по этому протоколу и через Интернет, но по многим причинам это очень не рекомендуется делать (как минимум без VPN). Он оперирует такими понятиями как сервер, общая папка, аккаунт пользователя и права доступа. В роутере реализован сервер с поддержкой версий протокола от 1 до 3 включительно. Кроме того, роутер может выступать в роли мастер-браузера сети, так что будет работать сетевое обнаружение и доступ по имени хоста.

В настройках протокола Keenetic можно указать сетевое имя роутера (сервера), имя рабочей группы (в большинстве случаев нет смысла его изменять), а также настроить общие папки. По умолчанию, для каждого раздела каждого подключенного накопителя будет создан отдельный сетевой ресурс. В качестве имени будет выступать имя тома, но пользователь может изменить его по своему усмотрению.

Сначала необходимо разрешить использование сервиса для нужных пользователей, а потом для каждого общего ресурса указать права доступа (напомним, что в роутерах Keenetic можно создать несколько аккаунтов для разных пользователей и предоставить им права на файлы и сервисы). Удобно сделать их совпадающими с аккаунтами Windows, так что б не пришлось при подключении к серверу вводить пароль. Но возможен и полный анонимный доступ «всем все можно». При установленном компоненте «Контроль доступа к папкам» возможно гибкое указание прав доступа для папок верхнего уровня (разделов) – можно выбирать для каждого пользователя из «нет доступа», «только чтение» и «чтение и запись».

Кроме того, есть возможность создать новые общие ресурсы, в роли которых будут выступать поддиректории накопителя. Это может быть полезно в случае использования диска с одним разделом, на котором необходимо разместить контент разного типа или с разными правами доступа. При этом основной ресурс также остается в доступе по сети (права продолжают работать в его директориях), что не очень удобно. Возможно, стоило предусмотреть его скрытие или отключение.

Второй по распространенности протокол доступа к файлам – это FTP. Обычно он используется для обеспечения удаленного обмена файлами через Интернет, но бывают ситуации, когда с ним удобно работать по локальной сети. В настройках сервера (страница «Личное облако») предусмотрены изменение номера порта, разрешение доступа из Интернет, выбор домашнего каталога по умолчанию, включение анонимного доступа.

Что касается прав, то здесь можно дать разрешение пользователям работать с данным сервером, указать тип доступа к ресурсам верхнего уровня, поменять путь на домашнюю папку (при входе пользователя ему будет доступна только она). В частности, это позволяет ограничить доступ удаленных пользователей единственной папкой без возможности подняться на верхний уровень. Заметим, что при доступе по FTP работают и установленные как описано выше права на поддиректории. Например, пользователь должен иметь доступ к настроенной корневой папке (общей или персональной).

Базовый протокол FTP не защищен от перехвата – вся информация, включая файлы, имена и пароли пользователей, передается через Интернет в открытом виде, что явно небезопасно. Из нескольких возможных реализаций защищенных подключений, производитель выбрал протокол SFTP, который использует аналогичные SSH технологии для защиты файлов и данных аккаунтов. Его настройки в Keenetic полностью аналогичны описанным выше для FTP. В частности, можно изменить номер порта, разрешить доступ через Интернет, выбрать корневую папку. Права пользователей здесь также работают.

Еще одним протоколом доступа к файлам является WebDAV. Несмотря на то, что он появился достаточно давно и реализован во множестве операционных систем и программ, назвать его широко распространенным, пожалуй, нельзя. Одним из плюсов является его работа на базе https (реализация в Keenetic использует только этот протокол), который обычно «проходит везде» и является защищенным, а также возможность монтирования в ОС семейства Windows обычным способом «с буквой» для работы с документами без необходимости предварительной загрузки всего файла. Хотя, конечно, работа через Интернет даже на быстрых каналах в большинстве случаев не обеспечивает такого «пользовательского опыта», как работа с локальным диском, пусть даже самым медленным.

Настроек здесь меньше – порт изменить нельзя, можно выбрать домашний каталог и включить опцию игнорирования прав доступа пользователей.

Реализация WebDAV в Keenetic интересна еще и тем, что может обеспечить доступ к файлам через Интернет с серым адресом от провайдера при использовании сервиса KeenDNS. При этом также применяется защищенное подключение с сертификатом, но вот скорость будет зависеть не только от ваших Интернет-каналов, но и от текущей нагрузки на облачные сервера компании.

Последний вариант, который скорее относится к «на всякий экстренный случай», – это работа с файлами на накопителях прямо из Web-интерфейса роутера. Выбор операций здесь небольшой, но вполне достаточный – создание папки, загрузка и скачивание файла, установка прав доступа, удаление папки или файла.

Отметим также поддержку роутером протокола AFP, который применяется с продуктами Apple. Его использование также позволяет реализовать хранение на роутере резервных копий Time Machine. В данной статье этот вариант подробно не рассматривается.

Дополнительные сервисы

У многих подобных решений также присутствуют два дополнительных сервиса – система автономной загрузки файлов и сервер DLNA. Первый позволяет без участия компьютера загружать файлы роутером на подключенный к нему накопитель, а второй – раздавать медиаконтент на совместимые плееры, в роли которых обычно выступают «немного умные» телевизоры с подключением к локальной сети. Не обошла стороной эта тенденция и продукты Keenetic.

Для загрузки файлов здесь используется известная программа transmission, собранная под платформу роутера. После установки и включения модуля можно его настроить – выбрать порт подключения пиров, порт удаленного управления, разрешить управление через Интернет и конечно выбрать папку на накопителе для хранения файлов.

Дополнительно предусмотрен выбор пользователей, которым будет разрешено управлять загрузками. Все остальные настройки клиента осуществляются через его Web-интерфейс.

Поскольку загрузка файлов может создавать значительную нагрузку на устройство и мешать выполнению основной функции доступа клиентов к сети Интернет, в модуле жестко прописаны ограничения на максимальные скорости работы в зависимости от устройства – до 3 МБ/с для младших моделей до 15 МБ/с для старших.

Кроме Web-интерфейса, ссылка на который есть в интерфейсе роутера, можно использовать для удаленного управления и соответствующие утилиты для ПК и мобильных устройств.

Что касается производительности, то на десятке популярных (от сотен до тысяч пиров) задач большого объема (от 1 до 30 ГБ) на роутере Keenetic Ultra с жестким диском с файловой системой NTFS мы видели цифры на уровне 10 МБ/с при загрузке процессора роутера около 30%. Данная проверка проводилась на канале 200 Мбит/с с серым внешним адресом. Из настроек клиента – увеличение числа активных задач до 10 и пиров на задачу до 200. При этом можно было комфортно пользоваться доступом в Интернет, а тест сайта www.speedtest.net показывал более 100 Мбит/с и пинг 3 мс.

Сервер DLNA, построенный на базе программы miniDLNA, позволяет транслировать различные медиафайлы (видео, музыку, фотографии) на совместимые устройства. Обычно в роли последних выступают встроенные в телевизоры, ресиверы и другие устройства клиенты. С распространением потоковых сервисов и устройств со встроенным Android использование протокола DLNA теряет актуальность, но пока еще он остается востребованным в определенном сегменте, особенно если строго следить за используемыми форматами файлов. Основное неудобство работы с этим протоколом состоит в том, что многие встроенные в телевизоры клиенты реализованы «для галочки» и мало подходят под современные требования. И изменить это пользователь может только установкой дополнительного медиаплеера, который, в большинстве случаев, может прекрасно работать с USB диском на роутере по тому же SMB и не нужно будет связываться с DLNA.

В настройках модуля пользователь выбирает имя для сервера (их может быть в сети несколько, например на сетевом накопителе), сетевые сегменты в которых он будет доступен (можно разрешить доступ и гостям), папки на внешних дисках для индексации и тип файлов в них, папку для хранения базы сервера. Через консоль роутера можно изменить вариант сортировки медиафайлов, если используемый по умолчанию неудобен при просмотре с ваших клиентов. Индексация проходит в автоматическом режиме при изменении содержимого папок, но можно и запустить ее принудительно.

Список индексируемых форматов включает в себя фотографии в jpeg, аудиофайлы в mp3, aac, m4a, flac, видео в avi, mp4, mkv, m2ts и некоторые другие менее распространенные. Как-то особенно тестировать этот сервис смысла нет, поскольку, как мы говорили выше, результат преимущественно определяется используемым клиентом, а все они очень разные. Так что мы только попробовали доступ с ПК через плеер VLC.

Отметим, что компания рекомендует при активном использовании системы загрузки файлов и медиасервера настроить на подключенном накопителе раздел подкачки.

Еще один сервис, который, пожалуй, выходит за рамки интереса со стороны массового пользователя, – использование менеджера пакетов OPKG на базе каталога Entware, который содержит более 2500 пакетов. Здесь уже открываются практически безграничные возможности по добавлению новых функций (с учетом аппаратных ресурсов платформы).

Производительность

Тестирование проводилось с использованием в роли внешнего накопителя жесткого диска Seagate Mobile HDD на 1 ТБ и SSD Transcend на 480 ГБ с адаптерами для подключения к USB 3.0. Для файловой системы мы решили ограничиться NTFS, поскольку она наиболее распространена у домашних пользователей с Windows.

Для оценки скорости были выбраны два набора файлов – пять по 1 ГБ (сценарий «фильмы») и 200 по 5 МБ (сценарий «фотографии» или «музыка»). Для автоматизации тестов SMB и WebDAV применялась утилита robocopy, которая в параметрах принимает пути на папку с исходными файлами и целевую папку и выдает результат непосредственно скорости проведения операции. Для FTP и SFTP был взят известный клиент FileZilla, который был дополнительно настроен на пять одновременных загрузок. В данном случае измерялось время на проведение всех операций и по нему вычислялась скорость с учетом известного объема переданных файлов. Скорости накопителей при прямом подключении к компьютеру по USB приводятся на следующем графике.

Тестирование проводилось как в пределах локальной сети, так и через Интернет (WAN-порт в режиме IPoE). В первом случае наиболее удобно использовать протокол SMB (стандартный протокол для ОС Windows, также реализованный и на других операционных системах, включая Linux, macOS, Android). Три других варианта – FTP, SFP и WebDAV – более востребованы для удаленного доступа через Интернет. Но это конечно именно рекомендации и по факту все протоколы можно использовать и «внутри» и «снаружи». Вопрос в задачах и их особенностях. Например, внутри локальной сети FTP может быть интересен с точки зрения автоматизации различных операций, например, резервного копирования или синхронизации или работы с IP-камерами.

На первом графике приводятся результаты для протокола SMB. Как мы видим, при работе с файлами большого объема в локальной сети скорость чтения может превышать 100 МБ/с, а запись осуществляется на скорости в 60-70 МБ/с. Это вполне сравнимо с возможностями младших моделей сетевых накопителей от известных брендов. Но, конечно, напрямую данные реализации сравнивать не стоит – все-таки решаемые задачи у роутера и NAS существенно отличаются. Если файлы имеют меньший объем, то скорость работы с ними снижается. С SSD это не очень заметно, а вот жесткому диску приходится заметно труднее.

Что касается работы через порт WAN, то по скорости записи отличия незначительны, а вот чтение неожиданно оказывается раза в два медленнее. Впрочем, это все-таки искусственная ситуация. Для удаленного доступа лучше использовать другие протоколы.

FTP в целом похож по скорости работы на SMB, а на операциях записи даже иногда оказывается немного быстрее. Но серьезно рассматривать этот незащищенный от перехвата вариант мы бы не рекомендовали.

Протокол SFTP обеспечивает хорошую защиту при передаче данных через Интернет, но и требует повышенных вычислительных ресурсов (процессор роутера во время его использования был занят на 100%). В результате даже самая мощная из текущей линейки решений Keenetic модель обеспечивает не более 8 МБ/с. И тут уже не важен ни объем файлов, ни тип накопителя. Все упирается в вычислительные ресурсы процессора роутера.

В отличие от FTP и SFTP, протокол WebDAV позволяет смонтировать удаленную общую папку, так что для пользователя она формально не будет отличаться от локального диска – можно будет непосредственно открывать с нее файлы в любых программах и записывать новые или отредактированные. Тогда как FTP и SFTP обычно требуют сначала скачать файл на локальный накопитель и только потом его открыть. Но все-таки реальное удобство определяется и отзывчивостью, которая связана со скоростью. И тут все еще более грустно, чем у SFTP – максимальные полученные значения не превышают 4 МБ/с. А при записи файлов небольшого размера на HDD они еще в два раза ниже. С другой стороны, если говорить о прямой работе с документами небольших размеров, это может быть не очень заметно.

Справедливости ради отметим, что скорость работы WebDAV в данном случае определяется и используемым клиентом – встроенным в Windows 10 модулем. При этом никакого простого контроля за параметрами подключения здесь, к сожалению, нет. Разработчики в качестве одного из сценариев предлагают удаленный доступ с мобильных устройств, например, для просмотра видео или резервного копирования фотографий. В частности, упомянутое в статье базы знаний приложение «Cx проводник» обеспечивает скорость более 6 МБ/с. Если же воспользоваться доступом с компьютера через браузер Mozilla FireFox (будет работать только скачивание), то скорость составить более 8 МБ/с.

Заключение

Практическое знакомство с сервисами работы с USB-накопителям в роутерах Keenetic произвело хорошее впечатление. Они существенно удобнее и интереснее по возможностям, чем реализации других производителей. В частности, поддерживается большинство современных файловых систем, гибко настраиваются пользователи и права, есть несколько распространенных протоколов, включая варианты защищенного удаленного доступа, можно работать с файлами прямо через Web-интерфейс роутера, а также через серый адрес от провайдера. При этом все заявленное действительно работает, а не сделано «для галочки», что, конечно, приятно.

В то же время, нельзя не заметить значительное отставание при сравнении с возможностями даже младших сетевых накопителей. По крайней мере, если говорить о моделях ведущих брендов. Похоже, что компания и в данном случае внимательно следит за своими потребителями, предлагая им именно то, чем они действительно будут пользоваться. Тогда как производители сетевых накопителей вынуждены конкурировать между собой, что приводит, в том числе, к появлению у них сотен дополнительных программных пакетов, разобраться с которыми не всем под силу.

Впрочем, здесь надо учитывать прежде всего основные решаемые устройствами задачи, а также доступные аппаратные ресурсы. С учетом этого, реализация сервисов в прошивках Keenetic позволяет реализовать множество интересных и полезных сценариев, включая резервное копирование, работу с общими документами, загрузку файлов, организацию медиабиблиотеки, трансляцию мультимедиа, хранение записей с видеокамер и так далее. Кстати, и пользователям сетевых накопителей подключение диска к роутеру может быть интересно, например для дополнительного резервного копирования.

Что касается скорости, то для локального доступа по SMB все выглядит очень неплохо – чтение осуществляется на уровне гигабитной сети (если устройство имеет гигабитные порты), запись в полтора раза медленнее. Близкие результаты и при работе по протоколу FTP. Однако если требуется обеспечить защищенный обмен данными, то здесь уже все заметно сложнее с точки зрения вычислительных ресурсов. В частности, для SFTP скорость топовой модели линейки не превышает 8 МБ/с. Правда с учетом массовых тарифных планов до 100 Мбит/с, это ограничение может быть не очень заметно.

Сервер SMB (доступ к файлам и принтерам) – Keenetic: что это такое?

Сервер SMB — это сервис, который позволяет обмениваться файлами и общаться с принтерами в локальной сети. Это удобно, когда необходимо совместно использовать документы среди нескольких пользователей в одном офисе или даже дома.

Keenetic — это бренд, который создает решения для упрощения работы с интернетом и сетями. Один из продуктов компании — маршрутизатор Keenetic, которые в своей основе имеют сервис SMB. Данный сервис предоставляет пользователям доступ к общим файлам и принтерам в локальной сети.

Маршрутизатор Keenetic может стать не только простым устройством доступа в Интернет, но и удобным инструментом для совместного использования документов и ресурсов в рамках офиса или дома. В этой статье мы разберем, что такое сервер SMB и как использовать его с помощью Keenetic

Что вы найдёте в этой статье:

  1. Что такое сервер SMB Keenetic?
  2. Описание
  3. Работа сервера SMB Keenetic
  4. Преимущества использования сервера SMB Keenetic
  5. Вывод
  6. Что такое сервер SMB для Keenetic и как он работает?
  7. Преимущества и недостатки Server Message Block (SMB) на Keenetic
  8. Преимущества:
  9. Недостатки:

Что такое сервер SMB Keenetic?

Описание

SMB (Server Message Block) – это протокол для обмена файлами, печатями и другими ресурсами в локальной сети, который используется в сетях Windows. Keenetic – это маршрутизатор для домашних сетей, который в том числе работает и в качестве сервера SMB, обеспечивая доступ к файлам и принтерам.

Работа сервера SMB Keenetic

Сервер SMB Keenetic позволяет использовать все преимущества этого протокола, обеспечивая удобный доступ к файлам и устройствам из любой точки домашней сети. С помощью Keenetic можно подключать к сети большое количество устройств, которые будут иметь доступ к общей базе данных, а также использовать общие принтеры по всей сети.

Преимущества использования сервера SMB Keenetic

  • Удобство использования – доступ к файлам и принтерам осуществляется из любой точки сети.
  • Возможность подключать большое количество устройств.
  • Экономия времени и снижение затрат на обслуживание.
  • Высокая производительность и стабильность работы.

Вывод

Использование сервера SMB Keenetic обеспечивает удобный и быстрый доступ к файлам и устройствам из любой точки домашней сети. С помощью Keenetic можно подключать большое количество устройств, обеспечивая высокую производительность и стабильность работы всей системы.

Что такое сервер SMB для Keenetic и как он работает?

Сервер SMB (Server Message Block) – это одна из важнейших функций Keenetic, которая позволяет организовать доступ к файлам и принтерам в домашней сети. С помощью сервера SMB вы можете создать общую папку и разрешить доступ к ней пользователям в локальной сети.

Преимущества сервера SMB заключаются в том, что он обеспечивает надежный доступ к файлам и принтерам для пользователей в одной и той же сети. Использование этой функции позволяет упростить работу и повысить эффективность общения в коллективе.

Для работы сервера SMB необходимо сначала настроить Keenetic, указав параметры доступа и расшарив общую папку. Затем пользователи в локальной сети могут легко получить к ней доступ. Сервер SMB работает на основе протокола SMB, который используется для обмена файлами между компьютерами в сети.

  • Доступ к файлам: при помощи сервера SMB вы можете создать общую папку и разрешить доступ к ней пользователям в локальной сети. Таким образом, любой пользователь в сети будет иметь полный доступ к этой папке и сможет просматривать и изменять любые файлы в ней.
  • Доступ к принтерам: с помощью сервера SMB вы также можете подключить принтер к Keenetic и расшарить его для всех пользователей в локальной сети. Как только принтер подключен, пользователи смогут печатать документы с любого подключенного устройства в сети.

Таким образом, сервер SMB для Keenetic – это удобное и надежное решение для организации доступа к файлам и принтерам в локальной сети. Он позволяет оптимизировать работу в коллективе и улучшить производительность пользователей.

Преимущества и недостатки Server Message Block (SMB) на Keenetic

Преимущества:

  • Универсальность. SMB – один из наиболее распространенных протоколов для обмена файлами и печати в сети. Он поддерживается на большинстве операционных систем, включая Windows, macOS, Linux и другие.
  • Простота установки и настройки. Большинство современных маршрутизаторов, включая Keenetic, имеют встроенный SMB-сервер и предоставляют возможность легко настроить доступ к файлам и принтерам из любой сети.
  • Удобство использования. Когда SMB настроен, пользователи имеют возможность расшарить файлы и принтеры в сети, просматривать доступные ресурсы с любого устройства сети и выполнить необходимые действия, например, напечатать документ на удаленном принтере.

Недостатки:

  • Безопасность. SMB использует разделение ресурсов на сервер и клиент, что может стать жертвой кибератаки. Это может привести к утечке конфиденциальной информации, взлому сети или атакам DDoS.
  • Скорость передачи данных. При использовании SMB для передачи больших файлов может произойти замедление скорости передачи данных, что может стать проблемой для сетей с высокой нагрузкой.
  • Совместимость с другими устройствами. В принципе, SMB должен работать с любым устройством, но некоторые аппаратные средства, например, некоторые сетевые принтеры и маршрутизаторы, не поддерживают этот протокол.

В целом, SMB является полезным и удобным инструментом для обмена файлами и печати в сети, но требует внимательности при использовании. Пользователи, которые пользуются SMB, должны быть ознакомлены с его особенностями и знать, как обеспечить безопасность своих ресурсов.

Все в порядке, но.

Этот текст мало кто будет читать и мы можем написать здесь все, что угодно, например.
Вы живете в неведении. Роботы уже вторглись в нашу жизнь и быстро захватывают мир, но мы встали на светлый путь и боремся за выживание человечества. А если серьезно, то.

В целях обеспечения безопасности сайта от кибератак нам необходимо убедиться, что вы человек. Если данная страница выводится вам часто, есть вероятность, что ваш компьютер заражен или вы используете для доступа IP адрес зараженных компьютеров.

Если это ваш частный компьютер и вы пытаетесь зайти на сайт, например, из дома — мы рекомендуем вам проверить ваш компьютер на наличие вирусов.

Если вы пытаетесь зайти на сайт, например, с работы или открытых сетей — вам необходимо обратиться с системному администратору и сообщить, что о возможном заражении компьютеров в вашей сети.

  • © 2005-2023, «4PDA». 4PDA® — зарегистрированный товарный знак.

Обхода блокировок много не бывает на роутерах Keenetic

Прошло почти 3 месяца с моей предыдущей статьи, я решил написать ещё одну. Она частично будет повторять мою предыдущую статью и статью, на основе которой она была написана. Исходя из различных комментариев на форумах и под этими статьями, я попытался в этой инструкции показать, как можно использовать различные обходы блокировок. Для большинства специалистов по этой теме ничего нового тут не будет. А для остальных, думаю, будет что почитать и чем заняться на досуге. Сильно страшного в этой инструкции, как и в предыдущих, ничего нет, нужно просто двигаться по ней, не пропуская ни одного шага.

Версия бота: 2.0 от 15.02.2023

Итак, зачем нужен этот обход блокировок:

  1. Для захода на необходимые сайты, которые блокируются в любой конкретной стране.
  2. Для «обмана» сайтов из других стран, которые не хотят работать для граждан конкретной страны.

С помощью действий, описанных в этой статье, Вы сможете подключить все устройства домашней сети (телефоны, смарт-тв, компьютеры и ноутбуки и другие «домашние» устройства) к данному обходу блокировок, а также подключаться к Вашему роутеру не из дома и пользоваться его обходом блокировок для доступа к любимым сайтам и приложениям. Кроме того, из обеих этих сетей (домашней и через подключение к роутеру), из любого браузера можно будет пользоваться onion-сайтами.

В данной статье будет описана работа телеграм-бота, написанного на python. С его помощью будет возможна установка данного обхода с небольшими предварительными настройками, а также работа со списками блокировок.

Для каждого конкретного обхода блокировок, мы будем устанавливать свой список сайтов и ip адресов для обхода. Изменять любой из этих списков будет достаточно легко (через телеграм бот, либо вручную, но тоже несложно), потому не пугайтесь. Частью функционала Вы можете и не пользоваться — Ваше право. Весь код будет в открытом доступе, информация о Ваших данных будет храниться на локальном роутере.

Статья разбита на 2 части. Первая для тех, кому «побыстрее чтоб работало», и для тех, кто хочет покопаться в настройках и понять как это всё работает. Так что не пугайтесь размеров статьи

Необходимо

  • Любой Keenetic с поддержкой USB;
  • Актуальная версия KeeneticOs (на данный момент 3.8.3);
  • Flash-накопитель размером от 1Гб;
  • Не побояться прочитать инструкцию;
  • Около 30 минут времени, попивая кофе. Основная часть работы это будет время ожидания установки.

Подготовка Flash-накопителя, роутера и установка Entware

  1. Используем инструкцию на сайте Keenetic. Для корректной работы телеграм-бота нам необходим будет файл подкачки. Возможно на «старших» моделях роутера это будет и необязательно, тогда можно воспользоваться предыдущей инструкцией (без файла подкачки), но на моём Keenetic Extra 1711 файл подкачки необходим. На флешке необходимо создать два раздела, один Linux Swap, второй — Ext4. Можно вместо Ext4 использовать NTFS, но для этого необходимо будет установить соответствующий компонент. Для работы с разделами в данной статье используется MiniTool Partition Wizard. Если что на всем известных сайтах можно найти взломанную версию, хотя, может, и бесплатная сработает.
  1. Для установки Entware воспользуемся инструкцией на официальном сайте Keenetic.
  • Скачиваем mipsel.
  • Вставляем отформатированную флешку в роутер.
  • Заходим в раздел Управление – Приложения и выбираем нашу флешку. В настройках роутера предварительно должно быть включено приложение «Сервер SMB» для доступа к подключаемым USB-дискам по сети.
  • Создаём папку install:

  • Ставим курсор на новую папку и импортируем туда файл mipsel с компьютера с помощью третьей иконки:

  • В настройках роутера заходим в раздел Управление – OPKG, выбираем нашу флешку и удаляем сценарий, если он есть и нажимаем кнопку Сохранить:

  • Примерно спустя минуту заходим обратно в Управление – Приложения и выбираем нашу флешку. Видим, что у нас установился entware по наличию некоторого количества папок. Можно также в Диагностике посмотреть ход установки:

  1. Установим необходимые компоненты роутера. В настройках роутера заходим в Общие настройки -> Изменить набор компоненты:

  • Поиском ищем следующие компоненты «Прокси-сервер DNS-over-TLS», «Прокси-сервер DNS-over-HTTPS», «Протокол IPv6», «SSTP VPN-сервер», «Подготовка открытых пакетов OPKG» и «Сервер SSH» затем, после обновления и перезагрузки роутера ещё следующие компоненты: «Модули ядра подсистемы Netfilter», «Пакет расширения Xtables-addons для Netfilter» и ещё раз перезагружаем роутер.
  • Заходим в «Сетевые правила» —> «Интернет-фильтр» и добавляем серверы DNS-over-TLS и DNS-over-HTTPS. У TLS адрес сервера 8.8.8.8:853, доменное имя TLS dns.google. У HTTPS сервер dns https://dns.google/dns-query. Должно получиться как на картинке:

  • UPD 02.01.2022: я рекомендую добавить все dns-over-http и *-tls, указанные в этой статье
  • Скачиваем Putty (на данный момент актуально putty-64bit-0.76-installer.msi) и запускаем её. Простенькие настроечки (если что их можно сохранить кнопкой Save):

При возможных предупреждениях соглашаемся (кнопка Accept).

  • Вводим логин «root» (без кавычек), нажимаем Enter, пароль «keenetic» (также без кавычек) (при вводе пароля курсор не двигается – это нормально), также Enter. Должно отобразиться:

P.S. здесь и далее — для копирование команды в командную строку необходимо скопировать текст на этом сайте и вставить в командную строку с помощью правой кнопкой мыши

  • Вводим команду:
passwd

и дважды вводим пароль. Курсор при вводе пароля также не двигается.

opkg update

Установка необходимых компонентов

  1. Начинаем установку необходимых компонентов.
  • Вводим команду для установки необходимых компонентов Entware. Сначала устанавливаем необходимые пакеты opkg, затем скачиваем pip для python’a (почему-то он не устанавливается корректно через opkg) и устанавливаем с помощью скрипта. Некоторое время у Вас это займёт, дождитесь. В конце установим три пакета расширения python.
opkg install mc tor tor-geoip bind-dig cron dnsmasq-full ipset iptables wget wget-ssl obfs4 shadowsocks-libev-ss-redir shadowsocks-libev-config python3 python3-pip v2ray trojan wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate python get-pip.py pip install pyTelegramBotAPI pip install telethon
  1. Устанавливаем и настраиваем бота. Он будет скачан с сайта гитхаба, это сделано для простоты обновления. Если что, там всегда будет крайняя версия скрипта. Внутри установочника некоторые файлы будут также скачиваться с сайта (по той же причине), но об этом позже.
wget https://raw.githubusercontent.com/tas-unn/bypass_keenetic/master/bot.py --no-check-certificate -O /opt/etc/bot.py mcedit /opt/etc/bot_config.py 
  1. В редакторе нашего бота нам необходимо:
  • Установить api ключ, который даст вам бот BotFather (в поиске телеграма его можно найти), спросить его команду /newbot, выбрать свободное имя и скопировать необходимый ключ в поле token

  • Копируем Username (логин) телеграма. Он будет использоваться для администрирования. Можно добавить несколько администраторов:

  • И последние две обязательные настроечки берутся с сайта https://my.telegram.org/apps:

  • Обратите внимание, все свои настройки Вы вбиваете и сохраняете на своём роутере. В конце концов код можете посмотреть сами, если умеете это делать.
  • Все данные записываем в файл в нужные места:

  • Это были необходимые минимальные настройки. Дело в том, что бот за Вас будет запрашивать мосты для ТОРа. Вам в телеграм будут лишь приходить уведомления (отключите звук и другие оповещения, чтоб они Вас не раздражали).
  • Ключи для Shadowsocks, Vmess и Trojan необходимо устанавливать будет вручную
  • Чуть ниже этих строк есть настройки, которые можно оставить по умолчанию, но на всякий случай просмотрите их.
  1. Запускаем бота:
python /opt/etc/bot.py

  • Заходим в свой телеграм-бот, если необходимо нажимаем /start и выбираем сначала Установку и удаление, а затем Установку \ переустановку:
  • В программе Putty можете наблюдать внутренние команды, а в телеграм-боте ход установки, а также полученные ключи от двух ботов. ВНИМАНИЕ: при включенной двухфакторной авторизации телеграма, Вам необходимо будет ввести данные в Putty. Не пугайтесь, всё работает исключительно на Вашем роутере.
  • После фразы, что установка завершена нам необходимо чуть-чуть донастроить роутер. 5. Отключение штатного DNS-сервера и перезагрузка маршрутизатора.
  • Запускаем командную строку в Windows (открываем пуск и начинаем писать «Командная строка» или «cmd»).
  • Пишем (ip роутера поменяете если другой).

    telnet 192.168.1.1
    opkg dns-override system configuration save system reboot
    • Роутер перезагрузится и Вы сможете пользоваться ботом работы.
    • Внимание: если захотите переустановить флешку с нуля, то Вам необходимо в Putty ввести следующие команды и после перезагрузки роутера приступать к созданию флешки:
    no opkg dns-override system configuration save system reboot

    Описание работы телеграм-бота

    1. При старте бот имеет 3 кнопки «Установка и удаление», «Ключи и мосты «и «Списки обхода».
    2. Первой кнопкой мы частично пользовались при установке.
    3. Кнопка «Ключи и мосты» переустанавливает\устанавливает ключи Shadowsocks, Vmess, Trojan, а также мосты Tor. Для мостов Tor существует получение в автоматическом режиме с помощью телеграм.
    4. В пункте меню «Списки обхода» создаются кнопки, соответствующие названием файла и папки /opt/etc/unblock/. При изначальной установке там находятся 4 файла shadowsocks.txt, trojan.txt, vmess.txt и tor.txt, поэтому у нас будет 4 кнопки
    1. При нажатии на любую из них будет возможность показать конкретный список разблокировок, добавить сайт или ip адрес в список, либо его удалить оттуда.

    1. При добавлении существует возможность ЛИБО добавить обход блокировок соцсетей (скачивается вот отсюда и может редактироваться в случае необходимости), ЛИБО написать доменное имя сайта, либо IP-адрес боту:

    1. Для удаления просто вписываете необходимый адрес и отправляете его боту.

    Подключение к своему роутеру, используя его как собственный VPN

    • На устройствах из дома (wifi, по проводу) всё уже работает, но существует возможность подключаться к вашему роутеру и пользоваться теми же сайтами, которые Вы указали в списках разблокировок.
    • Для этого нужно воспользоваться вот этой инструкцией на сайте Keenetic.
    • А потом можно подключаться через Android, Windows, MacOS, IOs (только платный).

    Установка обхода завершена! Можете пользоваться на здоровье!

    • Донаты приветствуются) куда переводить — можно найти в первых строчках бота в комментариях) но всё, естественно, по желанию.
    • Пишите в комментариях чего Вы хотите в следующих версиях.

    О чём будет следующая часть статьи:

    1. Рассказ о внутренних особенностях установленной системы. Если кто-то хочет покопаться, либо дать совет в настройке — милости просим.
    2. Данный обход блокировок сейчас настроен на 2 сервиса — один Hi!Load VPN с помощью технологии Shadowsocks, второй — Тор, но Вы можете сами настроить необходимые Вам сервисы вручную, подключив их к своему телеграм-боту и он также сможет работать!
    3. Те люди, которые не хотят тратить на это время, могут этого не делать. Остальные — welcome 🙂
    4. Для тех, кто до сих пор пользуется программой teamviewer, есть способ чтобы он продолжил работать.

    Детальная настройка и всё что с этим связано

    1. Для установки VPN сервисов, которые поддерживаются роутером Keenetic (OpenVPN, Wireguard, IpSec, PPTP, L2TP воспользуйтесь инструкциями на официальном сайте Keenetic. Shadowsocks и Tor уже были настроены с помощью установочника телеграм-бота, здесь будет лишь отписание.
    1. Через Putty заходим по SSH (см самое начало статьи).
    2. Инициализируем ipset, создание множества IP-адресов unblock (100-ipset.sh).
    • Проверьте, что в системе вашего маршрутизатора есть поддержка множества hash:net:
    ipset create test hash:net
    • Если команда никаких ошибок и сообщений не выдала, значит поддержка есть, и просто следуйте инструкции дальше. В противном случае (есть ошибка) в следующем скрипте вам нужно заменить hash:net на hash:ip. При этом вы потеряете возможность разблокировки по диапазону и CIDR. Скорее всего ошибок не будет у Вас.
    • Создайте пустое множество адресов с именем unblock при загрузке маршрутизатора. Для этого создайте файл /opt/etc/ndm/fs.d/100-ipset.sh:
    mcedit /opt/etc/ndm/fs.d/100-ipset.sh
    • Вставляем содержимое с помощью сочетания клавиш Shift+Insert. Далее в этой инструкции мы также будем использовать это сочетания клавиш.
    • Внимание: в данном файле мы создаём ровно столько множеств для обхода блокировок, сколько нам надо. В инструкции показано 3 обхода (shadowsocks, tor и какой-то VPN, подключенный исходя из инструкций на официальном сайте), но их может быть бесконечное множество. Если Вам нужно добавить ещё один обход VPN, то Вам нужно добавить ещё одну строку в следующем файле (по аналогии с 3-5 строками). Также можно удалить 1-2 строки, если будете использовать меньшее количество обходов.
    #!/bin/sh [ "$1" != "start" ] && exit 0 ipset create unblocksh hash:net -exist ipset create unblocktor hash:net -exist ipset create unblocktroj hash:net -exist ipset create unblockvmess hash:net -exist #ipset create unblockvpn hash:net -exist #если нужно раскомментируем exit 0
    • Ссылка на скачивание (там будет храниться всегда актуальная информация).
    • После этого нажимаем сохранить (клавиша F2), соглашаемся (Enter) и выход (клавиша F10). Эти сочетания также будут использоваться далее.
    • Дайте права на исполнение:
    chmod +x /opt/etc/ndm/fs.d/100-ipset.sh
    1. Настройка Shadowsocks на примере Highload-VPN. Не является рекламой. Пока там всё бесплатно, они обещают бесплатный доступ с небольшими ограничениями, а есть также платный доступ, доступ к российскому vpn (если например Вы из-за границы и хотите воспользоваться госуслугами или подобными сервисами). Вы можете использовать любой другой сервис, либо настроить самостоятельно Shadowsocks на своём сервере, например по этой инструкции. За основу этого пункта взята эта инструкция.
    • Используем телеграм-бота для получения ключа
    • Через некоторое время Вам в телеграм придёт ключ вида:
    ss:/password@serverip:port/?outline=1

    Есть 2 способа создать файл настроек. Первый через python, вставив полученный ключ в переменную k. Второй «ручками»:

    • В данном ключе есть 3 позиции, которые нам интересны: первая часть до значка собачки (красная), вторая — после собачки до двоеточия (синяя), третья цифры после двоеточия (зелёная).
    • Первая часть это пароль, который закодирован в кодировке base64, поэтому нам нужно её раскодировать. Можем использовать этот сайт. В верхнее поле вставляем первую («красную») часть нашей ссылки и нажимаем кнопку Decode. Появится декодированная строка. Нас будет интересовать пароль, который находится после двоеточия.
    • Возвращаемся в Putty и выполняем команду:
    mcedit /opt/etc/shadowsocks.json
    • Редактируем наш файл. Изменяем строку server (в моём случае 5.5.5.5) на ip адрес (или доменное имя) из ключа, который мы получили на сайте (см вторую картинку наверх). Это «синяя» часть нашего ключа. «Зелёную» часть нашего ключа копируем в server_port (в моём случае 666). В поле password мы копируем пароль из декодированной строки. local_port изменяем на любой свободный порт. Можно оставить этот:

    Сохраняем и выходим (напомню F2,F10).

    • Редактируем исполняемый файл Shadowsocks:
    mcedit /opt/etc/init.d/S22shadowsocks

    • Меняем ss-local на ss-redir:

    Сохраняем и выходим.

    1. Настройка Tor. Эта часть инструкции взята вот отсюда, включая саму статью и комментарии.
    • Удаляем содержимое конфигурационного файла:
    cat /dev/null > /opt/etc/tor/torrc
    • Ищем мосты для Тора. Их можно найти вот тут или вот тут.
    • Открываем файл конфигурации Тор. Актуальный (только без актуальных мостов) можно всегда скачать отсюда.
    mcedit /opt/etc/tor/torrc
    • Вставьте (Shift+Insert) содержимое (сразу не закрывайте, дочитайте ещё один пункт):
    User root PidFile /opt/var/run/tor.pid ExcludeExitNodes ,,,, StrictNodes 1 TransPort 0.0.0.0:9141 ExitRelay 0 ExitPolicy reject *:* ExitPolicy reject6 *:* GeoIPFile /opt/share/tor/geoip GeoIPv6File /opt/share/tor/geoip6 DataDirectory /opt/tmp/tor VirtualAddrNetwork 10.254.0.0/16 DNSPort 127.0.0.1:9053 AutomapHostsOnResolve 1 UseBridges 1 ClientTransportPlugin obfs4 exec /opt/sbin/obfs4proxy managed
    • В конец этого файла вставляем мосты, полученные через сайт или через телеграм-бот. Перед каждым мостом (строкой) нужно написать слово «Bridge» и поставить пробел. Например:
    Bridge obfs4 15.18.22.16:123 C06700D83A2D cert=q34/VfQ+hrUTBto/WhJnwB+BO9jFwBZhNfA iat-mode=0 Bridge obfs4 19.9.1.9:56789 CAF61C9210E5B7638ED00092CD cert=qMUhCi4u/80ecbInGRKAUvGU0cmsiaruHbhaA iat-mode=0
    • Сохраняем и выходим.
    1. Установочником бота создана папка /opt/etc/unblock. Там располагаются файлы со списками для наших различных обходов. Если Вы устанавливаете вручную, то нужна следующая команда для создания папки:
    mkdir /opt/etc/unblock
    • Создаём сами списки. Их должно быть ровно столько, сколько обходов мы собираемся создавать. Именно их названия будут использоваться в телеграм-боте для создания списков разблокировок. Напомню, в нашем случае их 3 (вводим последовательно):
    mcedit /opt/etc/unblock/shadowsocks.txt mcedit /opt/etc/unblock/tor.txt mcedit /opt/etc/unblock/trojan.txt mcedit /opt/etc/unblock/vmess.txt mcedit /opt/etc/unblock/vpn1.txt
    • В разные файлы мы можем вносить разные домены и ip-адреса. Предлагаю два из них заполнить только одним сайтом, который будет отображать ip адрес, а один из них наполнить основным списком адресов. В моём случае первый файл будет основным, а тор и vpn будет «запасными». В основной вводим свои сайты примерно в таком виде:
    rutracker.org kinozal.tv 2ip.ru chess.com #facebooktwitterinstagram facebook.com twitter.com instagram.com cdninstagram.com cdnfacebook.com facebook.net ads-twitter.com static.ads-twitter.com ###Пример разблокировки по IP (убрать # в начале строки) #195.82.146.214 ###Пример разблокировки по CIDR (убрать # в начале строки) #103.21.244.0/22 ###Пример разблокировки по диапазону (убрать # в начале строки) #100.100.100.200-100.100.100.210
    • В таком виде фейсубокотвиттероинстаграммы должны открываться через браузер, как и другие сайты из этого списка. Если что мой актуальный список будет тут. Пока нет способа, который будет работать по маске. Кстати, чтобы узнать какие конкретные домены должны быть внесены в этот список, проще всего зайти через обычный тор-браузер, нажать F12 и зайти на нужный сайт. Во вкладке Network будет список различных доменов, которые используются. Это нужно для тех сайтов, где используется различные другие домены внутри основного сайта.
    • В другие два для проверки добавим по одному сайту: myip.ru и whatismyipaddress.com, а для тора ещё сайт check.torproject.org. В конце концов, изменить списки вы сможете всегда по Вашему желанию либо через Putty, либо через телеграм-бот.
    • Кстати для обхода teamviewer в любой из списков обхода добавить следующие адреса (актуальные взял вот отсюда, предварительно добавив в список обхода основной сайт teamviewer.com, чтоб данный список можно было посмотреть ):
    teamviewer.com 217.146.28.192/27 37.252.239.128/27 213.227.180.128/27 188.172.221.96/27 131.100.3.192/27 162.250.7.160/27 188.172.251.192/27 162.220.222.192/27 188.172.214.128/27 162.250.2.192/27 162.220.223.160/27 94.16.21.192/27 185.228.150.128/27 188.172.245.32/27 188.172.192.160/27 213.227.162.64/27 217.146.23.96/27 37.252.227.128/27 185.116.99.128/27 37.252.230.160/27 178.255.155.224/27 213.227.181.64/27 188.172.222.0/27 188.172.223.160/27 217.146.13.96/27 94.16.102.128/27 213.227.178.128/27 94.16.26.64/27 213.227.185.192/27 188.172.235.192/27 37.252.245.96/27 213.227.167.160/27 188.172.201.160/27 217.146.11.128/27 37.252.229.192/27 188.172.203.64/27 37.252.244.192/27 37.252.243.160/27

    Сохраняем списки и выходим. Создайте хотя бы пустые списки, иначе телеграм-бот их не увидит.

    1. Скрипт для заполнения множества unblock IP-адресами заданного списка доменов (unblock_ipset.sh) и дополнительного конфигурационного файла dnsmasq из заданного списка доменов (unblock_dnsmasq.sh).
    • Создадим скрипт /opt/bin/unblock_ipset.sh:
    mcedit /opt/bin/unblock_ipset.sh
    • Обратите внимание, здесь код разделён на 4 части, т.к. у нас 4 обхода блокировок. Если что добавляем ещё подобные строки, заменяя названия ipset’ов и файлов со списком адресов:
    #!/bin/sh until ADDRS=$(dig +short google.com @localhost -p 40500) && [ -n "$ADDRS" ] > /dev/null 2>&1; do sleep 5; done while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "$" = "#" ] && continue cidr=$(echo $line | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]/[0-9]') if [ ! -z "$cidr" ]; then ipset -exist add unblocksh $cidr continue fi range=$(echo $line | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]-[0-9]\.[0-9]\.[0-9]\.[0-9]') if [ ! -z "$range" ]; then ipset -exist add unblocksh $range continue fi addr=$(echo $line | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]') if [ ! -z "$addr" ]; then ipset -exist add unblocksh $addr continue fi dig +short $line @localhost -p 40500 | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]' | awk '' done < /opt/etc/unblock/shadowsocks.txt while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "$" = "#" ] && continue cidr=$(echo $line | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]/[0-9]') if [ ! -z "$cidr" ]; then ipset -exist add unblocktor $cidr continue fi range=$(echo $line | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]-[0-9]\.[0-9]\.[0-9]\.[0-9]') if [ ! -z "$range" ]; then ipset -exist add unblocktor $range continue fi addr=$(echo $line | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]') if [ ! -z "$addr" ]; then ipset -exist add unblocktor $addr continue fi dig +short $line @localhost -p 40500 | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]' | awk '' done < /opt/etc/unblock/tor.txt while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "$" = "#" ] && continue cidr=$(echo $line | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]/[0-9]') if [ ! -z "$cidr" ]; then ipset -exist add unblockvmess $cidr continue fi range=$(echo $line | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]-[0-9]\.[0-9]\.[0-9]\.[0-9]') if [ ! -z "$range" ]; then ipset -exist add unblockvmess $range continue fi addr=$(echo $line | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]') if [ ! -z "$addr" ]; then ipset -exist add unblockvmess $addr continue fi dig +short $line @localhost -p 40500 | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]' | awk '' done < /opt/etc/unblock/vmess.txt while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "$" = "#" ] && continue cidr=$(echo $line | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]/[0-9]') if [ ! -z "$cidr" ]; then ipset -exist add unblocktroj $cidr continue fi range=$(echo $line | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]-[0-9]\.[0-9]\.[0-9]\.[0-9]') if [ ! -z "$range" ]; then ipset -exist add unblocktroj $range continue fi addr=$(echo $line | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]') if [ ! -z "$addr" ]; then ipset -exist add unblocktroj $addr continue fi dig +short $line @localhost -p 40500 | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]' | awk '' done < /opt/etc/unblock/trojan.txt #script0
    • В конце файла я оставил место под скрипты для доп. обходов (нашего vpn1), их нужно вставлять например вместо строки #script0, #script1 итд в зависимости от количества обходов. Актуальную часть скрипта можно отсюда, а на данный момент:
    # unblockvpn - множество # vpn1.txt - название файла со списком обхода while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "$" = "#" ] && continue cidr=$(echo $line | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]/[0-9]') if [ ! -z "$cidr" ]; then ipset -exist add unblockvpn $cidr continue fi range=$(echo $line | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]-[0-9]\.[0-9]\.[0-9]\.[0-9]') if [ ! -z "$range" ]; then ipset -exist add unblockvpn $range continue fi addr=$(echo $line | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]') if [ ! -z "$addr" ]; then ipset -exist add unblockvpn $addr continue fi dig +short $line @localhost -p 40500 | grep -Eo '[0-9]\.[0-9]\.[0-9]\.[0-9]' | awk '' done < /opt/etc/unblock/vpn1.txt
    • Даём права на использование:
    chmod +x /opt/bin/unblock_ipset.sh
    • Создадим скрипт /opt/bin/unblock_dnsmasq.sh:
    mcedit /opt/bin/unblock_dnsmasq.sh
    #!/bin/sh cat /dev/null > /opt/etc/unblock.dnsmasq while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "$" = "#" ] && continue echo $line | grep -Eq '[0-9]\.[0-9]\.[0-9]\.[0-9]' && continue echo "ipset=/$line/unblocktor" >> /opt/etc/unblock.dnsmasq echo "server=/$line/127.0.0.1#40500" >> /opt/etc/unblock.dnsmasq done < /opt/etc/unblock/tor.txt while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "$" = "#" ] && continue echo $line | grep -Eq '[0-9]\.[0-9]\.[0-9]\.[0-9]' && continue echo "ipset=/$line/unblocksh" >> /opt/etc/unblock.dnsmasq echo "server=/$line/127.0.0.1#40500" >> /opt/etc/unblock.dnsmasq done < /opt/etc/unblock/shadowsocks.txt while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "$" = "#" ] && continue echo $line | grep -Eq '[0-9]\.[0-9]\.[0-9]\.[0-9]' && continue echo "ipset=/$line/unblockvmess" >> /opt/etc/unblock.dnsmasq echo "server=/$line/127.0.0.1#40500" >> /opt/etc/unblock.dnsmasq done < /opt/etc/unblock/vmess.txt while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "$" = "#" ] && continue echo $line | grep -Eq '[0-9]\.[0-9]\.[0-9]\.[0-9]' && continue echo "ipset=/$line/unblocktroj" >> /opt/etc/unblock.dnsmasq echo "server=/$line/127.0.0.1#40500" >> /opt/etc/unblock.dnsmasq done < /opt/etc/unblock/trojan.txt #script0 #script1 #script2 #script3 #script4 #script5 #script6 #script7 #script8 #script9
    • Здесь аналогичная картина - код разбит на 4 частиDYBVF. При необходимости увеличиваем за счёт #script0 и т.д пока так (актуальную знаете где взять):
    #vpn1 и unblockvpn меняем while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "$" = "#" ] && continue echo $line | grep -Eq '[0-9]\.[0-9]\.[0-9]\.[0-9]' && continue echo "ipset=/$line/unblockvpn" >> /opt/etc/unblock.dnsmasq echo "server=/$line/127.0.0.1#40500" >> /opt/etc/unblock.dnsmasq done < /opt/etc/unblock/vpn1.txt

    Сохраняем и выходим.

    • Даём права на использование:
    chmod +x /opt/bin/unblock_dnsmasq.sh
    • Запускаем скрипт и затем проверяем создался ли файл. Здесь 2 команды, вводим последовательно:
    unblock_dnsmasq.sh cat /opt/etc/unblock.dnsmasq

    Картина будет примерно такая:

    1. Скрипт ручного принудительного обновления системы после редактирования списка доменов (unblock_update.sh). Создаём его:
    mcedit /opt/bin/unblock_update.sh
    • Записываем содержимое, сохраняем и закрываем:
    #!/bin/sh ipset flush unblocktor ipset flush unblocksh ipset flush unblockttroj ipset flush unblockvmess #ipset flush unblockvpn # добавляем столько сколько надо и раскомментируем /opt/bin/unblock_dnsmasq.sh /opt/etc/init.d/S56dnsmasq restart /opt/bin/unblock_ipset.sh &
    • Даём права на использование:
    chmod +x /opt/bin/unblock_update.sh
    1. Скрипт автоматического заполнения множества unblock при загрузке маршрутизатора (S99unblock). Создаём его:
    mcedit /opt/etc/init.d/S99unblock
    • Записываем содержимое, сохраняем и закрываем:
    #!/bin/sh [ "$1" != "start" ] && exit 0 /opt/bin/unblock_ipset.sh cd /opt/etc python /opt/etc/bot.py &
    • Даём права на использование:
    chmod +x /opt/etc/init.d/S99unblock
    1. Перенаправление пакетов с адресатами.
    • ВНИМАНИЕ! Эта часть кода сейчас не работает, если есть спецы в iptables, то милости просим! Если кроме тора, trojan, vmess и shadowsocks мы используем другие VPN, то нам нужно узнать их имена. Вводим команду:
    ifconfig

    .

    • Список будет большим (может потребоваться прокрутка), но по тем параметрам, которые видны, Вы должны догадаться какой выбрать. У меня это ppp1, поэтому в следующем файле будем использовать его.
    • Здесь будут отображаться все созданные Вами vpn (кроме shadowsocks и tor).
    • Создаём ещё один файл, который будет перенаправлять пакеты с адресатами:
    mcedit /opt/etc/ndm/netfilter.d/100-redirect.sh
    #!/bin/sh [ "$type" == "ip6tables" ] && exit 0 ip4t() < if ! iptables -C "$@" &>/dev/null; then iptables -A "$@" fi > if [ -z "$(iptables-save 2>/dev/null | grep unblocksh)" ]; then ipset create unblocksh hash:net -exist iptables -I PREROUTING -w -t nat -i br0 -p tcp -m set --match-set unblocksh dst -j REDIRECT --to-port 1082 iptables -I PREROUTING -w -t nat -i br0 -p udp -m set --match-set unblocksh dst -j REDIRECT --to-port 1082 iptables -I PREROUTING -w -t nat -i sstp0 -p tcp -m set --match-set unblocksh dst -j REDIRECT --to-port 1082 iptables -I PREROUTING -w -t nat -i sstp0 -p udp -m set --match-set unblocksh dst -j REDIRECT --to-port 1082 iptables -t nat -A OUTPUT -p tcp -m set --match-set unblocksh dst -j REDIRECT --to-port 1082 fi if [ -z "$(iptables-save 2>/dev/null | grep "udp \-\-dport 53 \-j DNAT")" ]; then iptables -w -t nat -I PREROUTING -i br0 -p udp --dport 53 -j DNAT --to 192.168.1.1 iptables -w -t nat -I PREROUTING -i sstp0 -p udp --dport 53 -j DNAT --to 192.168.1.1 fi if [ -z "$(iptables-save 2>/dev/null | grep "tcp \-\-dport 53 \-j DNAT")" ]; then iptables -w -t nat -I PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to 192.168.1.1 iptables -w -t nat -I PREROUTING -i sstp0 -p tcp --dport 53 -j DNAT --to 192.168.1.1 fi if [ -z "$(iptables-save 2>/dev/null | grep unblocktor)" ]; then ipset create unblocktor hash:net -exist iptables -I PREROUTING -w -t nat -i br0 -p tcp -m set --match-set unblocktor dst -j REDIRECT --to-port 9141 iptables -I PREROUTING -w -t nat -i br0 -p udp -m set --match-set unblocktor dst -j REDIRECT --to-port 9141 iptables -t nat -A PREROUTING -i br0 -p tcp -m set --match-set unblocktor dst -j REDIRECT --to-port 9141 iptables -t nat -A OUTPUT -p tcp -m set --match-set unblocktor dst -j REDIRECT --to-port 9141 iptables -I PREROUTING -w -t nat -i sstp0 -p tcp -m set --match-set unblocktor dst -j REDIRECT --to-port 9141 iptables -I PREROUTING -w -t nat -i sstp0 -p udp -m set --match-set unblocktor dst -j REDIRECT --to-port 9141 iptables -t nat -A PREROUTING -i sstp0 -p tcp -m set --match-set unblocktor dst -j REDIRECT --to-port 9141 fi if [ -z "$(iptables-save 2>/dev/null | grep unblockvmess)" ]; then ipset create unblockvmess hash:net -exist iptables -I PREROUTING -w -t nat -i br0 -p tcp -m set --match-set unblockvmess dst -j REDIRECT --to-port 10810 iptables -I PREROUTING -w -t nat -i br0 -p udp -m set --match-set unblockvmess dst -j REDIRECT --to-port 10810 iptables -t nat -A PREROUTING -i br0 -p tcp -m set --match-set unblockvmess dst -j REDIRECT --to-port 10810 iptables -t nat -A OUTPUT -p tcp -m set --match-set unblockvmess dst -j REDIRECT --to-port 10810 iptables -I PREROUTING -w -t nat -i sstp0 -p tcp -m set --match-set unblockvmess dst -j REDIRECT --to-port 10810 iptables -I PREROUTING -w -t nat -i sstp0 -p udp -m set --match-set unblockvmess dst -j REDIRECT --to-port 10810 iptables -t nat -A PREROUTING -i sstp0 -p tcp -m set --match-set unblockvmess dst -j REDIRECT --to-port 10810 fi if [ -z "$(iptables-save 2>/dev/null | grep unblocktroj)" ]; then ipset create unblocktroj hash:net -exist iptables -I PREROUTING -w -t nat -i br0 -p tcp -m set --match-set unblocktroj dst -j REDIRECT --to-port 10829 iptables -I PREROUTING -w -t nat -i br0 -p udp -m set --match-set unblocktroj dst -j REDIRECT --to-port 10829 iptables -t nat -A PREROUTING -i br0 -p tcp -m set --match-set unblocktroj dst -j REDIRECT --to-port 10829 iptables -t nat -A OUTPUT -p tcp -m set --match-set unblocktroj dst -j REDIRECT --to-port 10829 iptables -I PREROUTING -w -t nat -i sstp0 -p tcp -m set --match-set unblocktroj dst -j REDIRECT --to-port 10829 iptables -I PREROUTING -w -t nat -i sstp0 -p udp -m set --match-set unblocktroj dst -j REDIRECT --to-port 10829 iptables -t nat -A PREROUTING -i sstp0 -p tcp -m set --match-set unblocktroj dst -j REDIRECT --to-port 10829 fi #script0
    • По аналогии внизу (вместо #script0 и т.д.) нам необходимо вставить дополнительный код (актуальный всегда тут). ВНИМАНИЕ! Эта часть кода сейчас не работает, если есть спецы в iptables, то милости просим! Тут аккуратненько) вместо ppp1 вставляем нужное нам название интерфейса (чуть повыше я писал):
    if [ -z "$(iptables-save 2>/dev/null | grep unblockvpn)" ]; then ipset create unblockvpn hash:net -exist iptables -I PREROUTING -w -t nat -i br0 -p tcp -m set --match-set unblockvpn dst -j MASQUERADE -o ppp1 iptables -I PREROUTING -w -t nat -i br0 -p udp -m set --match-set unblockvpn dst -j MASQUERADE -o ppp1 iptables -t nat -A PREROUTING -i br0 -p tcp -m set --match-set unblockvpn dst -j MASQUERADE -o ppp1 iptables -t nat -A OUTPUT -p tcp -m set --match-set unblockvpn dst -j MASQUERADE -o ppp1 iptables -I PREROUTING -w -t nat -i sstp0 -p tcp -m set --match-set unblockvpn dst -j MASQUERADE -o ppp1 iptables -I PREROUTING -w -t nat -i sstp0 -p udp -m set --match-set unblockvpn dst -j MASQUERADE -o ppp1 iptables -t nat -A PREROUTING -i sstp0 -p tcp -m set --match-set unblockvpn dst -j MASQUERADE -o ppp1 fi exit 0

    Сохраняем и даём права на использование:

    chmod +x /opt/etc/ndm/netfilter.d/100-redirect.sh
    1. Настройка dnsmasq и подключение дополнительного конфигурационного файла к dnsmasq.
    • Удалим содержимое конфигурационного файла dnsmasq и создадим вновь (команды вводим последовательно):
    cat /dev/null > /opt/etc/dnsmasq.conf mcedit /opt/etc/dnsmasq.conf
    • Записываем содержимое. При необходимости меняем ip роутера. Сохраняем и закрываем.
    user=nobody bogus-priv no-negcache clear-on-reload bind-dynamic listen-address=192.168.1.1 listen-address=127.0.0.1 min-port=4096 cache-size=1536 expand-hosts log-async conf-file=/opt/etc/unblock.dnsmasq no-resolv server=127.0.0.1#40500 server=127.0.0.1#40508 server=/onion/127.0.0.1#9053 ipset=/onion/unblocktor
    1. Добавление задачи в cron для периодического обновления содержимого множества unblock.
    • Откроем файл:
    mcedit /opt/etc/crontab
    • В конец добавляем строку:
    00 06 * * * root /opt/bin/unblock_ipset.sh
    • При желании остальные строчки можно закомментировать, поставив решётку в начале. Затем сохраняем и закрываем:
    SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin MAILTO="" HOME=/ # ---------- ---------- Default is Empty ---------- ---------- # #*/1 * * * * root /opt/bin/run-parts /opt/etc/cron.1min #*/5 * * * * root /opt/bin/run-parts /opt/etc/cron.5mins #01 * * * * root /opt/bin/run-parts /opt/etc/cron.hourly #02 4 * * * root /opt/bin/run-parts /opt/etc/cron.daily #22 4 * * 0 root /opt/bin/run-parts /opt/etc/cron.weekly #42 4 1 * * root /opt/bin/run-parts /opt/etc/cron.monthly 00 06 * * * root /opt/bin/unblock_ipset.sh
    1. После перезагрузки роутера у меня почему-то пропал доступ по 222 порту через putty по ssh. В итоге я подключаюсь по 22 порту через тот же putty, ввожу логин с паролем от роутера, пишу команду:
    exec sh
    su - root

    и можно использовать любые команды Entware по типу тех, которые мы вводили в данной инструкции.

    Заключение

    Надеюсь Вам всё понравилось) Пишите в комментариях что бы Вы хотели улучшить, Ваши замечания. "Спасибки" и прочее также приветствуются).

    История версий

    1) С помощью бота можно добавлять и удалять не один сайт, а несколько (каждый новый сайт с новой строки)
    2) При показе списка бот выдаёт список в алфавитном порядке и в одном сообщении
    3) Добавлен вывод ошибки в файл при зависании бота. Если будет ошибка - пришлите разработчику содержимое файла /opt/etc/error.log, но, возможно, ошибка исправлена
    4) Исправлено создание файла /opt/etc/crontab. Раньше при повторной установки добавлялись дополнительные ненужные строки

    Добавлена возможность вручную устанавливать ключи для Shadowsocks и мосты для Тора

    1) Обновлена немного работа с ботом Highload'a (shadowsocks) из-за изменений их бота

    2) Добавлена возможность получать ключи через бот с помощью сайта https://hi-l.im/. Для этого пункта необходимо однократно ещё ввести команду "pip install beautifulsoup4" перед запуском бота.

    3) Немного доработан скрипт S99unblock

    4) Доработан бот в части установочника. Теперь при установке запускается скрипт, создающий пустые множества. Иначе иногда переставал работать интернет полностью

    5) В статье есть описание добавления DNS-over-HTTPS и DNS-over-TLS. Там есть небольшой апдейт от 02.10.2022. Рекомендую проделать действия из этого раздела

    6) В боте есть обработка ошибок. Ошибки, связанные с работой, можно посмотреть в файле /opt/etc/error.log

    1) Добавлена поддержка trojan и vmess

    2) Удалён способ получение ключей Shadowsocks через телеграм. Это связано с тем, что я не успеваю следить за изменением их бота. Проще вручную получить ключ. Получение мостов Tor осталось на месте

    3) Удалён способ получение ключа с помощью сайта H!Load-VPN так как на сайте больше нет это поддержки

    Правило обновления до версии 2.0 с версий 1.*:

    1) Скопировать весь код бота, который идёт после строки

    # следующие настройки могут быть оставлены по умолчанию, но можно будет что-то поменять

    2) Нажать запустить установку заново. ИЛИ. с помощью Putty сделать следующие действия:

      Установить два пакета

    opkg install v2ray trojan
    • Создать 2 файла в папке unblock, например командами. Их содержимое можно оставить пустым
    mcedit /opt/etc/unblock/trojan.txt mcedit /opt/etc/unblock/vmess.txt
    • Обновить файлы unblock.dnsmasq, unblock_ipset.sh, 100-redirect.sh, 100-ipset.sh, unblock_update.sh с гита

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *