Команды BusyBox. | |
Файловые команды | |
ls | список файлов и каталогов> |
ls -al | форматированный список со скрытыми каталогами и файлами |
cd dir | сменить директорию на dir |
cd | сменить на домашний каталог |
pwd | показать текущий каталог |
mkdir dir | создать каталог dir |
rm file | удалить file |
rm -r dir | удалить каталог dir |
rm -f file | удалить форсированно file |
rm -rf dir | удалить форсированно каталог dir |
cp file1 file2 | скопировать file1 в file2 |
cp -r dir1 dir2 | скопировать dir1 в dir2; создаст каталог dir2, если он не существует |
mv file1 file2 | переименовать или переместить file1 в file2.![]() |
ln -s file link | создать символическую ссылку link к файлу file |
touch file | создать file |
cat > file | направить стандартный ввод в file |
more file | вывести содержимое file |
head file | вывести первые 10 строк file |
tail file | вывести последние 10 строк file |
tail -f file | вывести содержимое file по мере роста, начинает с последних 10 строк |
Управление процессами | |
ps | вывести ваши текущие активные процессы |
top | показать все запущенные процессы |
kill pid | убить процесс с id pid |
killall proc | убить все процессы с именем proc |
bg | список остановленных и фоновых задач; продолжить выполнение остановленной задачи в фоне |
fg | выносит на передний план последние задачи |
fg n | вынести задачу n на передний план |
Права доступа на файлы | |
chmod octal file | сменить права file на octal, раздельно для пользователя, группы и для всех добавлением: |
4 | чтение (r) |
2 | запись (w) |
1 | исполнение (x) |
Примеры: | |
chmod 777 | чтение, запись, исполнение для всех |
chmod 755 | rwx для владельца, rx для группы и остальных.![]() |
SSH | |
ssh user@host | подключится к host как user |
ssh -p port user@host | подключится к host на порт port как user |
ssh-copy-id user@host | добавить ваш ключ на host для user чтобы включить логин без пароля и по ключам |
Поиск | |
grep pattern files | искать pattern в files |
grep -r pattern dir | искать рекурсивно pattern в dir |
command | grep pattern|искать pattern в выводе command |
locate file | найти все файлы с именем file |
Системная информация | |
date | вывести текущую дату и время |
cal | вывести календарь на текущий месяц |
uptime | показать текущий аптайм |
w | показать пользователей онлайн |
whoami | имя, под которым вы залогинены |
finger user | показать информацию о user |
uname -a | показать информацию о ядре |
cat /proc/cpuinfo | информация ЦПУ |
cat /proc/meminfo | информация о памяти |
man command | показать мануал для command |
df | показать инф.![]() |
du | вывести «вес» текущего каталога |
free | использование памяти и swap |
whereis app | возможное расположение программы app |
which app | какая app будет запущена по умолчанию |
Архивация(при условии что у Вас установлены tar и gzip) | |
tar cf file.tar files | создать tar-архив с именем file.tar содержащий files |
tar xf file.tar | распаковать file.tar |
tar czf file.tar.gz files | создать архив tar с сжатием Gzip |
tar xzf file.tar.gz | распаковать tar с Gzip |
tar cjf file.tar.bz2 | создать архив tar с сжатием Bzip2 |
tar xjf file.tar.bz2 | распаковать tar с Bzip2 |
gzip file | сжать file и переименовать в file.![]() |
gzip -d file.gz | разжать file.gz в file |
Сеть | |
ping host | пропинговать host и вывести результат |
whois domain | получить информацию whois для domain |
dig domain | получить DNS информацию domain |
dig -x host | реверсивно искать host |
wget file | скачать file |
wget -c file | продолжить остановленную закачку |
Установка\удаление пакетов | |
ipkg-opt remove | название проги (удаление) |
ipkg-opt install | название проги (установка) |
Установка из исходников: | |
./configure | |
make | |
make install | |
dpkg -i pkg.![]() | |
rpm -Uvh pkg.rpm | установить пакет (RPM) |
Клавиатурные сочетания | |
Ctrl+C | завершить текущую команду |
Ctrl+Z | остановить текущую команду, продолжть с fg на переднем плане или bg в фоне |
Ctrl+D | разлогиниться, тоже самое, что и exit |
Ctrl+W | удалить одно слово в текущей строке |
Ctrl+U | удалить строку |
Стрелка Up | повторить последнюю команду |
exit | разлогиниться |
[DD-WRT роутер] Узнаём кто дома [Philip Wiki]
Недавно наткнулся на видео-презентацию, в которой некий парень показывал возможности Tasker… При вводе голосовых команд он узнавал, кто в данный момент находиться в пределах его точки доступа Wi-Fi. Но он не стал сообщать, как он это сделал, мол пока это всё как проба пера. Мне захотелось сделать что-то похожее, только более глобально. Всё, что нам нужно – роутер и Linux-машинка (в принципе, всё это можно при желании сделать и на Windows… но с придумыванием велосипедов)
Собственно, как оказалось, реализовать это достаточно просто, особенно если на роутере используется прошивка DD-WRT. Например, чтобы узнать, кто в данный момент «сидит» на роутере посредством wi-fi, достаточно через консоль (ssh, telnet) ввести следующую команду:
wl assoclist
В ответ мы получим что-то вроде этого:
assoclist 70:15:56:3A:91:8E assoclist D9:D5:BE:8A:68:41 assoclist 02:65:11:BD:58:17 assoclist 73:40:0A:88:43:46
Это список всех MAC-адресов устройств, которые в данный момент подключены к роутеру. Теперь дело за малым, убрать лишнее и научиться определять нужные «маки». Легко!
Первым делом перенаправим вывод команды в утилиту awk
, чтобы оставить только второй столбец, в котором содержится перечень аппаратных адресов.
wl assoclist | awk '{print $2}' > who_online.txt
После этого выполним проверку, чтобы найти в только что созданном файле нужный нам адрес и, при необходимости, выполнить какую-либо команду при успешном результате поиска:
grep -q '70:15:56:3A:91:8E' who_online.txt && echo "Устройство с этим адресов в сети!"
Вот в общем-то и всё. Ниже я приведу листинг своего готового скрипта, который выполняет сразу несколько условий1):
- Подключаемся к роутеру по ssh 2) и получаем список подключенных устройств. Сразу «чистим» его и пишем в файл;
Теперь выполняются два условия, при успешном выполнении любого из них, создаётся временный файл, который существует до тех пор, пока не станет успешным альтернативное условие:
В первом ищем мак моего телефона, если его нет, отправляем пуш-сообщение, что меня нет дома;
- Во втором снова ищем мак моего телефона, только теперь условием должно стать успешное его нахождение.
И снова отправляем пуш-сообщение, только теперь с другим текстом.
Вот собственно как-то так. Скрипт помещаем в cron и выполняем с необходимым интервалом. Как я уже написал выше, как только одно из условий выполняется, создаётся временный файл и данное условие в дальнейшем будет игнорироваться, до тех пор, пока альтернативное условие не станет «true» и не удалит временный файл своего «противника». Пример скрипта pushbullet прикладываю, он отправляет пуши посредством одноименного сервиса (подробно, извиняйте, описывать не буду, он тут скорее как пример…).
- example.sh
#!/bin/sh # variables FILE0=/tmp/who_online.txt FILE1=/tmp/philip_left.tmp FILE2=/tmp/philip_home.tmp ACT1=/home/user/pushbullet ACT2=/home/user/pushbullet MACADR='70:15:56:3A:91:8E' # connect to router ssh [email protected] -i /home/user/.ssh/cert wl assoclist | awk '{print $2}' > $FILE0 # left home if [ ! -e $FILE1 ] then grep -q $MACADR $FILE0 || ($ACT1 "Philip left home" "Trigger one";echo "Philip left home">$FILE1;rm $FILE2) fi # came home if [ ! -e $FILE2 ] then grep -q $MACADR $FILE0 && ($ACT2 "Philip came home" "Trigger two";echo "Philip came home">$FILE2;rm $FILE1) fi # end file
- pushbullet.
sh
#!/bin/bash apikey=ваш_API_ключ iden=ID_устройства_на_которое_нужно_отправить_сообщение curl https://api.pushbullet.com/v2/pushes \ -u $apikey \ -d device_iden=$iden \ -d type=note \ -d title="$1" \ -d body="$2" \ -X POST
P.S. Не претендую на оригинальность, может кто-то уже придумал такой или более красивый вариант… Но мне пофиг!
👆Создание microNAS из роутера на основ DD-WRT, установка торрент клиента Transmission. На примере Tp-Link TL-WDR4300ND TL-WR1043ND | Сетевые хранилища NAS | Блог
Если у Вас есть чудо поделка Китайской мысли как роутеры компании TP-Link c USB интерфейсом, и Вам жалко простоя такого железа, неиспользуемость многих возможностей в заводской версии микрокода, есть возможность преобразить устройство, раскрыть недокументированные возможности — устроить микроNAS, с установленным торрент клиентом, при этом значительно тише работающий и на порядок меньше потребляющий энергии чем специально выделенные для этих целей компьюетеры.
Постараюсь в краткости написать процесс установки альтернативной прошивки DD-WRT, установка внешнего hdd, установка на него программного обеспечения, установка торрент клиента transmission, организация общего доступа к файлам на внешнем жестком диске (samba или ftp). Так же вопросы восстановления работоспособности устройств через serial интерфейс и т.д.
Частично материалы были взяты, переработаны, объединены с данных информационных ресурсов и веток форумов:
http://wiki.openwrt.org/toh/tp-link/start
http://forum.ixbt.com/topic.cgi?id=14:55659
http://forum.ixbt.com/topic.cgi?id=14:56970
http://forum.ixbt.com/topic.cgi?id=14:53930
http://www.dd-wrt.com/phpBB2/viewtopic.php?t=83286&postdays=0&postorder=asc&start=0
хотя в основной части там идет обсуждение OpenWRT прошивок, но данные прошивки уже для опытных рук, где все надо делать самому допиливать устанавливать, т.е. достаточно продолжительное время провести, считаю, те, кто ставят OpenWRT не нуждаются в дальнейшем чтении.
Данная «статья» находится в стадии написания, как будет время будут дописываться части, дополняться
небольшое предупреждение: при любой смене микрокода устройства есть шанс получить из устройства мигающий кирпич (хотя его можно будет не так сложно восстановить через serial интерфейс).
А если Вам хочется превратить простой роутер в подобие microNAS, что бы эта коробка не только раздавали интернет, но и сама скачивала для вас в круглосуточном режиме торрент файлы, при этом на порядок (в десятки раз) меньше потребляя электроэнергии и работая почти бесшумно (будет гудеть только шпиндель hdd, но его тоже можно взять 5400-5900 rpm), возможность настроить удаленный доступ к внешнему носителю информации не только из внутренней сети но и из сети internet (через ftp) — смело читайте дальше! Постараюсь кратко и четко описать последовательность действий.
1.1. Получение необходимой версии микрокода.
Опишу на основе альтернативной версии микрокода (прошивки) DD-WRT. Список поддерживаемых устройств этой альтернативной прошивкой можно получить тут: Список совместимых устройств
Скачиваем последнюю версию прошивки для Вашего роутера качаем отсюда ftp://dd-wrt.com/others/eko/BrainSlayer-V24-preSP2/ , выбираем текущий год, и самую последнюю версию релиза, далее находим раздел с файлами прошивки Вашей модели роутера. На момент написания пользовался r20119_12-10-12
При перепрошивке роутера из заводской прошивки необходимо использовать файл factory-to-ddwrt.bin. Если Вы обновляете уже стоящую альтернативную прошивку DD-WRT, то необходимо использовать файл микрокода tl-wr1043nd-webflash.bin.
1.2. Процесс смены микрокода (перепрошивка).
Итак, заходим в web-интерфейс роутера через браузер, желательно IE (Internet Explorer) в данном случае это оправданно, если стандартные настройки то в адресной строке вводим 192.168.1.1, после чего запрос логина/пароля (admin/admin). Сразу переходим на пункт System Tools-> Frimware Upgrade (рис. 1.1).
Рис.1.1а –меню обновления микрокода в заводской версии
Рис.1.1б –меню обновления микрокода в китайской версии роутера
Выбираем необходимую альтернативную прошивку, несколько раз проверте правильность прошивки, должна быть factory-to-ddwrt.bin. Нажимаем на кнопку Upgrade и ждем минут пять (при использовании Opera ни чего не выйдет) после обновления будет перезагрузка устройства. По окончании перезагрузки устройства снова заходим через браузер (теперь можно использовать Ваш предпочтительный) 192.168.1.1, тут главное не испугаться, появляется окно рис 1.2.
Рис. 1.2 – Первоначальное окно после перепрошивки в dd-wrt
Вам предложено ввести пользователя и пароль для администрирования через WEBинтерфейс, при чем данный административный пароль будет и у пользователя root в работе через консоль, поэтому что бы не создавать излишнюю путаницу, лично я завожу
Router Username: root, а пароль какой в голову взбредет, главное не забыть его потом. После сохранения пароля, тут же попросит при входе в web интерфейс ввести его. Если после перепрошивки роутер не горит всеми светодиодными индикаторами, или периодически не мигает ими, то процесс смены микрокода по сути закончен. Если же во время смены микрокода произошли непредвиденные события, или вы перепутали из-за спешки или невнимательности версию (прошили версией для другой модели) и устройство превратилось в мигающий кирпич, то
а) Успокоится, попить сладкого чаю и т.д.
б) Есть возможность восстановить работоспособность прибора процедурой восстановления через serial интерфейс , но это потребует вскрытия корпуса, возможно использования паяльника (хотя можно обойтись и без него), специальный кабель, компьютер с ОС Windows XP и чуть больше времени.
1.3 Основные настройки DD-WRT.
Пункты меню идентичные большинству устройств подобного назначения, пользователям, кто уже хоть раз настраивал роутеры для работы в домашней сети, изучить методом «тыка» не составит труда.
1.3.1. Первоначальное оформление web интерфейса мне лично не нравится, поэтому сразу меняю его на более приличное (тем более оно на телефоне корректно отображается, смена оформления в пункте меню Administration-> Management -> выбор из списка в разделе Router Gui Style-> Style – мне больше по душе xirian, процедура на рисунке 1.3, где так же возможно сменить язык, и другие настройки, Save + Apply Settings
Рис.1.3 – Смена оформления, и другие настройки
Получаем такой вид web интерфейса (рис.1.4), не нравится — выбирайте по своему усмотрению.
Рис.1.4 -Xirian оформление WEB-интерейса DD-WRT
Альтернативная версия микрокода DD-WRT имеет достаточно хороший русский интерфейс, может кому-то он больше нравится (рис. 1.5)
Рис.1.5 — Русский вариант интерфейса DD-WRT
Сразу необходимо настроить доступ в Internet и проверить работу, т.к. в некоторых «железных» версиях роутера после перепрошивки куда-то пропадает WAN интерфейс, при возвращении на родную прошивку возвращается . .., хотя это лечится дополнительной перепрошивкой в какой то релиз прошивки, после чего можно на более новую переходить.
Задача: организовать хранение информации на внешнем носителе информации через usb интерфейс (внешний hdd, для любителей тишины — ssd). Лично использовал накопители на жестких магнитных дисках с частотой оборотов шпинделя 5400-5900 rpm, т.к. добивался максимально комфортных условий работы в ночное время. HDD помещались во внешние боксы (первоначально был 3.5’ с отдельным внешним блоком питания, затем 2.5’, которому хватает питания от одного USB порта роутера, да и места занимает значительно меньше, есть возможность красиво прикрутить устройство прямо к роутеру.
Мои варианты использования внешних боксов:
Рис.2.1 –Начальный вариант 1043+1TB 3.5’ hdd
Рис.2.1а – Модернизированный вариант роутера – 2.5’ внешний бокс приделан силиконовыми гвоздями к верхней крышке роутера – вариант МОНОЛИТ_1043.
Рис. 2.2 – TL-WDR4300ND + 500 GB hdd — Монолит-2 бокс прикреплен силиконовыми гвоздями.
2.1. Создание необходимых разделов на hdd.
Для корректной работы нам понадобится минимум два раздела, но лучше 3. Создаем следующие разделы на hdd (возможно использовать ПО Acronis)
— 100 МБ – файловая система ext2 – системный диск, куда будем устанавливать пакеты программ, желательно, что бы он был как раз первым. Установка программного обеспечения на внешний hdd обусловлена малым объемом flash памяти устройства (всего 8 МБ доступной памяти)
— Основной раздел –файловая система EXT3 — файловое хранилище. Конечно возможно использование и привычной NTFS, но ради простоты, и скорости работы с внешним носителем информации лучше использовать данную файловую систему. В связи с тем, что процессор был сделан для задач маршрутизации, характеристики ограниченные, при копировании информации с внешнего носителя информации процессор будет загружаться на 100%, при этом скорость записи чтения с файловой системой NTFS будет в районе 3-5 MBps (до 20Мбит/с), c FAT32 5-7 MBps (до 50 Мбит/с) а при использовании EXT3 скорость передачи данных будет 10-13 MBps ( до 80-100 Мбит/с) (Данные на моделях роутеров TP-Link TL-WR1043-ND и TL-WDR4300-ND)
— крайний (не особо обязательный) 100 МБ – swap – раздел файла подкачки, необходим при нехватке оперативной памяти роутера.
2.2. Подключение внешнего носителя информации через usb интерфейс роутера
Подключаем, находящийся во внешнем корпусе hdd, можно сделать небольшую модернизацию роутера как это сделал я.
2.2.1 Включение функции работы с внешним устройством хранения информации.
Через web- интерфейс роутера (у Вас должна быть уже установлена альтернативная версия микрокода) переходим к разделу Services->USB, выставляем в Enable все, кроме использования принтера, точкой монтирования выбираем /opt, т.к. первый раздел у нас для программного обеспечения, и нажимаем применить (Applay), должно получиться подобно данному рисунку 2.4
Рис.2.4 — Подключение внешнего накопителя информации
Тут же запоминаем номер устройства всех дисков, в данном примере:
Основной раздел будет /dev/sda5, Swap раздел /dev/sda/6 – эти данные пригодятся в дальнейшем.
2.2.2 Подключение основного раздела.
Необходимо подключить основной раздел диска – файлового хранилища. Точка монтирования основного раздела будет /mnt .
Предпочтительный вариант это работа в консоли, либо стандартным способом через telnet клиент, либо используя программу наподобии putty, разницы нет. Telnet подключение (Пуск-выполнить telnet 192.168.1.1 если у Вас Win7, то сперва необходимо включить telnet клиент ). Будет запрос на введение пользователя и пароля, ВАЖНО пользователь root , даже если в web интерфейсе совершенно другой, а пароль на доступ – административный пароль для длступа к web интерфейсу ( поэтому я советовал вводить имя пользователя root, дабы не создать путаницы).
Рис.2.5- telnet соединение с роутером, ввод логина/пароля
Монтируем основной диск командой:
mount /dev/sda5 /mnt
Командой df -h посмотрим примонтированные диски, должны увидеть, что наш 100МБ диск смонтирован в /opt (/dev/sda4), основной диск смонтирован в /mnt (/dev/sda5)
Рис. 2.6 – проверка монтирования дисков
Для автоматического подключения основного раздела необходимо в разделе Administration->Commands скопировать команду mount /dev/sda5 /mnt и сохранить ее Save Startup.
2.2.3. Создание общедоступного ресурса.
Основной раздел диска успешно подключен, переходим к следующему этпау. Переходим в web интерфейсе на раздел Services->NAS
Самый удобный вариант это ftp сервер – простой доступ к файлам как из домашней сети, так и из сети интернет, если это понадобиться
Пользователи и пароли пишутся через пробел, каждая пара пользователь/пароль пишется с новой строчки.
Рис.2.7 – настройка ftp сервера из WEBинтерфейса
Второй вариант для пользователей Windows он более удобен – это Samba – в сетевом окружении будет виден расшаренный ресурс, минус данного решения – он значительно больше загружает процессор, как следствие меньшая скорость чтения/записи информации. Настройка из web интерфейса показана на рис. 2.8
Рис. 2.8 – настройка samba
Уточнения:
Server String — отображаемое имя станции («компьютера») в сетевом окружении
Workgroup — рабочая группа — поумолчанию она так же и называется 😉 — меняите на свою
Shares — табличка для создания различных сетевых ресурсов, вплоть до каталога, создается необходимое количество с разными правами.
Users — табличка пользователей с паролями, и доступ к ресурсам
Проверяем доступность из сети любым способом. тот же Total Commander (рис. 2.9)
Рис. 2.9 — проверка ftp через Total Commander
Перенос системного раздела на внешний носитель информации. Суть заключается в следующем, при загрузке роутер должен определить доступность внешнего системного диска, примонтировать все системные папки с внешнего носителя, и уже использовать его как основной.
ВНИМАНИЕ: НЕОБХОДИМО ИНТЕРНЕТ СОЕДИНЕНИЕ. для дальнейших действий крайне необходим доступ роутера к сети Internet
3.1. Переносим файлы на внешний носитель информации,
монтируем системные папки с внешнего носителя информации, устанавливаем последнюю версию ipkg, Делаем небольшую хитрость для монтирования всех разделов после перезагрузки для проверки подленности системного раздела жесткого диска — создаем файлик в корне /opt (файд будет usb. hdd) при наличии которого будут монтироваться все остальные разделы и папки.
команды в telnet:
cp -a /etc/ /opt/ cp -a /bin/ /opt/ cp -a /lib/ /opt/ cp -a /usr/ /opt/ cp -a /tmp/ /opt/ cp -a /jffs/ /opt/ sleep 1 mount /opt/etc /etc mount /opt/bin /bin mount /opt/lib/ /lib mount /opt/usr/ /usr mount /opt/tmp/ /tmp mount /opt/jffs/ /jffs
Подключаем репозиторий с пакетами. (данный репозиторий довольно часто обновляется(лся) так что свежие версии пакетов/библиотек/программ возможно найти там)
mv /etc/ipkg.conf /etc/ipkg.conf.orig echo -e «src backfire http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/ndest root /ndest ram /tmp» > /etc/ipkg.conf cp /bin/ipkg /bin/ipkg.orig cat /bin/ipkg.orig |sed -e «s/—passive-ftp //» > /bin/ipkg ipkg update ipkg install coreutils-sort
ВНИМАНИЕ!!!
возможно не хватает обратных слешей! смотрите внимательно Рис.3.0, должно быть подобное!!!
Рис. 3.0 — Пример команды в консоли, и что должно быть после команды update
Делаем фокус метку файлик, который будет помогать роутеру «понять», что к нему подключен внешний носитель с программами.
cd /opt touch usb.hdd
3.2. устанавливаем торрент клиент transmission, простая нсатройка:
Через удаленный доступ к разделу /mnt создаем нужную нам структуру каталогов, мой вариант
/mnt/!torrent_files/downloads – папка по умолчанию для скачиваемых файлов /mnt/!torrent_files/films /mnt/!torrent_files/programs
И т.д.
Команды для установки в консоли:
ipkg update sleep 1 ipkg install transmission-daemon ipkg install transmission-web ipkg install transmission-remote ipkg install transmission-cli
Пробный запуск transmission команда:
/opt/usr/bin/transmission-daemon -g /opt/etc/trasmission -a *.*.*.* -w /mnt/!torrent_files/downloads -p 666 -t -u root -v password
Где 666— порт подключения (выбрать свой)
password – пароль на подключение – придумать свой
*. *.*.* это сеть из которой будет доступно удаленное управление transmission – при таком виде доступ будет с любого ip адреса, т.е. беспроблемное управление через интернет с других компьютеров.
Хотя есть web интерфейс данного торрент клиента, но он неудобен и малоинформативен, поэтому рекомендую использовать TransmissionRemoteGUI – бесплатная программка удаленного управления с интерфейсом подобным utorrent до 3 версии (Рис.3.1). Последнюю версию которой возможно скачать на официальном сайте тут
Рис.3.1. — Интерфейс TransmissionRemoteGUI
Качаем официально бесплатно без проблем. После установки , запускаем меню создания соединения – вводите IP адрес роутера (если в домашней сети по умолчанию то 192.168.1.1) порт, тот что ввели командой, у меня это 666, пароль и пользователь соответственно, наглядно — рис.3.2.
Рис. 3.2 – Новое соединение TransmissionRemoteGUI
Переходим к настройкам transmission. Конечно можно настроить все через консоль (telnet), только проще и понятнее через TransmissionRemoteGUI. Нажимаем на значок гаечного ключа и попадаем в настройки. Основное это убрать галочку с пункта Разрешить DHT (рис. 3.3) кроме постоянной 100% загрузки процессора со снижением скоростей скачивания/отдачи не дает. Количество пиров опытным путем полученное 30-40, большее количество приведет к постоянной 100% загрузке процессора.
Рис. 3.3 – настройки transmission через TransmissionRemoteGUI.
Закладка настроек Скорость дает дополнительные возможности регулирвоки скоростей скачивания/раздачи (с учетом ночных ускорений) так, что бы наименьшим образом влиять на доступ к сети Internet с других устройств (без дополнительного использования QOS) рис. 3.4
Рис.3.4 — Настройка скоростей скачивания/раздачи
После всех проделанных операций выключаем transmission
Команда
killall transmission-daemon
3.3. ставим консольный менеджер файлов mc
ipkg install mc
запуск в консоли mc либо /opt/usr/bin/mc
3.4. Запуск при перезагрузке выключении
Для возможности корректной работы полученной системы после перезагрузки, отключения электроэнергии. Переходим в раздел Administration->Commands , куда копируем
sleep 20 if [ -f /opt/usb.hdd ]; then mount /opt/etc /etc mount /opt/bin /bin mount /opt/lib/ /lib mount /opt/usr/ /usr mount /opt/tmp/ /tmp mount /opt/jffs/ /jffs sleep 10 mount /dev/sda5 /mnt sleep 10 /opt/usr/bin/transmission-daemon -g /opt/etc/trasmission -a *.*.*.* -w /mnt/!t_files/downloads -p 666 -t -u root -v password else exit fi
сохраняем, нажав на Save Startup
Рис.3.6 – Сохранение команд для автоматического запуска при включении устройства
Можно перезагружать устройство, команда
reboot
или через web интерфейс в разделе Administration-> Management внизу кнопка Reboot Router.
Если после перезагрузки все заработало, пользуемся и радуемся 😉
У Вас работает роутер, настроенный по приведенной выше инструкции, и через некоторое время выходит новая стабильная версия микрокода DD-WRT (прошивка), почитав отзывы, новые возможности Вы решили обновить на эту версию, напрямую сразу обновить не выйдет, последовательность действий будет такая:
1) Получаем новую версию микрокода для Вашего роутера качаем отсюда ftp://dd-wrt.com/others/eko/BrainSlayer-V24-preSP2/ , файл микрокода tl-wr1043nd-webflash.bin
2) Удаляем файл usb.hdd (что бы отключить монтирование разделов с внешнего носителя информации и запуск программ, установленных там же) и перезагружаем роутер, через telnet соединение в консоли:
cd /opt rm -f usb.hdd reboot
3) После перезагрузки удаляем все каталоги с 1 раздела (/opt) внешнего носителя информации команды в консоль (telnet)
cd /opt ls rm -rf /opt/bin rm -rf /opt/etc rm -rf /opt/jffs rm -rf /opt/lib rm -rf /opt/tmp rm -rf /opt/usr ls
контроль удаления через консоль (должно быть пусто):
4) Через браузер (желательно Internet Explorer) переходим в раздел Administration -> Firmware Upgrade , где выбираете файл микрокода (tl-wr1043nd-webflash.bin), обновляите, роутер должен будет перезагрузиться.
Рис.X -WEB вариант обновления прошивки
5)после перезагрузки роутера, проверяите работоспособность, далее (если ни чего не менялось) переходите в консоль и копируите код (без разъяснений):
cp -a /etc/ /opt/ cp -a /bin/ /opt/ cp -a /lib/ /opt/ cp -a /usr/ /opt/ cp -a /tmp/ /opt/ cp -a /jffs/ /opt/ sleep 1 mount /opt/etc /etc mount /opt/bin /bin mount /opt/lib/ /lib mount /opt/usr/ /usr mount /opt/tmp/ /tmp mount /opt/jffs/ /jffs sleep 1 mv /etc/ipkg.conf /etc/ipkg.conf.orig echo -e «src backfire http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/ndest root /ndest ram /tmp» > /etc/ipkg.conf cp /bin/ipkg /bin/ipkg.orig cat /bin/ipkg.orig |sed -e «s/—passive-ftp //» > /bin/ipkg ipkg update sleep 4 ipkg install coreutils-sort sleep 1 cd /opt touch usb.hdd ipkg install transmission-daemon ipkg install transmission-web ipkg install transmission-remote ipkg install transmission-cli sleep 2 mount /dev/sda5 /mnt sleep 1 /opt/usr/bin/transmission-daemon -g /opt/etc/trasmission -a *.*.*.* -w /mnt/!t_files/downloads -p 666 -t -u root -v password df -h
6) Настраиваем transmission-daemon либо через консоль, либо через TransmissionRemotegGUI
7) Перезагружаем роутер
в консоли команда reboot
8) После успешной загрузки, окончательно проверяем работоспособность устройства на новой версии микрокода (прошивки).
p.p.s. Надеюсь кому-нибудь понадобится данная инструкция
Невозможно увидеть клиента при использовании проводного Ethernet
Обратите внимание, что в соответствии с ошибкой в прошивке DD-WRT, которую связал @Simon The Cat, вам может потребоваться выполнить некоторые дополнительные команды, как я делал на моем TL-WR841Nv9, когда я обновился до DD-WRT build 38240.
Вы можете / должны проверить, какой интерфейс использовать, запустив «список swconfig» в сеансе SSH.
root@TL-WR841Nv9:~# swconfig list
Found: switch0 - eth0
root@TL-WR841Nv9:~#
Вы также можете подтвердить, что на всех портах вам нужно включить vlan 0 с помощью «swconfig dev eth0 show» … В приведенном ниже случае у меня есть порты 0,1,2,3 и 4:
root@TL-WR841Nv9:~# swconfig dev eth0 show
Global attributes:
enable_vlan: 0
mirror_monitor_port: 15
Port 0:
enable_mirror_rx: 0
enable_mirror_tx: 0
pvid: 0
link: port:0 link:up speed:1000baseT full-duplex txflow rxflow
Port 1:
enable_mirror_rx: 0
enable_mirror_tx: 0
pvid: 0
link: port:1 link:down
Port 2:
enable_mirror_rx: 0
enable_mirror_tx: 0
pvid: 0
link: port:2 link:down
Port 3:
enable_mirror_rx: 0
enable_mirror_tx: 0
pvid: 0
link: port:3 link:up speed:100baseT full-duplex auto
Port 4:
enable_mirror_rx: 0
enable_mirror_tx: 0
pvid: 0
link: port:4 link:up speed:100baseT full-duplex auto
VLAN 0:
vid: 0
ports: 0 1 2 3 4
root@TL-WR841Nv9:~#
Последние команды, которые я ввел в Администрирование -> Команды -> Командная консоль [блок] -> «Сохранить запуск», были следующими. Замените ваше имя интерфейса ниже, которое для TP-Link TL-WR841Nv9:
swconfig dev eth0 set reset 1;
swconfig dev eth0 set enable_vlan 1
swconfig dev eth0 vlan 0 set ports '0 1 2 3 4'
swconfig dev eth0 set apply 1
Впоследствии — не знаю почему, приведенный ниже вывод из «swconfig dev eth0 show» выглядит идентично выводу той же команды после того, как я запустил только эти две команды при запуске «swconfig dev eth0 set enable_vlan 1; swconfig dev eth0 set apply 1;» но по какой-то причине моему маршрутизатору потребовались две другие линии, чтобы заставить порты коммутатора правильно взаимодействовать между устройствами, как описано в отчете об ошибках :
root@TL-WR841Nv9:~# swconfig dev eth0 show
Global attributes:
enable_vlan: 1
mirror_monitor_port: 15
Port 0:
enable_mirror_rx: 0
enable_mirror_tx: 0
pvid: 0
link: port:0 link:up speed:1000baseT full-duplex txflow rxflow
Port 1:
enable_mirror_rx: 0
enable_mirror_tx: 0
pvid: 0
link: port:1 link:down
Port 2:
enable_mirror_rx: 0
enable_mirror_tx: 0
pvid: 0
link: port:2 link:down
Port 3:
enable_mirror_rx: 0
enable_mirror_tx: 0
pvid: 0
link: port:3 link:up speed:100baseT full-duplex auto
Port 4:
enable_mirror_rx: 0
enable_mirror_tx: 0
pvid: 0
link: port:4 link:up speed:100baseT full-duplex auto
VLAN 0:
vid: 0
ports: 0 1 2 3 4
root@TL-WR841Nv9:~#
Есть ли в роутере постоянное хранилище с dd-wrt
Star Citizen — новые игроки приходят пообщаться и задать вопросы
Я новичок в этом. У меня есть dd-wrt, установленный и настроенный в моем роутере.
версия dd-wrt: DD-WRT v24-sp2 (07.08.10) версия маршрутизатора: D-Link DIR 600
Я пытаюсь настроить в нем скрипт мониторинга использования полосы пропускания.
Есть ли способ сохранить данные в роутере, не удаляясь при перезагрузке?
Я имею в виду, есть ли какое-то постоянное хранилище, которое я могу получить?
благодаря J
- Насколько я помню, DD-WRT разделяет флеш-память на часть для раздела только для чтения с системой, которая загружается в ОЗУ и распаковывается, а затем используется, и небольшая часть, используемая для хранения настроек, в которую можно записывать. Вы можете попробовать использовать это как место для хранения. Проблема возникает, если вам нужно установить на маршрутизатор дополнительную программу для мониторинга, потому что останется мало места. Когда у меня возникла такая проблема, в конце концов мне пришлось перейти на OpenWRT, который не использует файловую систему только для чтения.
Там должен быть nvram
(т.е. энергонезависимый баран).
nvram show # list all variables nvram get name # get variable nvram set name=value # set variable nvram unset name # delete variable nvram commit # save changes to flash
Как сказал Мика: nvram — это имя постоянного хранилища. К сожалению, это не файловая система. Файловая система DD-WRT (по крайней мере, маленькие) представляет собой комбинацию squashfs и ramfs и заполняется во время загрузки из значений, хранящихся в nvram.
Когда вы идете в Администрирование-> Команды, вы можете ввести сценарий и сохранить его как Пользовательский сценарий (внизу страницы). Вы можете использовать эту функцию для реализации нескольких вариантов использования, при условии, что все они находятся в одном скрипте. Я сделал что-то вроде этого:
case '$1' in wificontrol) #here is code which turns off wlan after 30 mins of inactivity ;; wifion|wifi) wlanIF=ra0 ifconfig $wlanIF up touch /tmp/wlan-online0 ;; *) echo '$0 wifi[on]' esac
Затем я запускаю сценарий в командной строке:
/tmp/custom.sh wifion
И как задание cron (Администрирование-> Управление):
*/4 * * * * root /tmp/custom.sh wificontrol
Я знаю, это не очень хорошее решение, но оно работает. Проверено на моем v24-sp2 (rev 14896)
Есть небольшое пространство, которое можно использовать. Я не знаю точно, потому что я не смотрел спецификации вашего роутера. Когда вы устанавливаете задание cron, вы пишете в файловую систему, не так ли? Я бы зашел по SSH и заглянул в каталог / var. Если у вас есть порт USB, вы можете разместить там свои файлы журнала. Просто убедитесь, что ваш скрипт удаляет журналы, когда они достигают определенного размера, иначе ваш маршрутизатор умрет.
Это может вас заинтересовать http://www.dd-wrt.com/wiki/index.php/Useful_Scripts или эта ветка форума. http://www.dd-wrt.com/phpBB2/viewtopic.php?t=81432
Обычно есть место, которое можно использовать. Например, прочтите этот ответ: https://stackoverflow.com/questions/451638/list-free-flash-space-on-wrt54gl-with-dd-wrt-v24sp1-firmare. В моем WAG200G я для своих целей форматировал mtd2 или mtd3. Но вы должны быть уверены, какой флэш-блок вы можете использовать, иначе вы можете превратить свое устройство в кирпич.
Включите JFFS.
По ссылке есть две инструкции:
- с использованием интерфейса Web-GUI
- с использованием интерфейса командной строки
В моем случае работал только интерфейс командной строки. Интерфейс Web-GUI не работал.
мои модифицированные инструкции интерфейса командной строки
Эти команды проще всего запускать в оболочке через ssh; ssh должен быть включен.
Сначала проверьте, установлен ли уже jffs:
mount
Смонтированный раздел jffs выглядит так:
$ mount ... /dev/mtdblock/4 on /jffs type jffs2 (rw) $ df -h Filesystem Size Used Available Use% Mounted on ... /dev/mtdblock/4 4.3M 260.0K 4.0M 6% /jffs
Если он недоступен, дайте команду DD-WRT отформатировать и создать его:
ВЫ ДОЛЖНЫ ВЕРОЯТНО СОЗДАТЬ РЕЗЕРВНУЮ КОНФИГУРАЦИЮ DD-WRT ПЕРЕД ЗАПУСКОМ ЭТОГО
nvram set jffs_mounted=1 nvram set enable_jffs2=1 nvram set sys_enable_jffs2=1 nvram set clean_jffs2=1 nvram set sys_clean_jffs2=1 nvram commit reboot
После перезагрузки отключите переформатирование при загрузке, чтобы файлы не терялись
nvram set clean_jffs2=0 nvram set sys_clean_jffs2=0 nvram commit
Тест с
date | tee /jffs/test cat /jffs/test
Записки старого админа » Основные команды для работы с BusyBox
Клацая в dir-320 с прошивкой dd-wrt, пришлось выучить пару десятков команд которые мне пригодились и в других устройствах основанных на linux BusyBox.
Итак, что такое этот BusyBox?
BusyBox — набор UNIXовых утилит командной строки, которые используется в качестве основного интерфейса во встраиваемых операционных системах. Для тонкой настройки таких систем, часто используется командная строка. Для этого с помощью TELNET или SSH мы соединяемся с командной оболочкой с одним из таких устройств, например: DIR-320 в основе которой лежит BusyBox и используем ряд следующих команд.
Команды для работы с файлами:
pwd – показать текущий каталог ( каталог в котором находится пользователь) ls – вывести список файлов и каталогов ls -al – форматированный список со скрытыми каталогами и файлами cd /etc – сменить директорию на /etc cd – сменить на домашний каталог mkdir mydir – создать каталог mydir rm file.txt – удалить file.txt rm -r mydir – удалить рекурсивно каталог mydir rm -f file.txt – удалить форсированно file.txt rm -rf mydir – удалить форсированно каталог с подкаталогами mydir cp file1 file2.txt – скопировать file1 в file2.txt cp -r dir mydir – скопировать dir в mydir; создаст каталог mydir, если он не существует mv file2.txt file2 – переименовать или переместить file2.txt в file2. Если file2 существующий каталог - перемещает file2.txt в каталог file2 ln -s file filelink – создать символическую ссылку filelink к файлу file touch myfile – создать файл myfile cat > file.txt – направить стандартный ввод в файл file.txt cat file.txt - вывести содержимое файла file.txt more file.txt – вывести содержимое файла file.txt head file.txt – вывести первые 10 строк файла file.txt на консоль tail file.txt – вывести последние 10 строк файла file.txt на консоль tail -f file.txt – вывести содержимое файла file.txt по мере его роста, начинает с последних 10 строк > - Перенаправление с одного места в другое, например: Выведем последние 10строк с файла test и вставим их в файл oktest, для этого выполним такую команду: tail test > oktest. Если файл oktest не существовал, то он создастся. |
pwd – показать текущий каталог ( каталог в котором находится пользователь) ls – вывести список файлов и каталогов ls -al – форматированный список со скрытыми каталогами и файлами cd /etc – сменить директорию на /etc cd – сменить на домашний каталог mkdir mydir – создать каталог mydir rm file.txt – удалить file.txt rm -r mydir – удалить рекурсивно каталог mydir rm -f file.txt – удалить форсированно file.txt rm -rf mydir – удалить форсированно каталог с подкаталогами mydir cp file1 file2.txt – скопировать file1 в file2.txt cp -r dir mydir – скопировать dir в mydir; создаст каталог mydir, если он не существует mv file2.txt file2 – переименовать или переместить file2.txt в file2. Если file2 существующий каталог — перемещает file2.txt в каталог file2 ln -s file filelink – создать символическую ссылку filelink к файлу file touch myfile – создать файл myfile cat > file.txt – направить стандартный ввод в файл file.txt cat file.txt — вывести содержимое файла file.txt more file.txt – вывести содержимое файла file.txt head file.txt – вывести первые 10 строк файла file.txt на консоль tail file.txt – вывести последние 10 строк файла file.txt на консоль tail -f file.txt – вывести содержимое файла file.txt по мере его роста, начинает с последних 10 строк > — Перенаправление с одного места в другое, например: Выведем последние 10строк с файла test и вставим их в файл oktest, для этого выполним такую команду: tail test > oktest. Если файл oktest не существовал, то он создастся.
Управление процессами в BusyBox:
ps – вывести текущие пользовательские активные процессы top – показать все запущенные процессы и краткую информацию о ресурсах системы kill pid – убить процесс id которого pid killall proces – убить все процессы с именем proces bg – список остановленных и фоновых задач; продолжить выполнение остановленной задачи в фоне fg – выносит на передний план последние задачи fg n – вынести задачу n на передний план |
ps – вывести текущие пользовательские активные процессы top – показать все запущенные процессы и краткую информацию о ресурсах системы kill pid – убить процесс id которого pid killall proces – убить все процессы с именем proces bg – список остановленных и фоновых задач; продолжить выполнение остановленной задачи в фоне fg – выносит на передний план последние задачи fg n – вынести задачу n на передний план
Права доступа на файлы в BusyBox:
chmod 640 file – замена прав доступа файла file на 640. Права назначаются раздельно для пользователя, группы и для всех остальных сложением: 4 – чтение (r) 2 – запись (w) 1 – исполнение (x) Примеры chmod: chmod 777 – чтение, запись, исполнение для всех пользователей chmod 751 – чтение, запись, исполнение для владельца; чтение, исполнение для группы; и только исполнение для остальных пользователей. Дополнительные опции можно посмотреть набрав команду: man chmod. |
chmod 640 file – замена прав доступа файла file на 640. Права назначаются раздельно для пользователя, группы и для всех остальных сложением: 4 – чтение (r) 2 – запись (w) 1 – исполнение (x) Примеры chmod: chmod 777 – чтение, запись, исполнение для всех пользователей chmod 751 – чтение, запись, исполнение для владельца; чтение, исполнение для группы; и только исполнение для остальных пользователей. Дополнительные опции можно посмотреть набрав команду: man chmod.
Использование SSH в BusyBox:
ssh user@host – подключится к host как пользователь user ssh -p port user@host – подключится к узлу host на порт port как пользователь user ssh-copy-id user@host – добавить ваш ключ на узел host для пользователя user чтобы включить вход логина без пароля и по ключам |
ssh user@host – подключится к host как пользователь user ssh -p port user@host – подключится к узлу host на порт port как пользователь user ssh-copy-id user@host – добавить ваш ключ на узел host для пользователя user чтобы включить вход логина без пароля и по ключам
Как осуществляется поиск в BusyBox:
grep pattern files – искать pattern в файле files grep -r pattern dir – искать рекурсивно pattern в директории dir command | grep pattern – искать pattern в выводе command locate file – найти все файлы с именем file |
grep pattern files – искать pattern в файле files grep -r pattern dir – искать рекурсивно pattern в директории dir command | grep pattern – искать pattern в выводе command locate file – найти все файлы с именем file
Системная информация в BusyBox:
date – вывести текущую дату и время роутера cal – вывести календарь на текущий месяц uptime – показать текущий аптайм (время работы системы с момента её загрузки) w – показать пользователей онлайн whoami – имя, под которым вы залогинены finger user – показать информацию о пользователе user uname -a – показать информацию о ядре cat /proc/cpuinfo – информация о процессоре cat /proc/meminfo – информация о памяти man command – показать мануал для команды command df – показать информацию о использовании дисков du dir– вывести “вес” каталога dir free – использование памяти и swap whereis app – возможное расположение программы app which app – какая app будет запущена по умолчанию |
date – вывести текущую дату и время роутера cal – вывести календарь на текущий месяц uptime – показать текущий аптайм (время работы системы с момента её загрузки) w – показать пользователей онлайн whoami – имя, под которым вы залогинены finger user – показать информацию о пользователе user uname -a – показать информацию о ядре cat /proc/cpuinfo – информация о процессоре cat /proc/meminfo – информация о памяти man command – показать мануал для команды command df – показать информацию о использовании дисков du dir– вывести “вес” каталога dir free – использование памяти и swap whereis app – возможное расположение программы app which app – какая app будет запущена по умолчанию
Процессы архивации при наличии установленных tar и gzip пакетах в BusyBox:
tar cf file1.tar files1 – создать tar-архив с именем file1.tar содержащий файл files1 tar xf file1.tar – распаковать архив file1.tar tar czf file1.tar.gz files1 – создать архив file1.tar.gz со сжатием Gzip tar xzf file1.tar.gz – распаковать архив tar с Gzip сжатием tar cjf file1.tar.bz2 – создать архив file1.tar.bz2 со сжатием Bzip2 tar xjf file1.tar.bz2 – распаковать архив tar с Bzip2 сжатием gzip file1 – сжать file1 и переименовать в file1.gz gzip -d file1.gz – разжать file1.gz в file1 |
tar cf file1.tar files1 – создать tar-архив с именем file1.tar содержащий файл files1 tar xf file1.tar – распаковать архив file1.tar tar czf file1.tar.gz files1 – создать архив file1.tar.gz со сжатием Gzip tar xzf file1.tar.gz – распаковать архив tar с Gzip сжатием tar cjf file1.tar.bz2 – создать архив file1.tar.bz2 со сжатием Bzip2 tar xjf file1.tar.bz2 – распаковать архив tar с Bzip2 сжатием gzip file1 – сжать file1 и переименовать в file1.gz gzip -d file1.gz – разжать file1.gz в file1
Настройка сети в BusyBox:
ifconfig – показать настройки найденных сетевых интерфейсов ping host – пропинговать узел host и вывести результат whois domain – получить информацию whois для домена domain dig domain – получить DNS информацию для домена domain dig -x host – реверсивно искать информацию DNS об узле host wget file – скачать файл file wget -c file – продолжить остановленную или оборванную закачку файла file |
ifconfig – показать настройки найденных сетевых интерфейсов ping host – пропинговать узел host и вывести результат whois domain – получить информацию whois для домена domain dig domain – получить DNS информацию для домена domain dig -x host – реверсивно искать информацию DNS об узле host wget file – скачать файл file wget -c file – продолжить остановленную или оборванную закачку файла file
Установка\удаление программ из пакетов в BusyBox:
/opt/bin/ipkg-opt install название программы/пакета (установка) /opt/bin/ipkg-opt remove название программы/пакета (удаление) dpkg -i pkg.deb – установка пакета (Debian) rpm -Uvh pkg.rpm – установка пакета (RPM) |
/opt/bin/ipkg-opt install название программы/пакета (установка) /opt/bin/ipkg-opt remove название программы/пакета (удаление) dpkg -i pkg.deb – установка пакета (Debian) rpm -Uvh pkg.rpm – установка пакета (RPM)
Установка из исходников:
cd application-1.0.2 ./configure make make install |
cd application-1.0.2 ./configure make make install
Быстрые клавиатурные команды:
Ctrl+C – завершить текущую команду Ctrl+Z – остановить текущую команду, продолжть с fg на переднем плане или bg в фоне Ctrl+D – разлогиниться, тоже самое, что и exit Ctrl+W – удалить одно слово в текущей строке Ctrl+U – удалить строку !! - повторить последнюю команду exit – разлогиниться |
Ctrl+C – завершить текущую команду Ctrl+Z – остановить текущую команду, продолжть с fg на переднем плане или bg в фоне Ctrl+D – разлогиниться, тоже самое, что и exit Ctrl+W – удалить одно слово в текущей строке Ctrl+U – удалить строку !! — повторить последнюю команду exit – разлогиниться
Может конечно что то ещё упустил, но в принципе для начала и освоения работы со сборкой BusyBox — этого вполне должно хватить.
Надеюсь что этот материал окажется кому-то полезным.
Получите еще больше мощности от вашего домашнего маршрутизатора с DD-WRT Mod-Kit
НЕКЕШЕРОВАННЫЙ КОНТЕНТ
Мы уже показали вам, как модифицировать ваш домашний маршрутизатор с помощью альтернативной прошивки DD-WRT для значительного повышения производительности, а сегодня мы покажем вам, как сделать это еще дальше с помощью DD-WRT Mod-Kit.
Если вы еще этого не сделали, обязательно ознакомьтесь с двумя предыдущими статьями этой серии:
Если вы знакомы с этими темами, продолжайте читать. Имейте в виду, что это руководство является немного более техническим, и новичкам следует быть осторожными при модификации своего маршрутизатора.
Обзор
Это руководство даст пошаговое изложение того, как создать собственную прошивку DD-WRT с модификациями и дополнениями, используя « комплект модификации прошивки “.
Комплект для модификации прошивки позволяет вносить изменения в прошивку, не собирая ее из исходников. Внесение изменений таким образом с помощью предоставленных сценариев превращается в простой вопрос загрузки, замены и удаления некоторых файлов.
Наиболее распространенной причиной использования этого метода является то, что в последнее время DD-WRT поддерживает Openwrt Пакеты IPKG переместились в сторону маршрутизаторов с жесткими дисками (через USB), что делает мод-комплект единственным постоянно работающим способом успешной установки пакетов IPKG в случаях, когда недоступен жесткий диск. Кроме того, этот метод имеет дополнительное преимущество, так как освобождает вас от зависимости JFFS для установки пакетов, что для маршрутизаторов с 4 МБ флэш-памяти является реальной проблемой.
Фотография publicenergy
Цели
Хотя инструкции по этой процедуре подробно описаны на DD-WRT вики и на сайт разработчика , мы стремимся сделать это руководство процедурой копирования и вставки, которую каждый может использовать для достижения следующих целей:
- Установите пакет knockd и его зависимости.
- Установите пакет ssmtp со сгенерированными конфигурациями на основе NVRAM.
- Опционально с поддержкой TLS smtp (также известной как поддержка Gmail).
После того, как вы выполнили эту процедуру, ее должно быть достаточно просто адаптировать для установки других пакетов.
Предупреждение : Действуйте осторожно … имейте в виду, что неправильное использование комплекта для модификации может привести к тому, что маршрутизатор будет нуждаться в кирпичная кладка (как, в свою очередь, бесполезный кирпич ). Однако, если вы настоящий компьютерщик, вы, вероятно, придерживаетесь той идеологии, тот, кто может разрушить вещь, контролирует вещь , а это делают только настоящие гики
Предпосылки
- С помощью этой процедуры можно кирпич ваш маршрутизатор, как и ваш маршрутизатор непригодный для использования, мы не несем ответственности за любой ущерб, который может быть причинен прямо или иным образом в результате использования описанных ниже процедур.
- Эта процедура была выполнена в системах на основе Debian (Lenny, Squeeze и Mint), и в приведенных ниже инструкциях предполагается, что вы тоже используете одну из них.
- Эта процедура рекомендуется только для людей, которые имеют опыт перепрограммирования своего маршрутизатора с помощью DD-WRT, со всеми предварительными условиями, предостережениями и ограничениями, которые применяются при настройке их оборудования. хорошее место для начала было бы наше Превратите домашний маршрутизатор в сверхмощный маршрутизатор с DD-WRT руководство.
- Ваш маршрутизатор должен поддерживать как минимум «мини» версию DD-WRT.
- Эта процедура была создана и протестирована на маршрутизаторах Linksys WRT54GS / L. Если вы используете маршрутизаторы других производителей, ваш пробег может быть очень большим.
Настроить
Установка необходимых пакетов
Комплект для модификации прошивки имеет некоторые зависимости для компиляции и работы. Чтобы установить / обновить их все сразу, выполните следующую команду в терминале:
sudo aptitude install gcc g ++ binutils patch bzip2 flex bison make gettext unzip zlib1g-dev libc6 subversion
Скачать мод-комплект
Создайте подпапку и получите комплект из официального SVN:
mkdir firmware_mod_kit
cd firmware_mod_kit
svn checkout http://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-read-only
cd firmware-mod-kit-только для чтения / багажник /
Загрузите прошивку для работы
В первую очередь следует подумать, какую версию вы хотите использовать?
Практическое правило: в случае сомнений используйте «мини». Это связано с тем, что, пока ваш маршрутизатор поддерживает хотя бы «мини-версию», его использование дает вам все наиболее часто используемые функции без лишних программ. таким образом, оставляя место для процедур и даже некоторое пространство JFFS для другое использование в большинстве случаев.
После того, как вы определились с версией, рекомендуется использовать последнюю доступную версию встроенного ПО, поскольку в них, как правило, содержится много исправлений ошибок по сравнению с их «стабильными» аналогами.
На момент написания последней была «03-17-11-r16454», и эта версия используется в следующих командах.
wget http://www.dd-wrt.com/dd-wrtv2/downloads/others/eko/BrainSlayer-V24-preSP2/2011/03-17-11-r16454/broadcom/dd-wrt.v24_mini_generic.bin
Чтобы упростить отслеживание того, какую версию мы используем, переименуйте загруженный файл, чтобы он соответствовал его номеру версии:
mv dd-wrt.v24_mini_generic.bin dd-wrt.v24_mini_generic-03-17-11-r16454.bin
Это, конечно, необязательно, но команды ниже предполагают, что вы переименовали файл.
Распаковка прошивки
Чтобы иметь возможность изменять файлы в прошивке, нам необходимо извлечь ее содержимое во временный каталог.
Синтаксис этой команды:
./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
В нашем случае это означает:
./extract_firmware.sh dd-wrt.v24_mini_generic-03-17-11-r16454.bin ./working_dir_mini1
Примечание. Когда вы запускаете эту команду в первый раз, она собирает инструменты из набора модов в вашей системе. это происходит только один раз и может занять некоторое время … так что наберитесь терпения …
Установка пакетов
Теперь, когда прошивка извлечена, мы можем установить в нее пакеты.
В общем, процедура заключается в загрузке пакета и его зависимостей в виде файла ipk из
репозиторий openWRT
. После загрузки установите их в извлеченную прошивку, используя предоставленный сценарий.
Пакет knockd
Подробные инструкции по настройке и использованию Knockd будут подробно описаны в следующей статье, поэтому вы можете пропустить этот шаг сейчас или сделать это в рамках подготовки к будущему, поскольку Knockd в любом случае не занимает много места.
Knockd — это демон, который прослушивает коммуникационные события на канальном уровне для последовательностей, а затем воздействует на них.
Это означает, что вы можете заставить устройство, на котором запущен демон, даже не «прослушивать» порты (сканирование портов не увидит их как открытые), и при этом заставить его делать то, что вам нужно, с помощью одной команды, все
путь вверх
к полному сценарию.
Используя эту технику
вы можете запустить сервер для выполнения любой нужной вам операции удаленно (через Интернет), не подвергая вашу домашнюю сеть.
Knockd имеет только одну указанную зависимость, поэтому загрузите пакет и его зависимость, выполнив:
wget http://downloads.openwrt.org/backports/rc5/knockd_0.5-1_mipsel.ipk
wget http://downloads.openwrt.org/whiterussian/packages/libpcap_0.9.4-1_mipsel.ipk
Установите в прошивку ipk «knock daemon» (knockd):
./ipkg_install.sh knockd_0.5-1_mipsel.ipk ./working_dir_mini1/
Установите ipk «перехвата пакетов» (libpcap) в прошивку:
./ipkg_install.sh libpcap_0.9.4-1_mipsel.ipk ./working_dir_mini1/
Так как «knockd» может быть вызван с помощью альтернативного файла конфигурации (как будет объяснено в следующей статье), нет необходимости выполнять какие-либо другие операции, и вы можете перейти к разделу сборки прошивки, если это все, что вы хотели установить.
Пакет SSMTP
Пакет SSMTP позволяет вашему маршрутизатору отправлять сообщения электронной почты, как мы показали в нашем
Как настроить оповещения по электронной почте в Linux с помощью Gmail или SMTP
для серверов. Мы обещали вам тогда, что покажем, как настроить это для DD-WRT, и сейчас доставим.
Это в основном полезно, если вы собираетесь создавать сценарии на маршрутизаторе, о работе которых вы хотели бы получать отзывы по электронной почте.
Настройка этого пакета немного сложнее, чем в обычных системах Linux, из-за ограничений, накладываемых встроенной системой, так что сделайте глубокий вдох… готовы?…. Пошли… 🙂
Загрузите пакет:
wget http://downloads.openwrt.org/backports/rc5/ssmtp_2.61-1_mipsel.ipk
Установите ipk «ssmtp» в прошивку:
./ipkg_install.sh ssmtp_2.61-1_mipsel.ipk ./working_dir_mini1/
Поддержка TLS (необязательно)
SSMTP не указывает какие-либо другие пакеты в качестве зависимостей, однако, если вы хотите использовать шлюз smtp, требующий аутентификации TLS (т. Е. Gmail ), вам также необходимо установить пакет openSSL.
Запись : Есть ОГРОМНЫЙ недостаток чтобы сделать это в виде значительного сокращения пространства на маршрутизаторе для JFFS в дальнейшем. То есть пакет openSSL занимает около 500 Кбайт из ваших 4 Мбайт (для обычного маршрутизатора, не поддерживающего «мега»), прибавьте к этому накладные расходы JFFS, и вы обнаружите, что у вас остались лишь несколько драгоценных блоков свободное место JFFS (около 60 КБ на WRT54GL).
Поскольку до сих пор существуют серверы smtp, не требующие TLS (обычно это ваш интернет-провайдер), я предлагаю подумать, действительно ли вам нужно использовать шлюз, требующий TLS.
Если вы решили включить поддержку TLS, несмотря на ее недостатки, скачайте пакет openSSL:
wget http://downloads.openwrt.org/whiterussian/packages/libopenssl_0.9.8d-1_mipsel.ipk
Установите ipk «openSSL» (libopenssl) в прошивку:
./ipkg_install.sh libopenssl_0.9.8d-1_mipsel.ipk ./working_dir_mini1/
Конфигурации
Для пакета SSMTP существует ограничение, заключающееся в том, что его невозможно вызвать с помощью альтернативного файла конфигурации.
Поскольку микропрограмма доступна только для чтения, когда она находится на маршрутизаторе, это означает, что из коробки мы можем только жестко закодировать конфигурацию в микропрограмму.
Однако что, если мы не хотим проходить все этапы модификации прошивки, просто чтобы изменить настройки электронной почты? (например, изменение пароля).
С этой целью и Джереми (создатель модификаций прошивки), и я пришли к выводу (независимо, если я могу скромно добавить), что единственный разумный способ сделать это — это:
- Сделайте расположение файлов конфигурации, которое пакет ssmtp указывает на доступное только для чтения место в etc, укажите на каталог tmp, который доступен для записи во время выполнения.
- Создайте сценарий, который будет динамически генерировать конфигурации на основе переменных NVRAM при запуске.
Для этого требуются некоторые дополнительные шаги …
Ссылка на каталог конфигурации ssmtp
Как объяснялось выше, нам нужно сделать / и т. д. / ssmtp расположение на маршрутизаторе, укажите на / tmp каталог как единственное доступное для записи место на маршрутизаторе во время выполнения. Для этого удалите каталог ssmtp, созданный установщиком ipk:
rm -rf ./working_dir_mini1/rootfs/etc/ssmtp/
Создайте новую символическую ссылку, которая указывает / etc / ssmtp в корневой файловой системе маршрутизатора, чтобы указать / tmp / etc / ssmtp как абсолютный путь:
ln -s / tmp / etc / ssmtp / ./working_dir_mini1/rootfs/etc/ssmtp
Запись : Несмотря на то, что сейчас это выглядит нелогично, поскольку мы указываем каталог конфигурации пакета на место за пределами рабочего каталога комплекта модификации прошивки, уверяю вас, что это выглядит совершенно нормально с точки зрения маршрутизатора во время выполнения.
Сценарий инициализации
Хотя вполне возможно не внедрять этот сценарий в прошивку и запускать его как сценарий запуска позже, я считаю целесообразным поместить его здесь, хотя бы в качестве примера для использования в будущем.
Первоначально Джереми создавал сценарий по чьему-то запросу, позже я скорректировал и расширил его, чтобы он был более совместим с DD-WRT и отчетами системного журнала.
Создайте новый сценарий инициализации (запуска):
vi ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
Примечание. Вы можете использовать другой редактор, я использую vi, потому что он соответствует тому, что доступно на маршрутизаторе …
Сделайте это своим содержанием:
#! / bin / sh
#
# title: ssmtp_nvram.sh
# автор: Джереми Коллейк и Авиад Равив
# сайт: http://www.bitsum.com, http://howtogeek.com
#
# скрипт для сборки конфигурационного файла из nvram vars.
# будет работать для любого файла конфигурации, который использует
# var = пары типов значений.
#
# использует префиксы для переменных nvram.
#
# и.е.
# ssmtp hostname = something
# переводится в ssmtp.conf
# hostname = something
#
logger_func ()
{
logger -s -p local0.notice -t SSMTP_init $ 1
}
logger_func "########### Начат запуск инициализации SSMTP ###########"
logger_func "Создание каталога etc в / tmp"
[ ! -d /etc/ssmtp/ ] && mkdir -p / tmp / etc / ssmtp /
CONFIG_FILE = / etc / ssmtp / ssmtp.conf
NVRAM_PREFIX = ssmtp_
PACKAGE_NAME = ʻecho $ NVRAM_PREFIX | sed 's / _ / /' '
logger_func "Создание $ CONFIG_FILE для пакета $ PACKAGE_NAME"
#echo $ 0: создание $ CONFIG_FILE для пакета $ PACKAGE_NAME
echo "#! / bin / sh"> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE
echo "# автоматически генерируется на основе nvram от $ 0" >> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE
если [ -z "`nvram show | grep ssmtp`" ]
тогда
logger_func "Похоже, вы не установили переменные NVRAM, необходимые для создания файла conf"
logger_func "** Рассмотрите возможность ** использования этих команд в сценарии запуска:"
logger_func "nvram set [email protected]"
logger_func "nvram set ssmtp_mailhub = smtp.gmail.com: 587"
logger_func "nvram set [email protected]"
logger_func "nvram set ssmtp_UseSTARTTLS = YES"
logger_func "nvram set ssmtp_AuthUser = имя пользователя"
logger_func "nvram set ssmtp_AuthPass = пароль"
logger_func "nvram set ssmtp_FromLineOverride = YES"
logger_func «создайте переменные NVRAM и повторно запустите сценарий инициализации или перезагрузите компьютер, чтобы настройки вступили в силу».
выход 0
быть
###########################################################
#
# основной цикл
#
SED_COMMAND = "s / $ NVRAM_PREFIX / /"
CONFIG_VARS = `nvram show | grep $ NVRAM_PREFIX | sed "$ SED_COMMAND" `
для i в $ CONFIG_VARS; делать
эхо $ i >> $ CONFIG_FILE
сделанный
###########################################################
#
# санитарная проверка
#
если [ ! -f "$CONFIG_FILE" ]; тогда
# echo "$ 0: ERROR - не удалось создать $ CONFIG_FILE. Возможно, нет символической ссылки / etc / XXXX -> / tmp / etc / XXXX?"
logger_func "ОШИБКА - не удалось создать $ CONFIG_FILE. Возможно, отсутствует символическая ссылка / etc / XXXX -> / tmp / etc / XXXX?"
быть
logger_func "########### Завершил запуск инициализации SSMTP ###########"
Сделайте его исполняемым:
chmod + x ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
Обратите внимание на переменные ожидания NVRAM в сценарии, мы обязаны предоставить им что-то для работы после того, как мы установили нашу модифицированную прошивку на маршрутизатор.
Соберите модифицированную прошивку
Теперь, когда все на месте, пришло время повторно упаковать модифицированную прошивку в сжатый двоичный файл, который мы можем передать на маршрутизатор.
Синтаксис скрипта build.sh:
./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY
Для этого мы используем поставляемый скрипт, поэтому выполните:
./build_firmware.sh output_mini1 ./working_dir_mini1/
После завершения операции «сборка» в каталоге «вывода» будет несколько образов прошивки, ожидающих использования.
Теперь вы можете прошить файл под названием «custom_image_00001-generic.bin» на свой маршрутизатор как обычно прошивка DD-WRT .
Запись : Не забудьте восстановить «заводские настройки по умолчанию» до, во время и сразу после прошивки.
Опубликовать флэш-шаги
Поскольку мы заставили пакет SSMTP искать переменные NVRAM для генерации файла конфигурации ssmtp, теперь нам нужно предоставить ему недостающую информацию.
Мы сделаем это с помощью функции «Выполнить команды» в веб-интерфейсе.
Перейдите в веб-интерфейс -> «администрирование» -> «команды» -> вставьте в текстовое поле следующее:
nvram установить [email protected]
nvram set ssmtp_mailhub = smtp.gmail.com: 587
nvram установить [email protected]
nvram установить ssmtp_UseSTARTTLS = YES
nvram устанавливает ssmtp_AuthUser = your-gmail-user-name (без @ gmail.com)
nvram set ssmtp_AuthPass = you-gmail-password
nvram set ssmtp_FromLineOverride = ДА
nvram совершить
Замените текст после знака равенства (=) своей фактической информацией, а затем нажмите «Выполнить команды».
Запись : если вы используете обычный SMTP-сервер, не использующий TLS, то используйте порт 25 вместо 587.
Теперь, когда информация SSMTP готова к использованию, вам нужно будет вызвать сценарий инициализации. Таким образом, вы можете либо перезагрузить маршрутизатор, либо вставить это в текстовое поле «команды»:
/етс/инит.д/С80ссмтп
Затем снова нажмите «Выполнить команды».
Результат этой команды должен выглядеть так:
Проверьте, можете ли вы отправлять электронную почту
Снова вставьте это в текстовое поле «команды» следующую команду со своим адресом электронной почты:
echo "рассылка по электронной почте в тигле 123 qwe" | ssmtp -vvv [email protected]
Затем снова нажмите «Выполнить команды».
Поскольку мы использовали параметр -vvv для дополнительной детализации, вывод этой команды должен выглядеть так:
Если все прошло хорошо, вы получите тестовое письмо в течение нескольких секунд.
Мы надеемся, что вы сможете использовать эту информацию, чтобы расширить границы домашнего маршрутизатора даже дальше, чем вы думали, и теперь вы по-настоящему управляйте своим домашним роутером, а DD-WRT …
Linux продлевает жизнь, Linux расширяет сознание … Linux жизненно важен для пакетных путешествий
SSH все: SSH и DD-WRT
DD-WRT — потрясающее бесплатное обновление прошивки для вашего роутера.
Если вы можете загрузить прошивку DD-WRT на свой маршрутизатор, это позволит вам сделать
две вещи легко:
1. Вы можете легко обрабатывать динамические IP-адреса.
2. Если у вашего роутера есть версия STD, вы также можете использовать его в качестве прокси.
для просмотра веб-страниц и т. д., что означает, что вам не нужно устанавливать Squid на домашний сервер Linux.
Очень краткое руководство по установке DD-WRT
- Перейти к DD-WRT база данных маршрутизатора и введите имя вашего маршрутизатора. Убедитесь, что это поддерживается. например Если вы наберете «Linksys WRT54G», вы увидите, что поддерживаются все версии кроме версии 7.0
- Затем щелкните имя и номер версии маршрутизатора, чтобы открыть следующий страница. Это важно, потому что он сообщит вам RAM и FLASH, а так же дать вам прошивку для скачивания.Если у вашего роутера 8 МБ RAM, то вы можете загрузить только версию MICRO. Если у него 16 МБ ОЗУ, тогда вы можете загрузить СТАНДАРТНУЮ версию. Чтобы увидеть разные версии, прочтите это страница. Если вам нужен SSH-сервер, вам понадобится версия STD.
- Читать WIKI страницу по установке прошивки и следуйте ее указаниям.
Обработка динамического IP
Все версии DD-WRT могут обрабатывать динамические IP-адреса.DD-WRT подключит на такие сайты, как no-ip.com . (Я считаю, что no-ip.com работает намного лучше, чем DynDNS.org) Основная проблема с использованием этих сайтов — что у вас нет такого контроля над вещами, как если бы вы могли запускать сценарии CGI на собственном веб-сайте. См. Часть 4 для этого.
- Сначала создайте аккаунт на no-ip.com На
- No-IP.com есть страница, на которой объясняется, как настроить DD-WRT.
(Просто прочтите первую часть — не переадресацию портов и т. Д.)
Вы просто настраиваете все, как показано на схеме ниже. - Теперь на no-ip.com будет указан ваш последний IP-адрес. (У тебя есть чтобы войти в систему, чтобы проверить это, я не знаю, есть ли способ проверить это с помощью какой-то автоматизированный скрипт.)
Использование DD-WRT в качестве прокси
Для этого вам понадобится стандартная версия DD-WRT, потому что она поставляется с встроенный SSH-сервер.
Шагов:
- Настройте DD-WRT на маршрутизаторе следующим образом
- Разрешить соединения SSH, но изменить порт на другой, кроме 22
- Включите удаленное управление, но убедитесь, что Telnet отключен.Ты должен используйте тот же порт, что и выше.
- Теперь подключитесь к маршрутизатору удаленно … SSH и WebGUI
- DD-WRT должен войти в систему как root (других имен пользователей нет). Если вас беспокоит безопасность, используйте закрытый ключ аутентификация.Для настройки потребуется немного больше работы.
- Это подключит порт 8080 на вашем локальном компьютере к порту 80 на вашем роутер.
- Теперь вы можете ввести в браузере http: // localhost: 8080, и он будет подключите вас к графическому интерфейсу DD-WRT.
- Обратите внимание, WebGUI отключен, вы можете получить к нему доступ только из Интернета, если вы можете использовать SSH получить root-доступ и настроить туннель.
- DD-WRT как веб-прокси
- Мы настроили динамический порт на основе socks на порт 3000.Я не знаю что SOCKS — это не то, как работает динамический порт, но эта настройка работает просто отлично.
- Настройте свой браузер для использования прокси-сервера SOCKS5 на порту 3000. Это приведет к отправляйте все свои веб-запросы через маршрутизатор DD-WRT дома а затем в Интернет. Все зашифровано, кроме вашего DNS-запросы.
- Для шифрования ваших DNS-запросов (с помощью Firefox — не знаю, как это
работает в других браузерах)
а) установить FoxyProxy: у него есть возможность отправлять DNS-запросы через зашифрованный канал SOCKS.
б) или сделайте следующее: введите about: config , затем установите network.proxy.socks_remote_dns на true
Setup Putty для подключения к домашнему IP-адресу:
putty [email protected] -L 8080: localhost: 80 -D 3000
Пояснение:
Эта ссылка «Защищена» Просмотр веб-страниц «содержит аналогичную информацию, хотя я бы не стал включать webGUI, как они. Маршрутизация через туннель SSH намного безопаснее.
DD-WRT — tweakradje
DD-WRT — это прошивка с открытым исходным кодом для (беспроводных) маршрутизаторов. Эта прошивка расширяет возможности, а иногда и стабильность фирменной прошивки производителя.Мой маршрутизатор — Linksys wrt54G v5 (только 2 МБ флэш-памяти и 8 МБ ОЗУ), и я прошил DD-WRT v24-sp2 (08/07/10) micro (версия SVN 14896 ). Спецификации здесь и инструкции по прошивке здесь. Примечание : 5 мая 2016 г. — Последняя бета-версия здесь. Запускаем dd-wrt 3 micro generic, который работает очень хорошо.Почти не осталось памяти для настройки. Однако …
Графический интерфейс
Графический интерфейс очень прост. Вы можете пойти сюда или сюда, чтобы хорошо почитать. Для более старых 2.4 версия есть симулятор.Командная строка
Busybox очень маленький. Не так много команд из-за ограничений флэш-памяти (всего 2 МБ)
Даже команда ls не включена. Теперь это микро.
Все настройки хранятся во флэш-блоке NVRAM mtd. Графический интерфейс делает это за вас, но вы также можете сделать это из командной строки.
Используя telnet, это команды в командной строке:
использование: nvram [получить имя] [установить имя = значение] [unset name] [показать]
nvram show (показывает все настройки и сколько байтов у вас свободно для сохранения настроек)
ses_script =
filter_dport_grp3 =
wl_mac_deny =
wl0.1_radius_port = 1812
wl1_wds4_hwaddr =
wl0_wds2_if =
ОПО = 0
...
pptpd_client_mru = 1450
oet1_fragment = 0
oet5_rem = 192,168 .90.1
размер: 21983 байта (10785 слева)
Установка блокировщика рекламы
Используя функцию DNSMasq , вы можете создать свой собственный блокировщик доменов (рекламы).Он использует файл hosts и из Интернета, в котором есть домены, указывающие на 127.0.0.1. Он работает только с файлами hosts, у которых только перевод строки (например, unix) в сборке dd-wrt, которую я использую. Если это так, проверьте это с помощью
notepad ++.
Блокировка доменов с помощью dsnmasq
Dnsmasq читает файл /tmp/dnsmas.conf. Он создаст его с опциями dhcp при запуске службы. Это не позволит вам добавлять опции. А вот переменную nvram dnsmasq_options вы можете добавить свою через графический интерфейс.Используя графический интерфейс, перейдите на вкладку Services> Services и включите в разделе DNSMasq как DNSMasq , так и Local DNS .
В поле Additional DNSMasq Options введите две строки:
# addn-hosts = / tmp / adhosts
cache-size = 250
domain-required
bogus-priv
no -negcache
адрес = / 2mdn.net / 0.0.0.0
<добавить сюда больше доменов>
адрес = / 2o7.net / 0.0.0.0
Нажмите кнопку Применить настройки .
Примечание: не работает с микростроением через графический интерфейс, вы должны делать это через Telnet
Способ установки параметров dnsmasq в сборке mricro — через telnet:
telnet
login
$ nvram show # это дает вам настройки nvram и сколько байтов осталось в хранилище
$ stopservice dnsmasq
$ nvram set dnsmasq_options = "cache-size = 250
$ domain-required
$ Bogus-priv
$ no-negcache
$ адрес = / 2mdn.net / 0.0.0.0
$ ... добавьте свой ...
$ address = / 2o7.net / 0.0.0.0 "
$ nvram get dnsmasq_options # визуальная проверка перед фиксацией в nvram !!
$ nvram commit
$ startservice dnsmasq
$ exit
Блокировка хостов с локальным dnsmasq
Теперь перейдите на вкладку Администрирование> Команды и вставьте этот текст в поле:
# Tweakradje
dec 2015 # 9000 dd-wrt micro startup script
#increase randomizer
echo 4096> / proc / sys / kernel / random /poolize # 512
echo 128> / proc / sys / kernel / random / read_wakeup_threshold # 8
echo 256> / proc / sys / kernel / random / write_wakeup_threshold # 128
echo 1> / proc / sys / net / ipv4 / tcp_moderate_rcvbuf # 0
# AD БЛОК с dnsmasq
# stopservice dnsmasq
# nvram_settings
# opt2 «
# nvram commit 900 05
# startservice dnsmasq
sleep 20
# получить файл hosts с помощью unix EOL
#wget -qO / tmp / adhosts http: // adaway.0.0.0.0 «>> / tmp / hosts
echo 127.0.0.1 ad.360yield.com >> / tmp / hosts
# перечитать файл hosts
killall -HUP dnsmasq
Нажмите Сохранить запуск Кнопка. Перезагрузите маршрутизатор. Файл Hosts должен быть UNIX EOL !!!
При загрузке маршрутизатора он будет использовать wget для получения файла hosts с URL http://adaway.org/hosts.txt и добавления его в / tmp / hosts
Затем он отправит SIGHUP в службу dnsmasq, это перечитает файл hosts.
Для тестирования вы также можете вручную добавить хосты в файл / tmp / hosts. Для эффекта перечитайте файл hosts (killall -HUP dnsmasq).
Или через telnet:
nvram set dnsmasq_enable = 1
nvram set dhcp_dnsmasq = 1
nvram set dns_dnsmasq = 1
nvram set sv_localdns2 9000 set 9000 ipram 9000 nvram set sv_localdns2 = <9000 set 9000 ipram> 9000 nvram set sv_localdns5 = <9000 set 9000 ipram> 9000 nvram commit 9000 nvram 9000 set 9000 ipram2> 9000 9000 set 9000 ipram> 9000 Фильтр MAC-адресов по расписанию
Я использую фильтр MAC-адресов, чтобы заблокировать доступ для некоторых устройств в моей локальной сети.Но было бы проще сделать это по расписанию.
Можно ли для этого использовать crontab? Да, это.
Сначала используйте графический интерфейс, чтобы добавить MAC-адреса, которые вы хотите заблокировать. Теперь они хранятся в NVRAM.
Чтобы включить его для WLAN
# WL MAC filter on (deny mac list)
wl mac none
wl mac $ (nvram get wl0_maclist)
wl macmode wl down
wl up
# Часть графического интерфейса пользователя
nvram set wl0_macmode1 = other
Чтобы выключить его 9 0123 nvram set wl1_macmode1 = disabled nvram set wl0_macmode4000
nvram set wl0_macmode4000 =23 nvram set wl1_macmode = deny
nvram commit
# WL MAC filter off (разрешить все)
wl macmode 0
0003 wl down
# Часть графического интерфейса пользователя
nvram set wl0_macmode1 = disabled
nvram set wl0_macmode = disabled
nvram set wl1_macmode = disabled
nvram commit
Может мне также стоит добавить $ (nvram get wl1_maclist) в список «wl mac»?
Итак, чтобы crontab блокировал определенные MAC-адреса в доме, сначала добавьте их в список с помощью графического интерфейса.
Затем добавьте эти строки в свой contab через графический интерфейс.
* 22 * * * root wl mac none && wl mac $ (nvram get wl0_maclist) && wl macmode 1 && wl down && wl up && nvram set wl0_macmode1 = other && nvram set wl0_macmode & deny&mol = other_mac set nvram set wl1_macmode = deny && nvram commit
* 7 * * * root wl macmode 0 && wl down && wl up && nvram set wl0_macmode1 = disabled && nvram set wl0_macmode = disabled && nvram set wl0_macmode = disabled && nvram set & amp; отключено && nvram commit
Startup Script Netgear R6400 router
# Tweakradje dec 2016
# dd-wrt micro startup script
# ADOCK with dnsmasq
stop
# nvram set dnsmasq_options = "opt1
# opt2"
# nvram commit
# startservice dnsmasq
# Ожидание подключения inet
пинг -c 1 8.0.0.0.0 «>> / tmp / hosts
echo 127.0.0.1 ad.360yield.com >> / tmp / hosts
# перечитать файл hosts
killall -HUP dnsmasq
sysctl -w vm.swappiness = 10 # 60
sysctl -w vm.vfs_cache_pressure = 50 # 100
sysctl -w vm.highmem_is_dirtyable = 1 # более быстрый ввод / вывод
.min_free_kbytes = 2108 # 1403
9000ctl
9000ctl
v / O
sysctl -w vm.dirty_ratio = 40 # много ОЗУ для кеш-памяти
sysctl -w kernel.random.read_wakeup_threshold = 128 # 64
sysctl -w kernel.random.write_wakeup_threshold = 256 # 128
sysctl sysctl net ipv4.tcp_low_latency = 1 # более быстрый ACK / Disable Nagle
sysctl -w net.ipv4.tcp_adv_win_scale = 2 # 2 = 1/4 пробела - это приложение. буфер
#LED Off (проблема в LAN PORT NAS)
#gpio enable 1
#gpio enable 2
#gpio enable 6
#gpio enable 8
#gpio enable 9
#gpio disable 10
#gpio disable 11
#gpio enable 12
#gpio включить
#gpio et robowr 0x0 0x18 0x0
Гостевая сеть Wi-Fi
Добавьте вторую сеть Wi-Fi для гостей, которые не подключены к вашей локальной сети, только Интернет.Или, если у вас есть только клиенты 802.11b, поддерживающие WEP, используйте эту гостевую функцию только для подключения к Интернету без ущерба для безопасности локальной сети.
Для этого нужно выполнить несколько простых шагов. Здесь вы можете прочитать больше.- Перейти к настройкам беспроводной сети
- Нажмите Добавить в разделе виртуальных интерфейсов
- Затем настройте, как показано на рисунке ниже (выберите свой собственный SSID и пароль для гостевой сети)
- Установите IP-адрес, который вы не используете в текущей локальной сети
- Нажмите «Сохранить»
- Перейти к безопасности беспроводной сети и введите информацию о безопасности.
- Нажмите «Сохранить»
- Перейти к настройке сети
- Внизу вы найдете DHCPD, нажмите «Добавить» и выберите wl0.1 с On, Start 100, Max 50, Leasetime 3600
- Нажмите Apply
Вот и все.
Ограничение пропускной способности для определенных клиентов LAN
Вы можете использовать функцию QOS, чтобы ограничить пропускную способность WAN для определенных клиентов LAN.Перейдите на вкладку NAT / QOS и включите QOS . Выберите FQ_CODEL в качестве модели очереди. Примерно введите скорость соединения вниз / вверх вашего интернет-провайдера.
Затем перейдите в раздел MAC Priority и добавьте MAC-адреса от клиентов, которых вы хотите ограничить / ограничить.
Вот и все.
Советы и приемы
Резервное копирование NVRAM
Все настройки хранятся в NVRAM. Чтобы быстро получить копию, введите в браузере:
— http: //
— Сохраните файл как nvrambak.bin
Для восстановления настроек используйте графический интерфейс.
Резервная копия загрузчика CFE
Резервная копия загрузчика называется резервной копией CFE. Вы можете получить его через http. (Подробнее) — http: //
— Сохраните файл как cfe.bin
Когда-нибудь он вам может понадобиться, если ваш роутер замурован мягким кирпичом.
Скопируйте файл с маршрутизатора
Давайте скопируем очень минимальный двоичный файл busybox с маршрутизаторов с прошивкой
— telnet
— логин с пользователем root и паролем
— cp / bin / busybox / tmp / www / bb.jpg
— http://10.0.0.1/user/bb.jpg
— Сохранить как … исходное имя
Получите современный busybox
— telnet
— логин с пользователем root и паролем
— wget -O / tmp / busybox http: // www.busybox.net/downloads/binaries/latest/busybox-mips
— chmod 755 / tmp / busybox
— / tmp / busybox ls -l / tmp
ps: при перезагрузке раздел / tmp будет снова очищен!
Получение разделов флэш-памяти mtd
— telnet
— логин с пользователем root и паролем
— cat / proc / mtd
dev: size стирает имя
mtd0: 00040000 00010000 «cfe»
mtd1: 001b0000 00010000 «linux»
mtd2: 0010c400 00010000 «rootfs»
mtd3: 00010000 00008000 «nvram»
Остановка и запуск веб-интерфейса
При остановке создается 2 МБ свободной оперативной памяти.
— killall httpd
Запустить его снова
— запустить httpd -p 80
Уловки оболочки unix
Заполнить файл копией и вставить
cat> afile
вставить любое содержимое
нажмите CTRL + D
Код выхода команды можно найти с помощью echo $?
Просмотр активных подключений: cat / proc / net / ip_conntrack
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 год 22 23 24 25 26 год 27 28 год 29 30 31 год 32 33 34 35 год 36 37 38 39 40 41 год 42 43 год 44 год 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 год 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 | # Не загружать локальный файл / etc / hosts # без хозяев # Добавить для чтения дополнительного пути к файлу hosts, который можно указывать несколько раз.Если указан как каталог, все файлы в каталоге читаются. # addn-hosts = / etc / dnsmasq.hosts.d # Прочитать все файлы в каталоге, обновления файлов будут прочитаны автоматически # hostsdir = / etc / dnsmasq.hosts.d # Например, os01 в / etc / hosts будет расширяться до os01.example.com # expand-hosts # Настройка времени кеширования, как правило, устанавливать не нужно # Время кеширования локального файла hosts обычно не требуется кэшировать локально, поэтому изменения в файле hosts вступают в силу немедленно # local-ttl = 3600 # То же, что и local-ttl, влияет только на аренду DHCP # dhcp-ttl = <время> # Для значения, возвращаемого восходящим потоком без ttl, dnsmasq дает значение ttl по умолчанию, обычно не нужно устанавливать # neg-ttl = <время> # Укажите время ttl, возвращаемое клиенту, обычно не нужно устанавливать # max-ttl = <время> # Устанавливаем максимальный TTL записей в кеше # max-cache-ttl = <время> # Нет необходимости устанавливать, если вы не знаете, что делаете # min-cache-ttl = <время> # Обычно не нужно устанавливать # auth-ttl = <время> # Записывать журнал запросов DNS, если вы укажете log-query = extra, то в начале каждой строки будет дополнительная информация журнала # лог-запросов # Установите логгер, '-' - это stderr, это также может быть путь к файлу.По умолчанию: DAEMON, используйте LOCAL0 при отладке. # журнал-объект = <объект> # средство журнала = / var / log / dnsmasq / dnsmasq.log # Асинхронный журнал, устранение блокировки и повышение производительности. По умолчанию - 5, максимум - 100. # log-async [= |
Telnet_SSH и командная строка — DD-WRT Wiki | Безопасная оболочка
2/15/13 Telnet / SSH и командная строка — DD-WRT Wikiwww.dd-wrt.com/wiki/index.php/Telnet/SSH_and_the_Command_Line#Using_Telnet)3/12
Вы также можете вручную отредактировать /tmp/root/.ssh/authorized_keys и добавить ключи (хотя они исчезнут при перезагрузке, если сценарий запуска не изменяет их).Стоит отметить, что ssh-ключи представляют собой довольно длинные строки символов, поэтому, если вы вставляете их, вы должны быть осторожны, чтобы не получить разрывов строк (т.е. это одна длинная непрерывная строка). или они не будут работать.
Настройка
Метод открытого ключа
Аутентификация с открытым ключом — один из самых безопасных методов входа в SSH. Он работает аналогично HTTPS, поскольку все передачи шифруются ключом, который будет иметь только клиент и сервер. Еще один плюс …Если вы используете этот метод вместо аутентификации по паролю, никто не сможет взломать ваш маршрутизатор, пытаясь угадать пароль! Чтобы включить его, сначала вы должны сгенерировать пару открытого / закрытого ключей на своем настольном компьютере. Это можно сделать с помощью утилиты «Puttygen», если вы используете в качестве клиентов либо Putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html), либо WinSCP. Скопируйте
открытый ключ
в буфер обмена и сохраните закрытый ключ где-нибудь на вашем компьютере.Публичный ключ сохранять не нужно. Если вы его забыли, вы можете дать команду Puttygen (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) открыть файл вашего закрытого ключа вместо создания новой пары ключей, и он сообщит вам ваш открытый ключ. Пользователи сред, отличных от Windows, могут использовать утилиту ssh-keygen (1):
user @ machine: ~> ssh-keygen Создание пары ключей rsa типа открытый / закрытый. Введите файл, в котором будет сохранен ключ (/home/user/.ssh/id_rsa): Введите кодовую фразу (пусто, если кодовая фраза отсутствует): Введите ту же кодовую фразу еще раз: Ваша идентификация сохранена в / home / user /.ssh / id_rsa. Ваш открытый ключ был сохранен в /home/user/.ssh/id_rsa.pub. Отпечаток ключа: 68: 1c: 50: 0e: 76: c1: d0: c7: 9e: 5e: 5a: 65: 78: 20: 5c: fb [email protected]
Рекомендуется не защищать свою пару ключей паролем, так как это упростит вам задачу, хотя и будет несколько менее безопасно. Используя веб-интерфейс, перейдите к
Администрация
таб. (в версии 24 используйте
Услуги
tab) 2. На дополнительной вкладке «Службы» включите
.SSHd
в разделе Secure Shell.Если новые параметры не появляются, SaveSettings3. Вставьте свой
открытый ключ
в
авторизованный ключ
из
SSHD
раздел, который сейчас расширился. Вам нужно будет сгенерировать это на своем рабочем столе, если у вас его еще нет. Сохранение и применение настроек ПРИМЕЧАНИЕ. Формат открытого ключа при вставке должен быть «ssh-rsa», пробел, ключ, пробел, комментарий. Вот пример: (обратите внимание, что в конце не должно быть перевода строки)
ssh-rsa AAAAB4NfaC3yc5… jZfYmBTi7Q == rsa-key-20101024
Альтернативный метод:
Показать все сетевые подключения на маршрутизаторе DD-WRT — Тайлер Лонгрен
Найдите ограничителя пропускной способности, просмотрев все сетевые подключения, проходящие через маршрутизатор DD-WRT
Что-то использовало всю мою восходящую полосу пропускания, я не знал, что это за устройство и кто это (были друзья). Чтобы быстро разобраться в этом, можно запустить простую команду из веб-интерфейса DD-WRT, который покажет все сетевые подключения на вашем маршрутизаторе DD-WRT.
Просто выполните следующие 5 простых шагов:
1. Войдите в веб-интерфейс вашего маршрутизатора.
2. Щелкните вкладку
«Администрирование» , а затем щелкните вкладку «Команды» .3. В текстовой области для ввода команд введите:
cat / proc / net / ip_conntrack
4. Нажмите кнопку
«Выполнить команды» ниже того места, где вы ввели команду выше. После того, как вы нажали кнопку «Выполнить команды» , подождите несколько секунд, и в конечном итоге вы увидите результат, аналогичный тому, что вы видите на изображении выше, ниже — необработанный текст с изображения:
Теперь ключом к отслеживанию пользователя / устройства-нарушителя является поиск IP-адреса источника (почти всегда немаршрутизируемый IP-адрес, например 192.168.1.x, 10.10.10.x или что-то в этом роде), который обнаруживается намного чаще, чем другие немаршрутизируемые IP-адреса.
После того, как вы нашли этот IP-адрес, перейдите на вкладку «Статус» в веб-интерфейсе DD-WRT, нажмите «LAN» , найдите IP-адрес, который, как вы подозреваете, был виновником сверху, и запишите MAC-адрес, связанный с этим IP-адресом.
Ну что теперь?
Работай со мной
Я доступен для найма и всегда беру новых клиентов, больших и малых.У вас есть проект или идея, которые вы хотите обсудить? План запуска, но нет разработчика, чтобы это произошло? Просто свяжитесь с нами, я хотел бы узнать, смогу ли я вам помочь!
Оставить отзыв
У вас есть вопрос или обновленная информация, относящаяся к этому сообщению? Пожалуйста, оставьте комментарий! Комментарии — отличный способ получить помощь, я их все читаю и отвечаю почти на каждый комментарий. Давайте поговорим. 😀
Нравится:
Нравится Загрузка …
СвязанныеОпубликовано Тайлер Лонгрен
Привет! Я Тайлер Лонгрен, внештатный веб-разработчик.Я отец двух прекрасных дочерей и любитель автомобильной стереосистемы. Мне нравятся PHP, JavaScript, WordPress, Git, HTML5 и CSS3 и другие полезные вещи. Мне тоже очень нравится сообщество разработчиков ПО с открытым исходным кодом. Вы можете найти меня в Twitter, Google+ и Github. Это мой личный блог и все тут! Просмотреть все сообщения Тайлера Лонгрена
Опубликовано
DD-WRT и SSH-туннелирование | Блог Acidx
Включение демона SSH на домашнем маршрутизаторе DD-WRT может быть очень полезным, поскольку позволяет использовать туннелирование SSH.Используя туннель SSH, вы можете отправлять любой желаемый трафик через этот туннель в свою домашнюю сеть. Это здорово по двум причинам:
- Вы сможете делать вещи, которые не работают без туннеля, например, открывать заблокированные веб-сайты или использовать заблокированные программы, такие как мессенджеры.
- Весь трафик, проходящий через туннель, зашифрован и бесполезен для третьих лиц.
В этом руководстве я покажу вам, как включить SSH на DD-WRT и как установить туннельное соединение.
Если у вас нет маршрутизатора DD-WRT, вы можете просто подключить любой Linux-компьютер к вашей домашней сети и установить на нем SSH-сервер (обычно он уже установлен).
1. Включение SSH на DD-WRT
Это довольно просто. Просто перейдите на вкладку Services и установите соответствующие параметры:
При включении SSHd будет активирован встроенный SSH-сервер (dropbear). SSH TCP Forwarding не требуется, потому что туннелирование будет работать и без него.Пароль Логин может использоваться для разрешения SSH-соединений с аутентификацией по паролю. Для повышения безопасности вы можете отключить это и использовать аутентификацию только по ключевым файлам. В этом случае вам нужно будет ввести хотя бы один авторизованный открытый ключ. Порт может быть установлен на любой свободный порт, по умолчанию — 22.
Примечания: Имя пользователя для SSH-подключений к DD-WRT всегда root. Пароль — это тот пароль, который вы используете для входа в свой веб-интерфейс. В DD-WRT v24 preSP2 Build 21061 SSH может не работать; по крайней мере, на моем TP-LINK WR1043ND соединение мгновенно разрывается.В этом случае используйте более раннюю версию или новую версию для разработчиков.
2. Примеры
Для следующих примеров я использую компьютер Mac OS X в качестве клиента. Команды терминала также должны работать на большинстве машин Linux. Если вы используете Windows, вы можете использовать Putty; необходимые параметры находятся в разделе «Подключение» -> «SSH» -> «Туннели». Отметьте Local, если вам нужен переключатель -L или Dynamic для переключателя -D.
2.1 Просмотр Интернета
Если вы находитесь в небезопасной сети (т.е.е. открытый WLAN) или не позволяет открывать определенные веб-сайты, вы можете использовать свой SSH-туннель в качестве прокси. Таким образом, все HTTP-запросы будут отправляться через туннель в ваш DD-WRT ящик, который затем получит желаемые веб-сайты и отправит их обратно вашему клиенту через туннель.
Сначала установите SSH-соединение следующим образом:
ssh -D 1337 [email protected]
Это создаст локальный сокет, который прослушивает указанный порт (1337). Любое соединение с этим портом будет динамически перенаправляться через туннель на ваш DD-WRT.Пересылка называется динамической, потому что в случае SOCKS-соединения правильный пункт назначения для перенаправленных запросов определяется автоматически и не должен указываться при установлении туннеля (разницу см. В примере 2.2). Теперь все, что вам нужно сделать, это настроить ваш браузер (в моем случае Opera) для использования локального сокета в качестве прокси-сервера SOCKS:
Теперь весь HTTP-трафик будет отправляться через туннель.Обратите внимание, что скорость просмотра и загрузки ограничена пропускной способностью вашего домашнего подключения.
2.2 Обмен мгновенными сообщениями
Если ваш мессенджер (ICQ, MSN, Jabber,…) не работает, скорее всего, это связано с тем, что брандмауэр блокирует нужный порт. Это ограничение можно обойти, отправив соединение мессенджера через туннель.
Это можно сделать двумя способами.
2.2.1 -D Переключатель
Как и в предыдущем примере, вы можете установить SSH-соединение с помощью переключателя -D:
ssh -D 1337 root @ your.ddwrt.box
Теперь вам просто нужно настроить SOCKS Proxy в вашем мессенджере (в моем случае Adium):
Adium установит соединение через туннель.
2.2.2 -L Переключатель
Этот метод можно использовать, если мессенджер не поддерживает SOCKS Proxying. Однако в этом случае мессенджер должен позволить вам изменить адрес сервера входа в систему.
Установите соединение SSH следующим образом:
ssh -L 1337: логин.icq.com:5190 [email protected]
Это создаст локальный сокет, который прослушивает указанный порт (1337). Любое соединение с этим портом будет перенаправлено через туннель на ваш DD-WRT ящик, который затем установит соединение с указанным целевым хостом и портом (login.icq.com:5190, который является адресом сервера входа в ICQ). Теперь все, что вам нужно сделать, это подключить ваш мессенджер к локальному порту вместо сервера ICQ:
2.3 Удаленное администрирование
Если вы хотите установить RDP-соединение для управления компьютером Windows в вашей домашней сети, вы можете безопасно сделать это через туннель SSH.
Установите соединение SSH следующим образом:
ssh -L 1337: 192.168.0.100: 3389 [email protected]
… где 192.168.0.100 — это компьютер в вашей домашней сети, которым предполагается управлять. Теперь просто откройте инструмент RDP и подключитесь к локальному сокету:
Это также будет работать с VNC, вам просто нужно настроить порт (3389) при установке SSH-соединения.
DD-WRT Удаленный доступ по SSH через VPN
SSH-доступ не работает, когда клиент OpenVPN включен на DD-WRT. Пакеты
действительно приходят к маршрутизатору, если вы пытаетесь использовать SSH для IP-адреса WAN, однако, поскольку весь OUTPUT-трафик перенаправляется через VPN (interface tun0) SSH не удастся.
Чего не хватает, так это правила OUTPUT в iptables для маршрутизации трафика на порт 22 через интерфейс vlan2 (это интерфейс, подключенный напрямую к Интернету).
Сначала создайте таблицу 202 через IP шлюза на интерфейсе VLAN2:
$ ip route добавить значение по умолчанию через $ (nvram get wan_gateway) dev vlan2 table 202
Затем примените правило из таблицы 202 к упаковкам, отмеченным цифрой 22.
$ ip rule add fwmark 22 table 202
Наконец, пометьте 22 каждый выходной пакет на 22-м порту, который не поступает ни с одной машины в локальной сети.
$ iptables -t mangle -I ВЫХОД -p tcp --sport 22 -d! 192.168.1.0/24 -j MARK - отметка 22
Обратите внимание, что последняя команда пропускает пакеты из локальной сети в моем случае 192.168.1.0 / 24, причина в том, что при подключении по SSH с хоста локально пакеты должны маршрутизироваться через br0
, а не через vlan2
.
Сначала введите эти команды в командной строке вашего маршрутизатора, чтобы убедиться, что они работают с вами. Если они каким-то образом нарушат вашу маршрутизацию, перезагрузка очистит их. Убедившись, что они работают, вы можете добавить их в сценарий брандмауэра вашего маршрутизатора. Также обратите внимание, что некоторые версии DDWRT не будут применять правила iptables, пока не будут перезапущены все службы.
Обратите внимание, что мои IP-адрес и порт в моей конфигурации отличаются, потому что я не использую значения по умолчанию.
Для справки, вот как выглядит мой скрипт раздела Firewall:
# Создать правило для пропуска VPN эхо 0> / proc / sys / net / ipv4 / conf / all / rp_filter iptables -t mangle -F ПЕРЕДАЧА ip route добавить таблицу по умолчанию 200 через $ (nvram get wan_gateway) ip rule add fwmark 1 table 200 очистка кеша IP-маршрута ## SSH для расшифровки (порт 12601) # Сначала часть переадресации портов iptables -t nat -I PREROUTING -p tcp --dport 12601 -j DNAT --to 192.