Многие пользователи OpenWrt сталкиваются с одной и той же проблемой: плагин adblock-fast установлен, списки (Hagezi или OISD) выбраны, служба запущена, но реклама на сайтах и в приложениях продолжает пролезать. Тесты показывают удручающий результат блокировки - около 40-45%.
Причина кроется не в плохих списках, а в недостатке инструментов для их обработки.
В чем проблема?
По умолчанию OpenWrt использует облегченный набор утилит (BusyBox). Когда вы скармливаете роутеру огромный список блокировки (например, Hagezi Pro), встроенные "урезанные" утилиты просто захлебываются. Они не могут корректно отсортировать и очистить сотни тысяч доменов, из-за чего в память загружается лишь малая часть правил или процесс завершается с ошибкой.
На скриншотах изображен экран настроенного AdBlock-Fast:
Решение
Для корректной работы adblock-fast на современных прошивках (включая 24.xx) критически важно доустановить полноценные версии инструментов обработки текста.
Что нужно установить:
gawk
grep
sed
coreutils-sort
Инструкция (Терминал)
Самый быстрый способ исправить ситуацию - выполнить две команды в терминале (SSH):
opkg update
opkg install gawk grep sed coreutils-sort
Инструкция (Веб-интерфейс LuCI)
Перейдите в System → Software.
Нажмите Update lists.
По очереди найдите и установите пакеты: gawk, grep, sed и coreutils-sort.
Итого
Сразу после установки пакетов перезапустите службу Adblock. Роутер сможет корректно "переварить" тяжелые списки.
Было: ~40% на тестах (d3ward / AdBlock Tester).
Стало: 96-98% блокировки.
Важный нюанс про IPv6: Если даже после этого телефон продолжает показывать рекламу, проверьте, не использует ли он IPv6. Часто мобильные устройства обходят блокировку, получая "чистый" DNS адрес через протокол IPv6. В таком случае в настройках интерфейса LAN (DHCP Server -> IPv6 Settings) лучше выключить раздачу IPv6 (поставить в режим Disabled).
Если при включении Raspberry Pi 5 вы видите черный экран, порты USB, LAN не работают, а зеленый светодиод (ACT) циклично мигает 9 или 10 раз, это указывает на проблему с загрузчиком (EEPROM) или несовместимость прошивки с вашей ревизией платы.
Эта проблема часто встречается на ранних или специфических ревизиях плат. Ниже приведено рабочее решение по откату и фиксации версии прошивки.
Важно: Если данная инструкция не поможет, с высокой долей вероятности у вас аппаратный брак (дефект платы). В таком случае рекомендуется вернуть устройство продавцу или обменять его по гарантии.
После перепрошивки, если вытащить SD-карту и подать питание на Raspberry Pi 5, можно увидеть диагностический экран:
Инструкция по восстановлению
Шаг 1. Скачивание специальной версии прошивки
Нам понадобится конкретная стабильная версия загрузчика, на которой проблема отсутствует.
Вам нужны файлы для создания загрузочной SD-карты восстановления (Recovery).
Шаг 2. Запись прошивки EEPROM через Raspberry Pi Imager
Так как скачанный архив содержит готовый образ диска (.img), для записи нам понадобится программа Raspberry Pi Imager.
Подготовка файла: Распакуйте скачанный архив. Найдите внутри файл с расширением .img (например, rpi-boot-eeprom-recovery-2024-09-10-2712-sd.img).
Запуск программы: Откройте Raspberry Pi Imager.
Выбор образа:
Нажмите кнопку "Выбрать ОС" (Choose OS).
Прокрутите список в самый низ.
Выберите пункт "Использовать свой образ" (Use Custom).
В открывшемся окне найдите и выберите распакованный ранее .img файл восстановления.
Запись:
Нажмите "Выбрать диск" (Choose Storage) и укажите вашу карту памяти.
Нажмите "Записать" (Write).
Прошивка платы:
Вставьте записанную карту в выключенную Raspberry Pi 5.
Подайте питание.
Дождитесь, пока зеленый светодиод начнет быстро и непрерывно мигать (ну если подключили монитор, то он будет полностью зеленым.). Это означает, что EEPROM успешно обновлен.
Отключите питание и извлеките карту.
Шаг 3. Подготовка ОС и блокировка обновлений
Теперь нужно записать операционную систему, но запретить ей обновлять EEPROM обратно до нерабочей версии.
Запишите образ нужной вам системы (Raspberry Pi OS, Ubuntu и др.) на microSD карту обычным способом (через Raspberry Pi Imager или BalenaEtcher).
ДО первого запуска вставьте карту в кардридер компьютера.
Откройте раздел boot (или bootfs) на карте.
Найдите и откройте файл config.txt с помощью текстового редактора (Notepad++, Блокнот).
В самый низ файла добавьте следующий блок настроек:
НЕ подключайте Wi-Fi при первой настройке! Особенно это касается Raspberry Pi OS. При первом запуске мастер настройки предложит подключиться к сети. Пропустите этот шаг. Если подключить интернет сразу, система может принудительно скачать и установить последнее (проблемное для вашей платы) обновление EEPROM еще до того, как вступят в силу настройки config.txt.
На других системах (не RPi OS) автоматическое обновление встречается реже, но лучше перестраховаться.
После успешной загрузки и проверки работоспособности, убедитесь, что параметры в config.txt применились.
Так же есть проблема, когда Raspberry Pi OS может сама принудительно обновлять EEPROM, чтобы Вы не делали, вот скриншот:
Вы когда-нибудь попадали в такую ситуацию? Вы подключились к удаленному серверу по SSH, запустили долгое обновление системы или скачивание огромного файла, и вдруг... мигнул интернет. Соединение разорвалось. Вы подключаетесь снова и видите, что ваш процесс "умер", файл недокачан, а обновление прервалось на середине. Обидно? Очень.
Знакомьтесь, Screen - утилита, которая решает эту проблему навсегда.
Что такое Screen?
Простыми словами, GNU Screen - это "оболочка внутри оболочки". Представьте, что обычное SSH-соединение - это телефонный разговор. Если связь оборвалась - разговор окончен. Screen - это голосовая почта. Вы можете позвонить, начать говорить, повесить трубку, а запись будет идти дальше. Когда вы перезвоните, вы сможете продолжить с того же места.
С технической точки зрения это терминальный мультиплексор. Он позволяет:
Сохранять сессии: Программы продолжают работать на сервере, даже если вы выключили свой компьютер.
Многооконность: В одном окне SSH можно создать 10 виртуальных терминалов.
Установка
В большинстве дистрибутивов (Ubuntu, Debian, CentOS) он уже установлен по умолчанию. Если нет - установка занимает секунду:
Давайте рассмотрим самую частую задачу: нужно запустить долгий процесс и уйти пить кофе, не боясь разрыва связи.
1. Запуск Screen
Просто введите в консоли:
screen
Ваш терминал мигнет, появится приветственное сообщение (нажмите Space/Enter). Внешне ничего не изменится - вы увидите ту же командную строку. Но теперь вы находитесь внутри защищенной капсулы.
2. Запуск задачи
Запустите что угодно. Например, скачивание файла или htop.
htop
3. Магия «Отключения» (Detach)
Теперь самое интересное. Мы хотим отключиться от сервера, но оставить htop работать. Нажмите сочетание клавиш: 👉 Ctrl + A, затем отпустите их и нажмите D.
(D означает Detach — отсоединить).
Экран исчезнет, и вы увидите сообщение [detached from 12345.pts-0.server]. Поздравляю! Ваш htop всё еще работает там, в фоне, хотя вы его не видите. Вы можете смело закрывать SSH-клиент и выключать компьютер.
4. Возвращение (Reattach)
Прошло 2 часа. Вы снова зашли на сервер. Чтобы вернуться в свою капсулу, введите:
screen -r
(r означает Reattach — присоединить).
Бум! Вы снова видите свой htop ровно в том состоянии, в каком оставили.
Продвинутый уровень: Именованные сессии
Если вы запустите команду screen много раз, у вас будет куча безымянных сессий, и вы запутаетесь, где у вас обновление базы, а где логи. Лучше давать им имена.
screen -S update_system
# (S — заглавная, от Session)
screen -S download_logs
Посмотреть список всех сессий:
screen -ls
Вывод будет таким:3450.update_system (Detached)4501.download_logs (Detached) Подключиться к конкретной сессии:
screen -r update_system
Режим "Многорукий Шива": Вкладки
Screen умеет создавать несколько окон внутри одной сессии. Это как вкладки в браузере, только в консоли.
Внутри запущенного screen все команды начинаются с "волшебной комбинации" Ctrl + A. Нажимаете её, а потом нужную букву.
Комбинация
Действие
Ctrl+A, затем c
Create. Создать новое окно (вкладку).
Ctrl+A, затем n
Next. Переключиться на следующее окно.
Ctrl+A, затем p
Previous. Переключиться на предыдущее окно.
Ctrl+A, затем "
Показать список всех окон и выбрать нужное.
Ctrl+A, затем k
Kill. Уничтожить (закрыть) текущее окно.
Шпаргалка (Cheat Sheet)
Сохраните этот список, он покроет 99% ваших задач.
В командной строке:
screen — запустить новую сессию.
screen -S имя — запустить сессию с именем.
screen -ls — список запущенных сессий.
screen -r — вернуться в последнюю сессию.
screen -r имя — вернуться в конкретную сессию.
Внутри Screen (сначала жмем Ctrl+A):
d — свернуться (вытий, оставив работать).
c — новое окно.
0...9 — переключиться на окно по номеру.
Esc — войти в режим прокрутки (Copy mode), чтобы листать историю вверх стрелками.
Как правильно выйти?
Если вы закончили работу и сессия вам больше не нужна:
Напишите команду exit (или нажмите Ctrl+D) внутри окна screen.
Если это было последнее окно, вы увидите надпись [screen is terminating]. Это значит, что капсула уничтожена.
Screen или Tmux?
Вы наверняка слышали про tmux. Это более современный аналог screen.
Tmux красивее, умеет делить экран пополам вертикально и горизонтально, у него понятнее статусная строка.
Screen — это старая гвардия.
Почему стоит знать именно Screen? Потому что screen есть везде. Даже на старом сервере в подвале НИИ или внутри роутера. Tmux нужно устанавливать, а Screen уже ждет вас.
Использование screen — это правило хорошего тона для любого системного администратора. Возьмите за правило: "Запускаешь что-то дольше 5 минут — запускай это в screen". Это спасет ваши нервы при первом же обрыве связи.
Интересный факт: Screen старше Linux
Это взрывает мозг многим новичкам.
GNU Screen появился в 1987 году.
Первая версия ядра Linux появилась в 1991 году.
То есть screen уже существовал и работал на старых Unix-системах еще до того, как Линус Торвальдс написал первую строчку кода Linux.
Саму утилиту screen написали Оливер Лауманн (Oliver Laumann) и Карстен Борманн (Carsten Bormann) в Берлинском техническом университете в 1987 году. Изначально это была независимая программа. Но позже она была передана Фонду свободного программного обеспечения (FSF) и стала официальной частью пакета программ GNU.
Вы открываете терминал каждый день, видите привычный значок $ и пишете команды. Но задумывались ли вы, почему черное окно называется Bash? За этим странным словом скрывается каламбур, библейская отсылка и история борьбы за свободу кода.
Вот 5 фактов о Bash, которые должен знать каждый.
1. Скрытый смысл названия
Аббревиатура BASH расшифровывается как Bourne Again SHell. Это игра слов, которая работает на двух уровнях:
Прямой смысл: "Ещё одна оболочка Борна" (потому что она была создана как замена старой оболочке Bourne shell).
Ироничный смысл: Созвучно с выражением "Born Again" ("рожденный заново" или "возрожденный").
Суть шутки: Старая проприетарная оболочка "умерла" для сообщества из-за закрытой лицензии, а новаявозродилась как феникс из пепла, став полностью свободной и ещё более мощной.
2. Кто такой Борн и при чем тут он?
Чтобы понять шутку, перенесемся в 1977 год. В легендарных лабораториях Bell Labs (где придумали Unix и C) работал британец Стивен Борн (Stephen Bourne). Он написал программу sh (shell - оболочка), которая стала стандартом общения человека с машиной. Её так и называли - "Оболочка Борна".
Но была проблема: sh принадлежала корпорации AT&T. Она была закрытой и платной. Вы не могли просто взять её и поставить на свой компьютер.
3. Рождение Bash (GNU и Брайан Фокс)
В 80-х Ричард Столлман запустил проект GNU. Его мечта была дерзкой: создать полностью свободную операционную систему. Им нужны были свои, бесплатные аналоги всех программ: свой редактор, свой компилятор и, конечно, своя оболочка.
Столлман нанял программиста Брайана Фокса (Brian Fox). В 1989 году Фокс выпустил первую версию Bash. Он сделал так, чтобы новая оболочка понимала все команды старой sh (для совместимости), но была удобнее и, главное, абсолютно бесплатной. Именно Фокс придумал название Bourne Again Shell как дань уважения Стивену Борну.
Интересный факт: Брайан Фокс создал Bash, но работал над ним всего пару лет. Настоящий герой - Чет Рэми (Chet Ramey). Он поддерживает и развивает Bash с начала 90-х - уже более 30 лет! Если вы сегодня найдете баг в Bash, вам ответит именно Чет.
4. Почему Bash есть в каждом Linux?
Когда в 1991 году Линус Торвальдс написал ядро Linux, у него был, по сути, только "двигатель". Ему нужны были "руль и колеса" - программы для управления ядром. Он не стал писать их с нуля, а взял готовые инструменты от проекта GNU. Поскольку Bash был лучшей свободной оболочкой на тот момент, он сразу попал в первые дистрибутивы.
С тех пор это стандарт: ставишь Linux - получаешь Bash.
5. Терминал и Bash - не одно и то же
Новички часто путают эти понятия, но разница важна:
📺 Терминал (GNOME Terminal, Putty, Console) - это "телевизор". Это просто окно, которое показывает текст и передает нажатия клавиш.
👨💻 Bash - это "телеведущий". Это программа, которая сидит внутри терминала, читает ваши команды (ls, cd, mkdir), понимает их и запускает процессы.
Пока весь мир переезжал из ICQ в Skype, а затем в Telegram, Discord и Slack, протокол IRC (Internet Relay Chat) остался главным офисом для тех, кто строит современный интернет. Это не ностальгия - это прагматичный выбор профессионалов.
Если вы думаете, что IRC умер, вы просто не знаете, где искать. Вот 5 причин, почему эта технология актуальна в 2025 году и почему вам стоит о ней знать.
💡 Совет для старта: Скачайте HexChat, выберите сеть Libera.chat, придумайте ник и зайдите на канал #python или #linux. Добро пожаловать в реальный мир!
1. Здесь живет Open Source (Linux, Python, Devs)
Это самая большая группа пользователей. Если у вас сломался Arch Linux, вы настраиваете Gentoo или пишете сложный модуль для Python - вы идете за помощью не в Discord. Вы идете в IRC.
Почему не Discord? Разработчикам ядра и системным администраторам не нужны гифки, стикеры, "тяжелые" интерфейсы на Electron, которые съедают 500 Мб оперативной памяти просто при запуске. Им нужен чистый текст, протоколируемость и возможность читать чат через SSH-терминал с удаленного сервера.
Где их искать: Сейчас центром мира Open Source стала сеть Libera.chat (туда мигрировали сообщества Ubuntu, Fedora, PostgreSQL, Wikipedia после скандала с сетью Freenode в 2021 году).
2. Вы используете IRC, даже не зная об этом (Twitch)
Самый неожиданный факт для геймеров: чат на платформе Twitch - это технически модифицированный IRC.
Когда вы пишете стримеру "PogChamp", ваш браузер на самом деле подключается к IRC-серверу Твича через веб-сокеты. Именно поэтому многие продвинутые боты для модерации Твича написаны на старых добрых библиотеках для IRC. Технология оказалась настолько надежной и масштабируемой, что Amazon не стал изобретать велосипед.
3. Хакеры и кибербезопасность (CTF)
IRC остается стандартом де-факто для CTF-команд (соревнования по взлому) и хактивистов (вроде Anonymous).
Причина - Анонимность.
Для регистрации в Telegram нужен номер телефона.
Для Discord нужен Email.
Для IRC не нужно ничего.
Вы можете подключиться через TOR, сгенерировать случайный никнейм, обсудить уязвимость и исчезнуть, не оставив цифровых следов. (Но помните: у этой медали есть обратная сторона - исторически IRC использовали для управления ботнетами).
4. Подпольная библиотека (XDCC)
Существует технология XDCC - протокол передачи файлов прямо через чат. До сих пор существуют закрытые каналы, где боты раздают терабайты редких технических книг, аниме или вареза.
Это работает быстрее торрентов, так как соединение идет напрямую между пользователями, без трекеров. Но найти такие каналы сложно - нужно "знать места". Это своего рода закрытый клуб для своих.
5. Мост в будущее (Matrix)
Современный протокол Matrix (который сейчас набирает популярность у гиков как замена Telegram) умеет создавать "мосты" (bridges) в IRC.
Это выглядит как магия: вы сидите в современном красивом приложении Element на смартфоне, а ваш собеседник - в черном терминале Linux сервера 1998 года выпуска. Вы находитесь в одном чате, и технологии прозрачно соединяют вас.
Почему IRC не умирает?
IRC - это "Текстовое Радио" интернета.
Неубиваемость: Работает даже на калькуляторе при GPRS-интернете.
Свобода: Никто (ни Google, ни Павел Дуров, ни Microsoft) не владеет IRC. Вы можете поднять свой сервер за 5 минут на любой VPS.
Автоматизация: Написать полезного бота для IRC можно за 5 минут и 10 строчек кода на Python.
📥 Какой клиент скачать?
Чтобы зайти в IRC, вам нужна программа-клиент. Вот лучшие варианты для старта:
🖥️ Для Windows (Графический интерфейс)
HexChat - Самый популярный классический клиент. Простой, понятный, с открытым кодом. Идеален для новичков. 📥 Скачать HexChat
AdiIRC - Более современная и активно обновляемая альтернатива с кучей настроек внешнего вида. 📥 Скачать AdiIRC
🐧 Для Linux / Mac (Для настоящих джедаев)
WeeChat - Мощнейший консольный клиент. Работает прямо в терминале. Выглядит как пульт управления космическим кораблем. Очень любят сисадмины. 🔗 Сайт WeeChat
Irssi - Легендарная классика терминальных клиентов. Если вы видите в фильмах хакера в консоли - скорее всего, у него запущен Irssi. 🔗 Сайт Irssi
📱 Для Android
IRCCloud - Самый современный вариант. Работает как Telegram: красивый интерфейс, пуш-уведомления, история хранится в облаке. Нюанс: В бесплатной версии отключается от сети через 2 часа простоя, но само приложение скачивается бесплатно. ▶️ Скачать IRCCloud
AndroIRC - Простой, "неубиваемый" клиент. Интерфейс староват, но работает стабильно на любых телефонах. Аналог mIRC для Андроида. ▶️ Скачать AndroIRC
Termux - 🛠 Выбор хакера. Это полноценный эмулятор Linux-терминала. Вы можете установить туда настоящий Irssi или WeeChat и работать в IRC так же, как на сервере. ▶️ Скачать Termux
В мире IT часто говорят о "Bus Factor" (факторе автобуса): сколько сотрудников должно попасть под автобус, чтобы проект остановился? История файловой системы ReiserFS - это самый мрачный пример этого правила.
В начале 2000-х эта система была будущим Linux. Сегодня она мертва. И причина не в плохом коде, а в том, что её создатель, Ганс Райзер, совершил одно из самых громких преступлений в истории Кремниевой долины.
Часть 1. Техническая революция
В конце 90-х Linux страдал от "детских болезней". Файловые системы были медленными и ненадежными: если выключался свет, приходилось часами ждать проверки диска.
Ганс Райзер, талантливый и эксцентричный программист, предложил решение - ReiserFS.
Скорость: Она работала с мелкими файлами в разы быстрее конкурентов.
Журналирование: Это была первая в Linux журналируемая система (данные не терялись при сбоях питания).
К 2005 году ReiserFS (версия 3) стала стандартом по умолчанию в дистрибутивах SUSE, Slackware и других. Все ждали выхода Reiser4, которая обещала стать настоящим прорывом. Но она так и не вышла.
Часть 2. Исчезновение Нины (2006)
В сентябре 2006 года Ганс Райзер находился в процессе тяжелого и грязного развода со своей женой Ниной (врачом-гинекологом русского происхождения).
3 сентября Нина привезла детей в дом Ганса в Окленде и бесследно исчезла. Полиция начала расследование, которое больше напоминало триллер:
В машине Ганса (Honda CRX) отсутствовало пассажирское сиденье.
В салоне нашли следы крови, а на полу лежали книги о расследовании убийств.
Сам Ганс вел себя крайне странно, но твердил о своей невиновности.
Реакция сообщества: IT-мир был в шоке. Многие фанаты Linux отказывались верить в виновность кумира. Они собирали деньги на адвокатов, считая, что полиция просто не понимает "странного гения" и его социальную неловкость.
Часть 3. Суд и "Сделка с дьяволом" (2008)
Следствие шло два года. Тела не было, прямых улик -тоже. Дело строилось на косвенных доказательствах.
В 2008 году присяжные вынесли вердикт: виновен в убийстве первой степени. Райзеру грозило от 25 лет до пожизненного заключения.
И тут произошел финальный поворот сюжета. Ганс Райзер, поняв, что жизнь кончена, предложил прокуратуре сделку: "Я покажу, где тело, если вы смягчите приговор".
Он привел полицейских к оврагу в парке Редвуд, где закопал тело Нины. В обмен судья изменил квалификацию на "убийство второй степени". Ганс получил 15 лет тюрьмы.
Часть 4. Почему это убило ReiserFS?
Многие спрашивают: "При чем тут код? Если система хорошая, почему ей перестали пользоваться?"
Здесь сработали три фактора, которые похоронили проект:
Крах компании Namesys. Вся разработка держалась на фирме Ганса. Когда его арестовали, деньги кончились - всё ушло на адвокатов. Разработчики разбежались, обновлять код стало некому.
Токсичность бренда. Представьте себя директором банка или хостинга. Захотите ли вы хранить данные клиентов на файловой системе, которая называется фамилией убийцы? Крупные игроки (Red Hat, Google) мгновенно отказались от поддержки ReiserFS, чтобы избежать репутационных рисков.
Технологическая гонка. Пока Ганс сидел в камере предварительного заключения (2006-2008), прогресс не стоял на месте.
Разработчики ext4 допилили свою систему, сделав её стабильной.
На горизонте появилась Btrfs. Место ReiserFS просто заняли другие.
Эпилог: Где он сейчас?
Ганс Райзер (заключенный № F29411) отбывает наказание в тюрьме штата Калифорния.
Даже в тюрьме он остался программистом: он писал жалобы на администрацию и даже пытался судиться с разработчиками ядра Linux за то, что они не хотят включать его код (Reiser4) в ядро. Суд эти иски отклонил.
Итог: ReiserFS умерла не потому, что устарела. Она умерла, потому что за любым великим кодом стоит человек. И когда этот человек становится преступником, его творение становится ненужным.