Команды busybox в роутере
Клацая в dir-320 с прошивкой dd-wrt, пришлось выучить пару десятков команд которые мне пригодились и в других устройствах основанных на linux BusyBox.
Итак, что такое этот BusyBox?
BusyBox — набор UNIXовых утилит командной строки, которые используется в качестве основного интерфейса во встраиваемых операционных системах. Для тонкой настройки таких систем, часто используется командная строка. Для этого с помощью TELNET или SSH мы соединяемся с командной оболочкой с одним из таких устройств, например: DIR-320 в основе которой лежит BusyBox и используем ряд следующих команд.
Команды для работы с файлами:
Управление процессами в BusyBox:
Права доступа на файлы в BusyBox:
Использование SSH в BusyBox:
Как осуществляется поиск в BusyBox:
Системная информация в BusyBox:
Процессы архивации при наличии установленных tar и gzip пакетах в BusyBox:
Настройка сети в BusyBox:
Установка\удаление программ из пакетов в BusyBox:
Полный контроль над роутером ASUS из командной строки
Как получить полный контроль, над роутером ASUS с установленной оригинальной (заводской) прошивкой, через командную строку с помощью Telnet протокола доступа.
Для получения больших возможностей по настройке роутера многие тут-же прошивают роутер альтернативной прошивкой, такой как DDWRT, OpenWRT и другие. Но не всегда это оправдано. Вэб-интерфейс оригинальной прошивки может не содержать каких-то триггеров но в самой прошивки есть многие необходимые утилиты.
Значит, мы можем проделать все манипуляции над роутером с оригинальной (заводской) прошивкой, через командную строку с помощью Telnet протокола доступа.
Самый безопасный и мощный способ это использовать SSH протокол, но можно воспользоваться не безопасным Telnet так, как он имеется во всех роутерах ASUS.
Если вэб-интерфейс вашего роутера не имеет триггера для включения Telnet, то вам необходимо прочитать эту статью: «Как включить Telnet сервер на роутере ASUS».
Получение доступа к командной строке
Прежде всего вам нужно подключиться к роутеру используя любой Telnet клиент, например PuTTY или консольный клиент.
Домен, IP-адрес, логин и пароль такие же как в вэб-интерфейсе роутера.
- IP-адрес — 192.168.1.1 (или тот который вы установили).
- Домен — router.asus.com (стандартный для ASUS роутеров)
- Порт — 23 (стандартный для Telnet протокола).
- Имя пользователя (логин) — admin (стандартный для ASUS роутеров).
- Пароль — тот который вы установили (стандартный для ASUS роутеров — admin ).
Для подключения с помощью консольного клиента:
Подключитесь к роутеру по протоколу доступа Telnet:
Для авторизации используйте логин и пароль такие же как в вэб-интерфейсе роутера:
Поздравляю, теперь вы в командной строке Linux роутер!
В роутере
Теперь вы в командной строке Linux роутера ASUS.
В общем, Linux роутер очень похож на Debian но имеет некоторые особенности. Начну с общего.
Показать информацию о железе и прошивке роутера можно так:
Показать все примонтированные разделы, можно так:
Как вы видите squashfs раздел примонтирован с параметром ro то есть только на чтение. Но, ramfs ( /var ) примонтирован с параметром rw то есть чтение и запись. Значит, мы можем создавать и удалять файлы в этой директории. Но после перезагрузки всё будет как раньше, а новые файлы будут удалены.
Все загрузочные скрипты находятся в директории /etc/init.d/ .
Это место находится на разделе подключённом в режиме только чтения, поэтому вы не можете добавлять свои скрипты сюда.
На роутере установлен BusyBox. BusyBox — это набор UNIX утилит командной строки, который используется в качестве основного интерфейса во встраиваемых операционных систем. В различных версиях и сборках он содержит различное количество утилит.
Для того, чтобы получить список команд, поддерживаемых данным экземпляром BusyBox, запустите его без каких-либо аргументов или используйте опцию —list :
Для того, что бы узнать о том, что делают отдельные команды, используйте опцию —help в сочетании с этой командой:
Но не все программы в прошивке являются частью BusyBox. Поэтому может потребоваться просмотреть список всех программ:
Если в списке вы видите что-то похожее на […] -> busybox то эта программа является частью BusyBox.
Если нет нужной вам программы, то вы можете скачать её из интернета (или создать его путем кросс-компиляции) и положить в временный каталог ( /tmp/ ). Также вы можете скачать полную версию BusyBox с официального сайта (http://www.busybox.net) и поместить его в временный каталог ( /tmp/ ). Но, как я писал выше, после перезагрузки всё будет как раньше и новые файлы будут удалены.
К примеру, в моём роутере, встроенный BusyBox (v1.13.4) не содержит редактор vi или nano .
NVRAM
А теперь про особенности о которых Я писал выше. Все настройки роутера (настройки изменяемые через веб-интерфейс, пользовательские настройки, загрузочные скрипты) хранятся в энергонезависимый памяти — NVRAM (Non Volatile Random Access Memory). Существует специальная команда для работы с этой памятью — flash и она уже установлена в оригинальную прошивку.
Его можно запустить без аргументов для того, чтобы увидеть все опции:
Как вы можете видеть есть несколько опций. Аббревиатура hw означает — оборудование (железо).
Все настройки хранятся в переменных.
Показать все переменные:
И многие другие переменные.
Примечание: Все переменные начинающиеся с префикса DEF_ имеют значение по умолчанию (исходная конфигурация). Она включается при нажатии кнопки Reset на корпусе роутера или из веб-интерфейса роутера или с помощью команды flash в терминале.
Примечание: Не все из перечисленных переменных работают.Такие переменные как SAMBA_ENABLED=0 не работают, из-за того, что Samba не установлен.
Для того, чтобы найти переменные с словом NAME , используйте команду flash совместно с grep :
Примечание: Имена всех переменных записываются в верхнем регистре.
Показать значение определенной переменной (например, имя администратора):
Установить новое значение переменной (например, имя администратора):
Теперь у вас есть новое имя администратора (логин), а это повышает безопасность.
Но для того, что бы изменения вступили в силу необходимо перезагрузить роутер:
Если необходимо вернуть все заводские параметры (сброс к изначальным настройкам):
P.S. Если вы не нашли в этой статье нужную вам информацию, то может быть вы сможете найти её в комментариях ниже. В английской версии статьи комментариев больше.
Если эта статья помогла вам, пожалуйста, оставьте комментарий
Спасибо за прочтение!
Если этот пост помог вам, и вы хотели бы показать свою поддержку, подумайте о том, чтобы заправить будущие посты, купив мне чашку кофе!
Что делать с кастрированным busybox на роутере?
Есть роутер. Подключаюсь через telnet, как root. потом говорю shell. Попадаю в
Но! Он настолько урезанный, что даже сам help — Enter ‘help’ — не работает. Почти любая линукс комманда заканчивается вот этим
То есть, cd, pwd, whoami, echo, cat, точка, source . — всё вырезано.
ls — работает, да, но ведь с ней далеко не уедешь.
и ещё что-то работает, вот часть комманд
И так, можно ли что-то сделать на этом кастрированном, китайском — это huawei, кстати — линуксе? Например, запустить что-то? Или только установка нормальной, не кастрированной прошивки спасёт?
Причём тут openbox? ash — шелл по умолчанию в minix и busybox. Да, кастрированный по самое не балуйся потому, как предназначен для тостеров и сковородок.
Например, запустить что-то? Или только установка нормальной, не кастрированной прошивки спасёт?
Смотря что ты запускать собрался.
И все-равно менее кастрирован чем mikrotik shell
да хотя бы какую-нибудь стандартную утилиту из того, что уже там стоит. тот же «whoami» или «cat» или что-то такое.
Может переменная PATH пуста? Попробуй с полными путями.
На предмет того, что есть можешь скачать исходники busybox и посмотреть директории util-linux и coreutils. Встроенные команды ash-а узнаешь из man-а, который можешь почитать тут. Наслаждайся.)
И так, можно ли что-то сделать на этом кастрированном, китайском — это huawei, кстати — линуксе? Например, запустить что-то?
Можно. Вначале надо поставить туда это «что-то». Заменить имеющееся не получится, так как все эти ваши chipdebug и прочие debug dsp ни в один стадартный комплект утилит не входят и потому трогать это нельзя.
На предмет того, что есть можешь скачать исходники busybox и посмотреть
Какой в этом смысл? Это ему только напосмотреть и пооблизываться.
Так там даже busybox кастрированный? Ну тогда ой.
почти каждая команда или утилита — это ссылка на бизибокс
и даже по полному пути не запускается
кастрированный ли бизибокс или только ash — не знаю, но кто-то из них точно.
хотя сам echo как и др. утилиты — существует
Можно. Вначале надо поставить туда это «что-то».
Полный список откомплированных утилит в вашем busybox получить очень просто: вызвать busybox без опций. Если почему-то ash не даёт вызвать какую-то утилиту, но даёт вызвать busybox, то утилиту из busybox можно вызывать как busybox утилита. Как у вас там работает что-то что даже echo не работает?
Поставить свой набор утилит вещь не простая. Вам надо разобраться как записать хоть что-то в память устройства, потом разобраться с процессором для которого будете компилить, узнать сколько места свободного и прочее.




