На чтение 4 мин Просмотров 93.9к. Опубликовано
Обновлено
Прошивка Padavan FirmWare для Asus за долгие годы ее существования в определенных кругах стала синонимом залога стабильности в работе wifi роутера. Не многие заводские микропрограммы могут похвастаться удобством настройки и надежностью в функционировании всех заложенных в маршрутизатор возможностей. Далее я покажу наглядно, как установить прошивку Padavan на роутер Асус.
Установка и настройка прошивки Padavan исправляет эти недочеты, а также зачастую открывают в маршрутизаторе Asus новые функции, которых не было в их родном ПО.
- Решено множество ошибок и проблем
- Улучшена стабильность работы
- Дополнительные программные утилиты, такие как торрент-клиент, менеджер загрузок Aria2, UPnP/DLNA A/V медиасервер и другие
- Расширены возможности диагностики
- Доработан механизм IGMP Snooping’а
- Встроен сервер NFS
- Добавлен L2TP/OpenVPN сервер
- Доработаны компоненты IPv6/PPTP/L2TP
Как скачать прошивку Padavan для Asus?
Удивительно, но скачать прошивку от Padavan для роутера Asus RT-N14U, которым я пользуюсь, мне не удалось с официального сайта ее разработчика — сейчас там выложена только версия для RT-N56U, хотя раньше, помнится, там можно было найти для очень большого количества моделей. Но немного погуглив, мне удалось найти один репозиторий, где лежала прошивка Padavan для Asus RT-N14U — надеюсь, что когда вы будете читать эту статью, ссылка еще будет актуальной, ибо сами знаете, в нашем мире все быстро меняется…
Находим свою модель и скачиваем к себе на компютер последний актуальный выпуск по порядковому номеру — обратите внимание, что файл прошивки для Asus должен заканчиваться на .TRX. Также я обнаружил, что тут есть несколько вариантов исполнения — для полного обновления выбирайте «FULL».
После этого подключаем к компу роутер по кабелю — на этом хочу сделать акцент, так как при обновлении ПО по WiFi могут возникнуть ошибки и маршрутизатор перестанет работать.
После чего заходим в админку. Здесь нам надо найти раздел «Администрирование» и открыть вкладку «Обновление микропрограммы». Сохранять резервную копию не имеет смысла, так как после прошивки на Padavan вы не сможете восстановить настройки из бэкапа, созданного на оригинальной версии ПО. Так что лучше вручную куда-нибудь перепишите все важные детали конфигурации.
Здесь нажимаем на кнопку «Выберите файл», выбираем с ПК тот самый загруженный файл прошивки, и нажимаем на кнопку «Отправить».
В течение нескольких минут роутер будет перепрошиваться, в это время ни его, ни компьютер нельзя выключать.
После завершения нас попросят вручную перезагрузить роутер.
Делаем это и заходим в панель управления — она будет находиться по тому же адресу, что и заводская Asus, 192.168.1.1, логин и пароль — admin/admin.
И попадаем в новый дизайн панели управления роутера Asus от Padavan
Настройка Padavan Firmware на маршрутизаторе Asus
Теперь здесь нужно все заново настроить. Для начала зайдем в раздел «Дополнительно — WAN» и выберем тип подключения к интернету — думаю, объяснять, как это сделать не стоит, так как однажды вы уже настраивали свой роутер в родной админке. Если нет, то прочитайте подробную инструкцию.
Далее заходим в раздел «Беспроводная 2.4 ГГц» (а у кого-то возможно будет доступна для настройки и сеть 5 ГГц, если роутер двухдиапазонный). Здесь активируем пункт «Включить радиомодуль», задаем SSID сети, то есть ее название, и ключ «WPA», то есть пароль для подключения.
В качестве типа шифрования выбирайте «WPA2-Personal» — он оптимально защищенный. Если хотите, то можно также задать расписание работы беспроводного сигнала и выбрать вручную канал WiFi
Сохраняются настройки прошивки Padavan кнопкой «Применить»
Видео обзор прошивки Padavan на Асус
Актуальные предложения:
Задать вопрос
- 10 лет занимается подключением и настройкой беспроводных систем
- Выпускник образовательного центра при МГТУ им. Баумана по специальностям «Сетевые операционные системы Wi-Fi», «Техническое обслуживание компьютеров», «IP-видеонаблюдение»
- Автор видеокурса «Все секреты Wi-Fi»
Padavan — это популярная альтернативная прошивка для роутеров Xiaomi, которая предлагает дополнительные функции и улучшает производительность устройства. В этой статье мы расскажем вам, как установить прошивку padavan на ваш роутер Xiaomi и настроить ее для оптимального использования.
Перед установкой padavan рекомендуется сделать бэкап всех настроек вашего роутера Xiaomi, чтобы в случае неудачной прошивки можно было вернуться к прежней версии. Также убедитесь, что у вас есть последняя версия прошивки padavan для вашей модели роутера Xiaomi.
Для установки padavan вам потребуется обновить прошивку на вашем роутере. Сначала скачайте файл с прошивкой padavan с официального сайта разработчика. Затем подключите ваш роутер Xiaomi к компьютеру с помощью Ethernet-кабеля и войдите в настройки роутера через браузер, введя IP-адрес роутера в строку поиска.
В меню настроек выберите вкладку «Обновление прошивки» и нажмите кнопку «Выбрать файл». Выберите скачанный файл с прошивкой padavan на вашем компьютере и нажмите кнопку «Обновить». После установки прошивки ваш роутер Xiaomi будет перезагружен и готов к использованию с новой прошивкой padavan.
После установки padavan вы можете настроить различные дополнительные функции и опции в меню настроек. Например, вы можете настроить сеть Wi-Fi, настроить VPN-соединение, создать гостевую сеть и изменить пароль администратора.
Прошивка padavan для роутеров Xiaomi предлагает широкие возможности для настройки и улучшения производительности вашего роутера. Следуйте нашей подробной инструкции для установки и настройки padavan, чтобы получить максимальную отдачу от вашего роутера Xiaomi.
Прошивка padavan для роутеров Xiaomi
Процесс установки прошивки padavan на роутер Xiaomi достаточно простой и состоит из нескольких шагов:
- Скачайте последнюю версию прошивки padavan для вашей модели роутера Xiaomi с официального сайта.
- Подключите роутер к компьютеру с помощью сетевого кабеля и откройте веб-браузер.
- Введите IP-адрес роутера в адресную строку браузера и нажмите «Enter». Обычно IP-адрес роутера Xiaomi — 192.168.1.1.
- Войдите в настройки роутера, введя логин и пароль администратора.
- В настройках роутера найдите раздел «Обновление прошивки» или «Файлы».
- Выберите скачанную прошивку padavan и нажмите кнопку «Обновить».
- Дождитесь окончания процесса установки прошивки. При этом роутер должен оставаться подключенным к компьютеру.
- Перезагрузите роутер после завершения установки прошивки.
После установки прошивки padavan ваш роутер Xiaomi будет предлагать широкий набор возможностей для настройки сети, включая управление доступом, настройку VPN, настройку портов, контроль скорости и многое другое. Вы сможете настроить свой роутер таким образом, чтобы он оптимально работал в вашей сети и соответствовал вашим потребностям.
При установке прошивки padavan обязательно следуйте инструкциям и не прерывайте процесс установки. Неправильная прошивка или неправильные настройки могут привести к неработоспособности роутера.
Установка прошивки padavan для роутеров Xiaomi — отличный способ улучшить функциональность и стабильность вашего роутера. Следуйте инструкции, и вскоре вы сможете наслаждаться более быстрой и удобной работой вашего роутера.
Подробная инструкция
В этом разделе мы расскажем о процессе прошивки роутеров Xiaomi с помощью Padavan. Прошивка Padavan позволяет расширить возможности маршрутизатора и добавить дополнительные функции, которых нет в оригинальной прошивке.
Процесс прошивки несложный, но требует аккуратности и следования определенной последовательности действий. Ниже представлена подробная инструкция по прошивке роутеров Xiaomi с использованием Padavan.
Шаг 1: Подготовка
1. Убедитесь, что роутер Xiaomi и компьютер соединены через сетевой кабель.
2. Скачайте прошивку Padavan с официального сайта проекта.
3. Распакуйте скачанный архив в удобное для вас место на компьютере.
Шаг 2: Настройка роутера
1. В браузере на компьютере введите адрес роутера (например, 192.168.1.1) и нажмите Enter.
2. В появившемся окне введите логин и пароль от роутера. Если вы ранее не меняли эти данные, используйте логин admin и пароль admin.
3. Перейдите в раздел «Настройки» или «Settings» (название может отличаться в зависимости от версии прошивки).
4. В разделе «Обновление прошивки» или «Firmware Upgrade» найдите кнопку «Выбрать файл» или «Choose File».
5. Выберите файл прошивки Padavan, который вы распаковали на предыдущем шаге.
6. Нажмите кнопку «Обновить» или «Upgrade» и дождитесь окончания процесса прошивки. Это может занять несколько минут.
Шаг 3: Подключение к новой прошивке
1. После завершения прошивки роутер автоматически перезагрузится.
2. Подключитесь к новой прошивке, введя адрес роутера в браузере и ввести логин и пароль, которые вы использовали на предыдущем шаге.
3. Теперь вы можете настроить новые функции и возможности, предоставляемые прошивкой Padavan.
Обратите внимание, что процесс прошивки может незначительно отличаться в зависимости от модели и версии роутера Xiaomi.
Прошивка роутера Xiaomi Mi WiFi Router – процесс весьма занятный и несложный, при этом иногда просто жизненно необходимый. Дело в том, что Mi-роутеры являются отличным решением для современных пользователей (как по доступной стоимости, так и согласно техническим характеристикам). Единственный момент, который может остановить русскоязычного покупателя – это китайский язык веб-интерфейса и множество иероглифов в настройках. Но и эта проблема не является неразрешимой – наша статья тому подтверждение.
Стоковая заводская прошивка первоначально присутствует на всех гаджетах, но ее легко заменить, пересадив web-интерфейс Asus на исходный код роутеров Xiaomi (да, это возможно). Смотрите сами!
Как прошить Xiaomi Mi WiFi роутер на Padavan
Всего 3 этапа отделяют нас от того, чтобы пользоваться всеми возможностями сетевого устройства без переводчиков и сторонней помощи.
Давайте поговорим обо всем по порядку. Вашему вниманию предлагается подробный мануал.
Следует зайти на официальный сайт:
http://www1.miwifi.com/miwifi_download.html
Выбираем вкладку ROM, качаем версию ПО для вашей модели роутера (не забываем выбрать автоперевод на русский для облегчения поиска):
Заходим в настройки по адресу 192.168.31.1, инструкция по входу есть в этой статье. Клик на 2-ой пункт из выпадающего списка (как показано на скриншоте):
Подгружаем ROM прошивку, выбрав ранее сохраненный файл. Нажимаем большую кнопу — устройство перезагрузится.
Следующий этап – подключение к своей беспроводной сети, скачивание фирменной программы Mi WiFi, создание учетной записи и привязка Mi-устройства к ней, если ранее вы этого не делали.
Переходим на сайт
https://account.xiaomi.com/pass/serviceLogin
.. с целью получения ключа по SSH-протоколу. Используем только что созданный нами профиль:
Заходим в личный аккаунт:
Так мы получили и сохранили файл «miwifi_ssh.bin». Копируем его на пустую флешку. Отключаем маршрутизатор от сети (обязательно!), вставляем в него флешку. Иголочкой зажимаем Reset на корпусе, подключаем адаптер питания. Дожидаемся, пока индикатор загорится синим цветом.
С помощью приложения Putti (SSH-клиент), заходим на 192.168.31.1, вводим логин и ключ (с веб-сайта Mi). В консоли должно появиться системное сообщение «ARE U OK». Первый сложный этап завершен, дальше будет проще.
- Осуществляем прошивку загрузчика – его скачиваем тут: https://breed.hackpascal.net/breed-mt7621-xiaomi-r3g.bin Переносим на пустую флешку, которую потом вставляем в роутер. Ищем, как она инсталлировалась – в консоли прописываем команду mount. Следующая команда: mtd write /extdisks/sda1/breed-mt7621-xiaomi-r3g.bin Bootloader – флеш-карту убираем, инсталлируем непосредственно файл прошивки Падаван – скачать можно на сайте: https://domoticzfaq.ru/download/MI-R3G.trx
- Отключаем адаптер от сети, снова используем клавишу сброса настроек, ожидаем сигнала светодиода (должен заморгать).
- В своем браузере прописываем известный нам адрес 192.168.1.1 — но теперь мы попадаем в Breed-загрузчик. Находим сохраненный файл Padavan. Подтверждаем действия:
На этом прошивка окончена!
Важно! Данная инструкция сделана на примере Xiaomi Router 3G, для остальных моделей с USB-портами нужно пробовать.
Статья получилась немного сумбурной, но такая подробность и многочисленные скриншоты точно «на руку новичкам», которым порой сложно разобраться с подобными нюансами конфигураций и управления. Надеемся, информация была вам полезна.
Если вы не согласны приобретать дорогостоящее сетевое оборудование, но нуждаетесь в мощном адаптере с хорошими показателями скорости, ОЗУ и т.д. — Padavan для Xiaomi роутера – то, что вам нужно! У прошивки удобная консоль управления и понятный интерфейс. Пользуйтесь смело!
Роутер Asus RT-N56U является популярным устройством, которое используется для подключения к Интернету и обеспечения беспроводного доступа к сети. Однако, стандартная прошивка этого роутера ограничивает его возможности и функциональность. В этой статье мы рассмотрим прошивку Padavan — альтернативную прошивку для роутера Asus RT-N56U, которая позволяет расширить функционал и улучшить производительность устройства.
Padavan — это современная и стабильная прошивка, основанная на открытом исходном коде проекта Tomato. Она обладает множеством полезных функций, таких как поддержка клиентского режима, возможность настройки виртуальных сетей, поддержка VPN и многое другое. Установка Padavan позволяет значительно увеличить функциональность роутера и настроить его под свои потребности.
В этой статье мы рассмотрим шаги по установке и настройке прошивки Padavan для роутера Asus RT-N56U. Мы подробно опишем процесс установки прошивки и расскажем о настройке основных функций, таких как беспроводные сети, сетевые настройки, безопасность и другие. Мы также рассмотрим некоторые полезные практики по оптимизации производительности и безопасности вашей сети.
Содержание
- Прошивка Padavan для роутера Asus RT-N56U
- Установка прошивки Padavan на роутер Asus RT-N56U
- Настройка прошивки Padavan для роутера Asus RT-N56U
Прошивка Padavan для роутера Asus RT-N56U
В данной статье мы рассмотрим, как установить и настроить прошивку Padavan для роутера Asus RT-N56U. Следуйте инструкциям, приведенным ниже:
- Первым шагом необходимо сделать резервную копию текущей прошивки вашего роутера на всякий случай.
- Скачайте последнюю версию прошивки Padavan для Asus RT-N56U с официального сайта проекта.
- Подключите компьютер к роутеру с помощью Ethernet-кабеля и войдите в его веб-интерфейс, открыв веб-браузер и введя IP-адрес роутера.
- В меню настройки роутера найдите раздел обновления прошивки и выберите скачанную ранее прошивку Padavan для установки.
- Дождитесь завершения процесса установки прошивки и перезагрузки роутера.
После установки прошивки Padavan на роутер Asus RT-N56U вы получите доступ к дополнительным функциям и настройкам, которые не предусмотрены в оригинальной прошивке. Вы сможете настраивать VPN-сервер, управлять правилами брандмауэра, создавать беспроводные сети гостей и многое другое. Учтите, что при установке сторонней прошивки вы можете потерять гарантию на устройство, поэтому будьте внимательны и следуйте инструкциям.
Установка прошивки Padavan на роутер Asus RT-N56U
Если вы хотите установить прошивку Padavan на свой роутер Asus RT-N56U, следуйте этим инструкциям:
Шаг 1: Скачайте последнюю версию прошивки Padavan для Asus RT-N56U с официального сайта разработчика.
Шаг 2: Перейдите в панель управления роутером, введя его IP-адрес в веб-браузере. Войдите в систему, используя логин и пароль (если они были установлены).
Шаг 3: Найдите раздел «Обновление прошивки» или «Firmware Upgrade» в меню настроек роутера.
Шаг 4: Загрузите файл прошивки Padavan, который вы скачали на предыдущем шаге. Нажмите кнопку «Обновить» или «Upgrade», чтобы начать процесс установки.
Шаг 5: Дождитесь завершения процесса установки. Роутер может перезагрузиться несколько раз во время этого процесса, будьте терпеливы.
Шаг 6: После успешной установки прошивки Padavan роутер перезагрузится и вы сможете войти в его панель управления снова.
Теперь вы можете настроить роутер с помощью нового интерфейса Padavan и воспользоваться дополнительными функциями, которые она предлагает.
Обратите внимание, что установка альтернативной прошивки может аннулировать гарантию на ваш роутер, поэтому будьте осторожны и следуйте инструкциям на официальном сайте.
Настройка прошивки Padavan для роутера Asus RT-N56U
После установки прошивки Padavan на роутер Asus RT-N56U необходимо произвести настройку для обеспечения правильной работы сети. В этом разделе мы рассмотрим основные шаги настройки прошивки.
1. Войдите в веб-интерфейс роутера, открыв браузер и введя в адресной строке IP-адрес роутера (например, 192.168.1.1) и нажав Enter.
2. Введите имя пользователя и пароль для входа в настройки роутера. По умолчанию имя пользователя и пароль — admin.
3. После успешного входа в настройки роутера откроется главная страница веб-интерфейса.
4. В меню настроек найдите раздел «Management» или «Управление» и выберите пункт «System Settings» или «Системные настройки».
5. В разделе «System Settings» найдите поле «Прошивка» или «Firmware» и нажмите на кнопку «Обзор» или «Browse».
6. В открывшемся окне выберите файл прошивки Padavan, который вы загрузили на свой компьютер, и нажмите «Открыть».
7. Нажмите кнопку «Прошить» или «Upgrade» для начала процесса обновления прошивки.
8. После завершения прошивки роутер автоматически перезагрузится.
9. После перезагрузки роутера зайдите в веб-интерфейс роутера снова, используя тот же IP-адрес и учетные данные.
10. В меню настроек найдите раздел «Wireless» или «Беспроводная сеть» и настройте параметры беспроводной сети (например, имя и пароль Wi-Fi).
11. Сохраните изменения, нажав кнопку «Сохранить» или «Save».
После завершения этих шагов прошивка Padavan должна быть успешно настроена на вашем роутере Asus RT-N56U, и вы сможете пользоваться улучшенными функциональными возможностями и стабильной работой сети.
Инструкций с разными вариантами обхода блокировок Интернет-ресурсов опубликовано огромное количество. Но тема не теряет актуальности. Даже всё чаще звучат инициативы на законодательном уровне заблокировать статьи о методах обхода блокировок. И появились слухи, что Роскомнадзор получит ещё одну пачку денег налогоплательщиков на «более лучшие» блокировки. Опытные пользователи ничего нового и полезного из статьи не узнают. А вот другие получат готовые пошаговые инструкции для простого и эффективного выборочного обхода блокировок на популярных маршрутизаторах с прошивкой Padavan и Keenetic.
Содержание
- Введение
- Как вы будете управлять обходом блокировок после настройки?
- Принцип работы
- Настройка маршрутизатора с прошивкой Padavan
- Настройка маршрутизатора с Keenetic OS
- Основные методы диагностики ошибок после настройки
- Дополнительный обход фильтрации DNS-запросов провайдером
Введение
Я около двух лет использовал вариант обхода блокировок от Zolg. На нём основываются многие инструкций в сети. Моя в том числе.
Всё было хорошо, но «лучшее всегда враг хорошего». Во-первых, некоторые новые программы стали слишком «умными» и резолвят домены собственными методами, минуя DNS-сервер маршрутизатора. Это не позволяет dnsmasq на маршрутизаторе добавить адрес во множество ipset для разблокировки и приводит к закономерному результату — ресурс остаётся заблокированным. В Android 9 вообще появилась штатная поддержка DNS-over-TLS, т.е. этот метод обхода блокировки перестаёт работать (если другое устройство ранее не обращалось к dnsmasq). Во-вторых, обновление всего списка доменов из antizapret приводит к непредсказуемым результатам каждый раз. В список могут попасть домены, которые в реальности не заблокированы, и работа которых важна через основной канал. Нужно постоянно быть начеку и руками править сгенерированные файлы. В-третьих, надоело «таскать за собой» огромный список доменов с десятком тысяч казино и подобные, которые просто не нужны. Со временем я понял, что мне нужен лишь небольшой конкретный список заблокированных ресурсов.
Так что я год уже использую немного изменённый метод разблокировки, которым полностью удовлетворён:
- Простота и лёгкость управления (после настройки).
- Полный контроль над тем, какие ресурсы нужно разблокировать.
- Минимальные требования к ресурсам процессора и ОЗУ маршрутизатора.
- Широкий охват нюансов при обходе блокировок.
Важно отметить, что мой вариант не предназначен для случая, когда вам нужно разблокировать сотни и тысячи доменов. Потому что при старте маршрутизатора происходит резолвинг каждого домена из заданного списка. Чем больше доменов в списке, тем дольше будет происходить инициализация множества ipset для разблокировки.
Основа обхода блокировок та же — сеть Tor. Её использование обусловлено двумя простыми факторами— бесплатность, и вероятность того, что Tor будет заблокирован в России, близка к нолю, в отличие от любого VPN-сервиса. Tor является фундаментом наркотрафика в России от среднего звена до самых низов. Блокировка Tor приведёт к поиску новых инструментов для рынка и снижению уровню анонимности, что повлечёт за собой успешную активизацию работы локальных правоохранительных органов. В конечном итоге это, как вирус, начнёт негативно влиять на верхнее звено. Учитывая последние удивительные новости о связях высших должностных лиц государства с глобальным наркотрафиком в Россию, блокировка Tor в России — это просто табу, хоть она и тривиальная. Ни Роскомнадзор, какие бы миллиарды не выделялись этому ведомству, ни один суд в России не имеют разрешения «сверху» для блокировки Tor. И это уже даже никого не удивляет и не пугает, хоть Россия просто утопает в наркотиках (любой школьник знает, что такое «дакнет», и через 30 минут имеет фактическую возможность в любом городе с населением от 10 тыс. человек беспрепятственно получить любые наркотики практически в любых количествах — такая злая правда жизни). При текущем режиме вероятность блокировки сети Tor ниже, чем вероятность блокировки сайта музея Эрмитаж.
Приведённую инструкцию легко адаптировать для маршрутизаторов с OpenWrt. Также, небольшими изменениям легко заменить Tor на OpenVPN.
Как вы будете управлять обходом блокировок после настройки?
Всё очень просто. У вас есть файл /opt/etc/unblock.txt — простой список для разблокировки. Вы можете разблокировать домен, IP-адрес, диапазон адресов или CIDR. Одна строка — один элемент. Допускаются пустые строки, и можно использовать символ # в начале строки для игнорирования.
Вот пример моего личного файла
###Торрент-трекеры
rutracker.org
rutor.info
rutor.is
mega-tor.org
kinozal.tv
nnm-club.me
nnm-club.ws
tfile.me
tfile-home.org
tfile1.cc
megatfile.cc
megapeer.org
megapeer.ru
tapochek.net
tparser.org
tparser.me
rustorka.com
uniongang.tv
fast-torrent.ru
###Каталоги медиаконтента для программ
rezka.ag
hdrezka.ag
hdrezka.me
filmix.co
filmix.cc
seasonvar.ru
###Книги
lib.rus.ec
flibusta.is
flibs.me
flisland.net
flibusta.site
###Телеграм
telegram.org
tdesktop.com
tdesktop.org
tdesktop.info
tdesktop.net
telesco.pe
telegram.dog
telegram.me
t.me
telegra.ph
web.telegram.org
desktop.telegram.org
updates.tdesktop.com
venus.web.telegram.org
flora.web.telegram.org
vesta.web.telegram.org
pluto.web.telegram.org
aurora.web.telegram.org
149.154.160.0/20
91.108.4.0/22
91.108.8.0/22
91.108.12.0/22
91.108.16.0/22
91.108.56.0/22
109.239.140.0/24
67.198.55.0/24
###Разное
7-zip.org
edem.tv
4pna.com
2019.vote
###Проверка Tor
check.torproject.org
###Пример разблокировки по IP (убрать # в начале строки)
#195.82.146.214
###Пример разблокировки по CIDR (убрать # в начале строки)
#103.21.244.0/22
###Пример разблокировки по диапазону (убрать # в начале строки)
#100.100.100.200-100.100.100.210
После редактирования этого файла вы просто выполняете команду для применения новой конфигурации:
unblock_update.sh
Все ресурсы из unblock.txt разблокируются без необходимости перезагружать маршрутизатор.
Принцип работы
- При инициализации маршрутизатора создаётся пустое множество IP-адресов ipset с именем unblock.
- В брандмауэр добавляется правило перенаправления всех пакетов с адресатами из unblock в сервис Tor.
- Запускается сервис Tor в режиме прозрачного прокси.
- Запускается специальный скрипт unblock_ipset.sh, который резолвит все домены из unblock.txt и добавляет их IP-адреса в множество unblock. IP-адреса, диапазоны и CIDR из этого файла тоже добавляются в unblock.
- Запускается dnsmasq с дополнительным конфигурационным файлом unblock.dnsmasq, в котором указано добавление IP-адресов доменов из unblock.txt в множество unblock при резолвинге.
- cron с определенной периодичностью запускает unblock_ipset.sh, чтобы частично компенсировать возможные случаи с нюансами.
- При необходимости все домены из unblock.txt (и только они) резолвятся через dnscrypt-proxy, если провайдер фильтрует DNS.
Настройка маршрутизатора с прошивкой Padavan
У вас должен быть маршрутизатор с установленной прошивкой Padavan и уже настроенным менеджером пакетов Entware. В Windows для подключения подключения к маршрутизатору по SSH вы можете использовать клиент PuTTY.
Убедитесь, что у вас используется Entware, а не устаревший Entware-ng. Посмотрите содержимое папки /opt/var/opkg-lists. Там будет присутствовать файл entware или entware-ng. Во втором случае вам нужно обновить прошивку Padavan вашего маршрутизатора до последней версии и заново установить менеджер пакетов Entware. Только после этого приступайте к пошаговой инструкции.
Как показали отзывы, в основном проблемы возникают у тех, у кого Entware настроен неверно изначально (т.е. не загружаются скрипты из init.d) во внутренней памяти маршрутизатора. Если у вас Xiaomi Mi Router 3 или 3G, и вы не уверены, что Entware во внутренней памяти у вас работает корректно (автоматический запуск), то просто всё настройте заново. Берёте PROMETHEUS. Обновляет скрипт (1). Обновляете исходный код (2). Собираете и прошиваете самую актуальную прошивку (4). Сбрасываете настройки прошивки (NVRAM и хранилище файлов) — Дополнительно > Администрирование > Настройки. Настраиваете доступ в Интернет на маршрутизаторе и включаете SSH. Выполняете в PROMETHEUS Firmware > Форматирование RWFS. Выбираете Дополнительно > Администрирование > Настройки > Монтировать файловую систему в R/W раздел > UBIFS. Перезагрузите маршрутизатор. Все актуальные скрипты запускаа Entware из внутренней памяти будут прописаны автоматически, и всё будет работать как часы.
Для тестов я использовал популярный Xiaomi Mi Router 3G (Entware установлен во внутреннюю память) с самой свежей прошивкой — 32a93db. Всё будет работать даже на легендарном малыше WT3020 AD/F/H за 10$.
1. Установка необходимого ПО на маршрутизаторе
opkg update
opkg install mc tor tor-geoip bind-dig cron
mc — файловый менеджер Midnight Commander. Он нужен лишь из-за удобного редактора mcedit. Если вы привыкли пользоваться другим текстовым редактором, то mc можно не устанавливать.
tor — сервис Tor.
tor-geoip — база гео-IP для Tor.
bind-dig — DNS-клиент (аналог nslookup и host).
cron — планировщик заданий.
2. Инициализация ipset, создание множества IP-адресов unblock (start_script.sh)
Подключите необходимые модули и создайте пустое множество адресов с именем unblock при загрузке маршрутизатора. Для этого откройте в редакторе файл /etc/storage/start_script.sh:
mcedit /etc/storage/start_script.sh
Добавьте в конце:
modprobe ip_set
modprobe ip_set_hash_ip
modprobe ip_set_hash_net
modprobe ip_set_bitmap_ip
modprobe ip_set_list_set
modprobe xt_set
ipset create unblock hash:net
Чтобы вставить из буфера, используйте Shift+Insert, сохранить — F2, выйти — F10.
При желании вы можете отредактировать файл start_script.sh через веб-интерфейс маршрутизатора — «Дополнительно» > «Персонализация» > «Скрипты» > «Выполнить перед инициализацией маршрутизатора». После редактирования нажмите «Применить».
3. Настройка Tor
Удалите содержимое конфигурационного файла Tor:
cat /dev/null > /opt/etc/tor/torrc
Откройте файл конфигурации Tor:
mcedit /opt/etc/tor/torrc
Вставьте (Shift+Insert) содержимое:
User admin
PidFile /opt/var/run/tor.pid
ExcludeExitNodes {RU},{UA},{AM},{KG},{BY}
StrictNodes 1
TransPort 192.168.0.1:9141
ExitRelay 0
ExitPolicy reject *:*
ExitPolicy reject6 *:*
GeoIPFile /opt/share/tor/geoip
GeoIPv6File /opt/share/tor/geoip6
DataDirectory /opt/var/lib/tor
Замените при необходимости 192.168.0.1 на внутренний адрес вашего маршрутизатора (LAN). Краткое описание конфигурации:
- Исключить выходные узлы: Россия, Украина, Армения Киргизия, Беларусь.
- Повесить «прозрачный» прокси на адрес 192.168.0.1, порт 9141.
- Запретить быть точкой выхода.
4. Список доменов (и не только) для обхода блокировки (unblock.txt)
unblock.txt — простой список для разблокировки. Вы можете разблокировать домен, IP-адрес, диапазон или CIDR. Одна строка — один элемент. Пустые строки (в том числе с пробелами и табуляциями) игнорируются. Можно использовать символ # в начале строки для игнорирования.
Создайте файл /opt/etc/unblock.txt:
mcedit /opt/etc/unblock.txt
Каждая строка может содержать доменное имя, IP-адрес, диапазон или CIDR. Можно использовать символ # для комментирования строк.
Вот пример моего личного файла
###Торрент-трекеры
rutracker.org
rutor.info
rutor.is
mega-tor.org
kinozal.tv
nnm-club.me
nnm-club.ws
tfile.me
tfile-home.org
tfile1.cc
megatfile.cc
megapeer.org
megapeer.ru
tapochek.net
tparser.org
tparser.me
rustorka.com
uniongang.tv
fast-torrent.ru
###Каталоги медиаконтента для программ
rezka.ag
hdrezka.ag
hdrezka.me
filmix.co
filmix.cc
seasonvar.ru
###Книги
lib.rus.ec
flibusta.is
flibs.me
flisland.net
flibusta.site
###Телеграм
telegram.org
tdesktop.com
tdesktop.org
tdesktop.info
tdesktop.net
telesco.pe
telegram.dog
telegram.me
t.me
telegra.ph
web.telegram.org
desktop.telegram.org
updates.tdesktop.com
venus.web.telegram.org
flora.web.telegram.org
vesta.web.telegram.org
pluto.web.telegram.org
aurora.web.telegram.org
149.154.160.0/20
91.108.4.0/22
91.108.8.0/22
91.108.12.0/22
91.108.16.0/22
91.108.56.0/22
109.239.140.0/24
67.198.55.0/24
###Разное
7-zip.org
edem.tv
4pna.com
2019.vote
###Проверка Tor
check.torproject.org
###Пример разблокировки по IP (убрать # в начале строки)
#195.82.146.214
###Пример разблокировки по CIDR (убрать # в начале строки)
#103.21.244.0/22
###Пример разблокировки по диапазону (убрать # в начале строки)
#100.100.100.200-100.100.100.210
5. Скрипт для заполнения множества unblock IP-адресами заданного списка доменов (unblock_ipset.sh)
Создайте скрипт /opt/bin/unblock_ipset.sh:
mcedit /opt/bin/unblock_ipset.sh
Вставьте (Shift+Insert) содержимое:
#!/bin/sh
until ADDRS=$(dig +short google.com @localhost) && [ -n "$ADDRS" ] > /dev/null 2>&1; do sleep 5; done
while read line || [ -n "$line" ]; do
[ -z "$line" ] && continue
[ "${line:0:1}" = "#" ] && continue
cidr=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/[0-9]{1,2}')
if [ ! -z "$cidr" ]; then
ipset -exist add unblock $cidr
continue
fi
range=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}-[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')
if [ ! -z "$range" ]; then
ipset -exist add unblock $range
continue
fi
addr=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')
if [ ! -z "$addr" ]; then
ipset -exist add unblock $addr
continue
fi
dig +short $line @localhost | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | awk '{system("ipset -exist add unblock "$1)}'
done < /opt/etc/unblock.txt
Дайте права на исполнение:
chmod +x /opt/bin/unblock_ipset.sh
Скрипт достаточно простой, вот суть его работы… Ждём, когда заработает резолвинг домена google.com (если этого не сделать, то при загрузке маршрутизатора не будет заполнено множество unblock, т.к. маршрутизатор будет находиться ещё в процессе инициализации). Читаем строки в файле unblock.txt. У прочитанных строк автоматически удалены пробелы и табуляция в начале и в конце. Пропускаем пустые строки. Пропускаем строки, которые начинают на символ #. Ищем в строке CIDR. Если CIDR найден, то добавляем его в unblock. Ищем в строке диапазон. Если он найден, то добавляем его в unblock. Ищем в строке IP-адрес. Если IP найден, то добавляем его в unblock. Резолвим строку через dig. Все IP-адреса результата добавляем в unblock.
6. Скрипт для формирования дополнительного конфигурационного файла dnsmasq из заданного списка доменов (unblock_dnsmasq.sh)
Создайте скрипт /opt/bin/unblock_dnsmasq.sh:
mcedit /opt/bin/unblock_dnsmasq.sh
Вставьте (Shift+Insert) содержимое:
#!/bin/sh
cat /dev/null > /opt/etc/unblock.dnsmasq
while read line || [ -n "$line" ]; do
[ -z "$line" ] && continue
[ "${line:0:1}" = "#" ] && continue
echo $line | grep -Eq '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' && continue
echo "ipset=/$line/unblock" >> /opt/etc/unblock.dnsmasq
done < /opt/etc/unblock.txt
Дайте права на исполнение:
chmod +x /opt/bin/unblock_dnsmasq.sh
Скрипт достаточно простой, вот суть его работы… Последовательно читаем строки из /opt/etc/unblock.txt. У прочитанных строк автоматически удалены пробелы и табуляция в начале и в конце. Пропускаем пустые строки. Пропускаем строки, которые начинают на #. Пропускаем строки, которые содержат IP-адрес (IP, диапазон, CIDR), т.е. нас интересуют только строки с именами доменов. В файл /opt/etc/unblock.dnsmasq вносим строки вида «ipset=/доменное_имя/unblock». Это означает, что после определения IP-адресов конкретного домена они будут автоматически добавлены во множество unblock.
Обязательно запустите скрипт для генерация файла unblock.dnsmasq:
unblock_dnsmasq.sh
Проверьте, что файл unblock.dnsmasq создался:
cat /opt/etc/unblock.dnsmasq
7. Скрипт ручного принудительного обновления системы после редактирования списка доменов (unblock_update.sh)
Создайте скрипт /opt/bin/unblock_update.sh:
mcedit /opt/bin/unblock_update.sh
Вставьте (Shift+Insert) содержимое:
#!/bin/sh
ipset flush unblock
/opt/bin/unblock_dnsmasq.sh
restart_dhcpd
sleep 3
/opt/bin/unblock_ipset.sh &
Дайте права на исполнение:
chmod +x /opt/bin/unblock_update.sh
8. Скрипт автоматического заполнения множества unblock при загрузке маршрутизатора (S99unblock)
Создайте скрипт /opt/etc/init.d/S99unblock:
mcedit /opt/etc/init.d/S99unblock
Вставьте (Shift+Insert) содержимое:
#!/bin/sh
[ "$1" != "start" ] && exit 0
/opt/bin/unblock_ipset.sh &
Дайте права на исполнение:
chmod +x /opt/etc/init.d/S99unblock
9. Перенаправление пакетов с адресатами из unblock в Tor (post_iptables_script.sh)
Откройте в редакторе файл /etc/storage/post_iptables_script.sh:
mcedit /etc/storage/post_iptables_script.sh
Добавьте в конце:
iptables -t nat -A PREROUTING -i br0 -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 9141
При желании вы можете отредактировать файл post_iptables_script.sh через веб-интерфейс маршрутизатора — «Дополнительно» > «Персонализация» > «Скрипты» > «Выполнить после перезапуска правил брандмауэра». После редактирования нажмите «Применить».
В этот же файл вы можете добавить (это необязательно) перенаправление всех запросов на внешний порт 53 на себя. Это нужно, чтобы клиенты в локальной сети не использовали сторонние DNS-сервисы. Запросы будут идти через штатный DNS-сервер.
iptables -t nat -I PREROUTING -i br0 -p udp --dport 53 -j DNAT --to 192.168.0.1
iptables -t nat -I PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to 192.168.0.1
Замените при необходимости 192.168.0.1 на внутренний адрес вашего маршрутизатора (LAN).
10. Подключение дополнительного конфигурационного файла к dnsmasq
Нам необходимо подключить созданный файл unblock.dnsmasq к dnsmasq. Для этого откройте в редакторе файл /etc/storage/dnsmasq/dnsmasq.conf:
mcedit /etc/storage/dnsmasq/dnsmasq.conf
Добавьте в конце:
conf-file=/opt/etc/unblock.dnsmasq
Если хотите (это необязательно), можете добавить дополнительный сервер для резолвинга и надёжности:
server=8.8.8.8
При желании вы можете отредактировать файл dnsmasq.conf через веб-интерфейс маршрутизатора — «Дополнительно» > «LAN» > «DHCP-сервер» > «Пользовательский файл конфигурации dnsmasq.conf». После редактирования нажмите «Применить».
11. Добавление задачи в cron для периодического обновления содержимого множества unblock
Это дополнительная страховка на тот случай, если программы/устройства используют свой собственный метод резолвинга, а IP-адрес домена изменился. Всё, что нужно сделать, это с желаемой периодичностью запускать скрипт unblock_ipset.sh. Для примера будем запускать каждый день в 6 утра.
Замените в файле конфигурации cron имя root на admin:
sed -i 's/root/admin/g' /opt/etc/crontab
Откройте в редакторе файл /opt/etc/crontab:
mcedit /opt/etc/crontab
Добавьте в конце:
00 06 * * * admin /opt/bin/unblock_ipset.sh
При желании вы можете закомментировать все остальные шаблонные задачи. Вот, как будет выглядеть ваш файл crontab:
12. Перезагрузка маршрутизатора
Выполните команду:
reboot
После перезагрузки откройте в браузере сайт check.torproject.org (он должен быть добавлен в unblock.txt). Если вы всё сделали верно, то вы увидите надпись «Congratulations. This browser is configured to use Tor.»:
Настройка маршрутизатора с Keenetic OS
У вас должен быть маршрутизатор Keenetic/Zyxel с уже настроенным менеджером пакетов Entware (OPKG). Например, вот список некоторых маршрутизаторов, которые поддерживают Entware: Keenetic II, Keenetic III, Extra, Extra II, Giga II, Giga III, Omni, Omni II, Viva, Ultra, Ultra II, Omni (KN-1410), Extra (KN-1710), Giga (KN-1010), Ultra (KN-1810), Viva (KN-1910), DSL (KN-2010), Duo (KN-2110). Инструкцию по настройке Entware можно посмотреть тут (до 10 пункта).
Если ранее (с прошивкой младше 2.07) вы уже добавляли поддержку Entware, то убедитесь, что у вас используется не устаревший Entware-ng.
Обязательно включите «Модули ядра подсистемы Netfilter» — Общие настройки > Изменить набор компонентов. Если его нет в списке доступных, то пробуйте установить сначала компонент «Протокол IPv6». Если после этого не появляется, то пробуйте без него, но высокая вероятность, что у вас не будет работать разблокировка по диапазону и CIDR (т.к. не будет поддержки множества hash:net).
Для тестов я использовал Keenetic Ultra (KN-1810) с самой свежей прошивкой — 2.14.C.0.0-4.
Важное замечание. Вам придётся отключить штатный DNS-сервер в системе, мы будем использовать dnsmasq вместо него. Вы потеряете возможность назначать DNS-сервисы (Яндекс.DNS/SkyDNS/AdGuard DNS) индивидуально для клиентов, но без проблем сможете использовать их глобально через настройки dnsmasq при необходимости.
1. Установка необходимого ПО на маршрутизаторе
opkg update
opkg install mc tor tor-geoip bind-dig cron dnsmasq-full ipset iptables
mc — файловый менеджер Midnight Commander. Он нужен лишь из-за удобного редактора mcedit. Если вы привыкли пользоваться другим текстовым редактором, то mc можно не устанавливать.
tor — сервис Tor.
tor-geoip — база гео-IP для Tor.
bind-dig — DNS-клиент (аналог nslookup и host).
cron — планировщик заданий.
dnsmasq-full — DNS-сервер.
ipset и iptables — консольные утилиты ipset и iptables (возможно, они уже есть в системе и не нужны, я добавил их для подстраховки).
2. Инициализация ipset, создание множества IP-адресов unblock (100-ipset.sh)
Проверьте, что в системе вашего маршрутизатора есть поддержка множества hash:net (как оказалась, не во всех маршрутизаторах Keenetic она есть):
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) содержимое:
#!/bin/sh
[ "$1" != "start" ] && exit 0
ipset create unblock hash:net -exist
exit 0
Чтобы вставить из буфера, используйте Shift+Insert, сохранить — F2, выйти — F10.
Дайте права на исполнение:
chmod +x /opt/etc/ndm/fs.d/100-ipset.sh
3. Настройка Tor
Удалите содержимое конфигурационного файла Tor:
cat /dev/null > /opt/etc/tor/torrc
Откройте файл конфигурации Tor:
mcedit /opt/etc/tor/torrc
Вставьте (Shift+Insert) содержимое:
User root
PidFile /opt/var/run/tor.pid
ExcludeExitNodes {RU},{UA},{AM},{KG},{BY}
StrictNodes 1
TransPort 192.168.0.1:9141
ExitRelay 0
ExitPolicy reject *:*
ExitPolicy reject6 *:*
GeoIPFile /opt/share/tor/geoip
GeoIPv6File /opt/share/tor/geoip6
DataDirectory /opt/var/lib/tor
Замените при необходимости 192.168.0.1 на внутренний адрес вашего маршрутизатора (LAN). Краткое описание конфигурации:
- Исключить выходные узлы: Россия, Украина, Армения Киргизия, Беларусь.
- Повесить «прозрачный» прокси на адрес 192.168.0.1, порт 9141.
- Запретить быть точкой выхода.
4. Список доменов (и не только) для обхода блокировки (unblock.txt)
unblock.txt — простой список для разблокировки. Вы можете разблокировать домен, IP-адрес, диапазон или CIDR. Одна строка — один элемент. Пустые строки (в том числе с пробелами и табуляциями) игнорируются. Можно использовать символ # в начале строки для игнорирования.
Создайте файл /opt/etc/unblock.txt:
mcedit /opt/etc/unblock.txt
Каждая строка может содержать доменное имя, IP-адрес, диапазон или CIDR. Можно использовать символ # для комментирования строк.
Вот пример моего личного файла
###Торрент-трекеры
rutracker.org
rutor.info
rutor.is
mega-tor.org
kinozal.tv
nnm-club.me
nnm-club.ws
tfile.me
tfile-home.org
tfile1.cc
megatfile.cc
megapeer.org
megapeer.ru
tapochek.net
tparser.org
tparser.me
rustorka.com
uniongang.tv
fast-torrent.ru
###Каталоги медиаконтента для программ
rezka.ag
hdrezka.ag
hdrezka.me
filmix.co
filmix.cc
seasonvar.ru
###Книги
lib.rus.ec
flibusta.is
flibs.me
flisland.net
flibusta.site
###Телеграм
telegram.org
tdesktop.com
tdesktop.org
tdesktop.info
tdesktop.net
telesco.pe
telegram.dog
telegram.me
t.me
telegra.ph
web.telegram.org
desktop.telegram.org
updates.tdesktop.com
venus.web.telegram.org
flora.web.telegram.org
vesta.web.telegram.org
pluto.web.telegram.org
aurora.web.telegram.org
149.154.160.0/20
91.108.4.0/22
91.108.8.0/22
91.108.12.0/22
91.108.16.0/22
91.108.56.0/22
109.239.140.0/24
67.198.55.0/24
###Разное
7-zip.org
edem.tv
4pna.com
2019.vote
###Проверка Tor
check.torproject.org
###Пример разблокировки по IP (убрать # в начале строки)
#195.82.146.214
###Пример разблокировки по CIDR (убрать # в начале строки)
#103.21.244.0/22
###Пример разблокировки по диапазону (убрать # в начале строки)
#100.100.100.200-100.100.100.210
5. Скрипт для заполнения множества unblock IP-адресами заданного списка доменов (unblock_ipset.sh)
Создайте скрипт /opt/bin/unblock_ipset.sh:
mcedit /opt/bin/unblock_ipset.sh
Вставьте (Shift+Insert) содержимое:
#!/bin/sh
until ADDRS=$(dig +short google.com @localhost) && [ -n "$ADDRS" ] > /dev/null 2>&1; do sleep 5; done
while read line || [ -n "$line" ]; do
[ -z "$line" ] && continue
[ "${line:0:1}" = "#" ] && continue
cidr=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/[0-9]{1,2}')
if [ ! -z "$cidr" ]; then
ipset -exist add unblock $cidr
continue
fi
range=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}-[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')
if [ ! -z "$range" ]; then
ipset -exist add unblock $range
continue
fi
addr=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')
if [ ! -z "$addr" ]; then
ipset -exist add unblock $addr
continue
fi
dig +short $line @localhost | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | awk '{system("ipset -exist add unblock "$1)}'
done < /opt/etc/unblock.txt
Дайте права на исполнение:
chmod +x /opt/bin/unblock_ipset.sh
Скрипт достаточно простой, вот суть его работы… Ждём, когда заработает резолвинг домена google.com (если этого не сделать, то при загрузке маршрутизатора не будет заполнено множество unblock, т.к. маршрутизатор будет находиться ещё в процессе инициализации). Читаем строки в файле unblock.txt. У прочитанных строк автоматически удалены пробелы и табуляция в начале и в конце. Пропускаем пустые строки. Пропускаем строки, которые начинают на символ #. Ищем в строке CIDR. Если CIDR найден, то добавляем его в unblock. Ищем в строке диапазон. Если он найден, то добавляем его в unblock. Ищем в строке IP-адрес. Если IP найден, то добавляем его в unblock. Резолвим строку через dig. Все IP-адреса результата добавляем в unblock.
6. Скрипт для формирования дополнительного конфигурационного файла dnsmasq из заданного списка доменов (unblock_dnsmasq.sh)
Создайте скрипт /opt/bin/unblock_dnsmasq.sh:
mcedit /opt/bin/unblock_dnsmasq.sh
Вставьте (Shift+Insert) содержимое:
#!/bin/sh
cat /dev/null > /opt/etc/unblock.dnsmasq
while read line || [ -n "$line" ]; do
[ -z "$line" ] && continue
[ "${line:0:1}" = "#" ] && continue
echo $line | grep -Eq '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' && continue
echo "ipset=/$line/unblock" >> /opt/etc/unblock.dnsmasq
done < /opt/etc/unblock.txt
Дайте права на исполнение:
chmod +x /opt/bin/unblock_dnsmasq.sh
Скрипт достаточно простой. Последовательно читаем строки из /opt/etc/unblock.txt. У прочитанных строк автоматически удалены пробелы и табуляция в начале и в конце. Пропускаем пустые строки. Пропускаем строки, которые начинают на #. Пропускаем строки, которые содержат IP-адрес (IP или CIDR), т.е. нас интересуют только строки с именами доменов. В файл /opt/etc/unblock.dnsmasq вносим строки вида «ipset=/доменное_имя/unblock». Это означает, что после определения IP-адресов конкретного домена они будут автоматически добавлены во множество unblock.
Обязательно запустите скрипт для генерация файла unblock.dnsmasq:
unblock_dnsmasq.sh
Проверьте, что файл unblock.dnsmasq создался:
cat /opt/etc/unblock.dnsmasq
7. Скрипт ручного принудительного обновления системы после редактирования списка доменов (unblock_update.sh)
Создайте скрипт /opt/bin/unblock_update.sh:
mcedit /opt/bin/unblock_update.sh
Вставьте (Shift+Insert) содержимое:
#!/bin/sh
ipset flush unblock
/opt/bin/unblock_dnsmasq.sh
/opt/etc/init.d/S56dnsmasq restart
/opt/bin/unblock_ipset.sh &
Дайте права на исполнение:
chmod +x /opt/bin/unblock_update.sh
8. Скрипт автоматического заполнения множества unblock при загрузке маршрутизатора (S99unblock)
Создайте скрипт /opt/etc/init.d/S99unblock:
mcedit /opt/etc/init.d/S99unblock
Вставьте (Shift+Insert) содержимое:
#!/bin/sh
[ "$1" != "start" ] && exit 0
/opt/bin/unblock_ipset.sh &
Дайте права на исполнение:
chmod +x /opt/etc/init.d/S99unblock
9. Перенаправление пакетов с адресатами из unblock в Tor (100-redirect.sh)
Для этого создайте файл /opt/etc/ndm/netfilter.d/100-redirect.sh:
mcedit /opt/etc/ndm/netfilter.d/100-redirect.sh
Вставьте (Shift+Insert) содержимое:
#!/bin/sh
[ "$type" == "ip6tables" ] && exit 0
if [ -z "$(iptables-save 2>/dev/null | grep unblock)" ]; then
ipset create unblock hash:net -exist
iptables -w -t nat -A PREROUTING -i br0 -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 9141
fi
exit 0
Если вы в шаге 2 использовали hash:ip, а не hash:net, то замените hash:net на hash:ip. Фактически мы дополнительно дублируем функцию создания множества unblock из 2 шага. Это нужно для подстраховки, если скрипты из fs.d ещё не начали запускаться, а скрипты netfilter.d уже запускаются. Ничего страшного, если unblock уже было создано ранее, команда просто будет проигнорирована.
В этот же файл вы можете добавить (это необязательно) перенаправление всех запросов на внешний порт 53 на себя. Это нужно, чтобы клиенты в локальной сети не использовали сторонние DNS-сервисы. Запросы будут идти через штатный DNS-сервер. Перед последним exit добавьте:
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.0.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.0.1
fi
Замените при необходимости 192.168.0.1 на внутренний адрес вашего маршрутизатора (LAN).
Дайте права на исполнение:
chmod +x /opt/etc/ndm/netfilter.d/100-redirect.sh
10. Настройка dnsmasq и подключение дополнительного конфигурационного файла к dnsmasq
Удалите содержимое конфигурационного файла dnsmasq:
cat /dev/null > /opt/etc/dnsmasq.conf
Откройте файл конфигурации dnsmasq:
mcedit /opt/etc/dnsmasq.conf
Вставьте (Shift+Insert) содержимое:
user=nobody
bogus-priv
no-negcache
clear-on-reload
bind-dynamic
listen-address=192.168.0.1
listen-address=127.0.0.1
min-port=4096
cache-size=1536
expand-hosts
log-async
conf-file=/opt/etc/unblock.dnsmasq
server=8.8.8.8
Замените при необходимости 192.168.0.1 на внутренний адрес вашего маршрутизатора (LAN).
11. Добавление задачи в cron для периодического обновления содержимого множества unblock
Это дополнительная страховка на тот случай, если программы/устройства используют свой собственный метод резолвинга, а IP-адрес домена изменился. Всё, что нужно сделать, это с желаемой периодичностью запускать скрипт unblock_ipset.sh. Для примера будем запускать каждый день в 6 утра.
Откройте в редакторе файл /opt/etc/crontab:
mcedit /opt/etc/crontab
Добавьте в конце:
00 06 * * * root /opt/bin/unblock_ipset.sh
При желании вы можете закомментировать все остальные шаблонные задачи. Вот, как будет выглядеть ваш файл crontab:
12. Отключение штатного DNS-сервера и перезагрузка маршрутизатора
Подключитесь к CLI маршрутизатора Keenetic (порт 23 для Telnet и 22 для SSH, если в системе добавлен компонент «Сервер SSH»).
Выполните команду:
opkg dns-override
system configuration save
system reboot
Встроенный в прошивку DNS-сервер будет выключен, и вместо него будет использоваться dnsmasq из состава Entware. Маршрутизатор при загрузке проверяет, подмонтирована ли папка opt (есть ли флешка/диск с Entware). Если есть, то штатный DNS-сервер не используется. Если нет, используется. Т.е. вынув флешку и перезагрузив маршрутизатор, у вас всё будет работать, как и раньше (перед настройкой).
После перезагрузки откройте в браузере сайт check.torproject.org (он должен быть добавлен в unblock.txt). Если вы всё сделали верно, то вы увидите надпись «Congratulations. This browser is configured to use Tor.»:
Основные методы диагностики ошибок после настройки
Если проверка с сайтом check.torproject.org (он должен быть добавлен в unblock.txt) проходит, но для других ресурсов продолжает открываться заглушка от провайдера (или не открываются), скорее всего, провайдер вмешивается в DNS-трафик, подменяя ответы — вам нужно сделать дополнительный обход фильтрации DNS-запросов.
Если после настройки что-то работает не так, как нужно, используйте простые команды для определения проблемного этапа.
Отобразите содержимое множества unblock:
ipset list unblock
Если система сообщит, что такого множества нет, то ошибка на этапе 2 или вы не включили модуль Netfilter в системе (в случае с Keenetic).
Если множество окажется пустым, то не отработал скрипт unblock_ipset.sh, который в свою очередь должен быть запущен стартовым скриптом S99unblock. Запустите этот скрипт unblock_ipset.sh вручную. Если множество заполнилось, то ошибка на этапе 8. Если скрипт не может выполниться (скорее всего, ожидает резолвинга google.com), то ошибка где-то на стороне DNS-сервера, возможно, на этапе 10 или 6.
Проверьте наличие редиректа в iptables:
iptables-save 2>/dev/null | grep unblock
Если его нет, то ошибка на этапе 9.
Если вообще все сайты не работают, т.е. не работает DNS, ошибка где-то в этапе 6 или 10. Возможно, на этапе 9.
Если все сайты из unblock.txt не работают (превышено время ожидания), но все другие работают, то проблема где-то на стороне Tor, ошибка на этапе 3.
Дополнительный обход фильтрации DNS-запросов провайдером
Если провайдер вмешивается в DNS-трафик, подменяя ответы для заблокированных ресурсов, это очень просто обойти. Для этого мы будем использовать dnscrypt-proxy. При желании и опыте вы легко можете заменить dnscrypt на stubby (DNS over TLS).
dnscrypt будет использоваться только для тех доменов, которые перечислены в unblock.txt. Все остальные запросы будут идти через штатные DNS-серверы.
Если вы уверены, что ваш провайдер не фильтрует DNS-запросы, то эту дополнительную настройку делать не нужно.
У вас уже должен быть настроен описанный выше обход блокировок. Нижеследующие настройки идентичны для Padavan и Keenetic OS.
Установите дополнительное ПО на маршрутизаторе:
opkg update
opkg install dnscrypt-proxy2
Откройте файл конфигурации dnscrypt-proxy:
mcedit /opt/etc/dnscrypt-proxy.toml
Найдите параметры listen_addresses, fallback_resolver, cache и измените их:
listen_addresses = ['127.0.0.1:9153']
fallback_resolver = '77.88.8.8:1253'
cache = false
77.88.8.8:1253 — это адрес DNS-сервера Яндекс с нестандартным портом. Он является резервным на тот случай, если у dnscrypt-proxy возникнут какие-то проблемы.
Запустите dnscrypt-proxy:
/opt/etc/init.d/S09dnscrypt-proxy2 start
Убедитесь, что dnscrypt-proxy работает (вы должны в ответ увидеть список IP-адресов):
dig +short google.com @localhost -p 9153
Откройте в редакторе скрипт /opt/bin/unblock_ipset.sh:
mcedit /opt/bin/unblock_ipset.sh
Замените содержимое на:
#!/bin/sh
until ADDRS=$(dig +short google.com @localhost -p 9153) && [ -n "$ADDRS" ] > /dev/null 2>&1; do sleep 5; done
while read line || [ -n "$line" ]; do
[ -z "$line" ] && continue
[ "${line:0:1}" = "#" ] && continue
cidr=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/[0-9]{1,2}')
if [ ! -z "$cidr" ]; then
ipset -exist add unblock $cidr
continue
fi
range=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}-[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')
if [ ! -z "$range" ]; then
ipset -exist add unblock $range
continue
fi
addr=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')
if [ ! -z "$addr" ]; then
ipset -exist add unblock $addr
continue
fi
dig +short $line @localhost -p 9153 | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | awk '{system("ipset -exist add unblock "$1)}'
done < /opt/etc/unblock.txt
Мы внесли небольшое изменение — теперь dig для резолвинга использует не штатный DNS-сервер, а dnscrypt-proxy с портом 9153.
Откройте в редакторе скрипт /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
[ "${line:0:1}" = "#" ] && continue
echo $line | grep -Eq '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' && continue
echo "ipset=/$line/unblock" >> /opt/etc/unblock.dnsmasq
echo "server=/$line/127.0.0.1#9153" >> /opt/etc/unblock.dnsmasq
done < /opt/etc/unblock.txt
Мы внесли небольшое изменение — теперь при генерации файла unblock.dnsmasq дополнительно вносятся строки вида «server=/доменное_имя/127.0.0.1#9153». Это означает, что резолвинг доменов из списка будет происходить через dnscrypt-proxy.
Выполните unblock_update.sh:
unblock_update.sh
Готово. Все сложные настройки позади. Теперь вы будете только редактировать список unblock.txt при необходимости, добавляя или удаляя из него домены или IP-адреса для разблокировки, и командой unblock_update.sh активировать внесённые изменения.
UPDATE 01.04.2019. Часто приходят личные сообщения по статье с типовыми вопросами. Отвечу тут на самые распространённые.
Как сделать доступными сайты доменной зоны .onion?
В torrc добавить:
VirtualAddrNetwork 10.254.0.0/16
DNSPort 127.0.0.1:9053
AutomapHostsOnResolve 1
Для доступа ко всем доменам зоны onion добавьте в dnsmasq.conf:
server=/onion/127.0.0.1#9053
ipset=/onion/unblock
Если вы не хотите открывать доступ ко всем доменам зоны onion, а лишь к определённым, то в dnsmasq.conf добавьте записи следущего вида:
server=/rutorc6mqdinc4cz.onion/127.0.0.1#9053
ipset=/rutorc6mqdinc4cz.onion/unblock
server=/nnmclub5toro7u65.onion/127.0.0.1#9053
ipset=/nnmclub5toro7u65.onion/unblock
server=/flibustahezeous3.onion/127.0.0.1#9053
ipset=/flibustahezeous3.onion/unblock
Как сделать обход блокировок для клиентов VPN-сервера, запущенного на маршрутизаторе?
В torrc строку с TransPort замените на:
TransPort 0.0.0.0:9141
Добавьте дополнительный редирект с необходимымм интерфейсом (ИНТЕРФЕЙС — интерфейс VPN-сети):
iptables -t nat -A PREROUTING -i ИНТЕРФЕЙС -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 9141