URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 87960
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Пробуждение компьютера по сети с по..."

Отправлено auto_tips , 27-Дек-12 10:26 
++ Задача:

Осуществить возможность пробуждения ([[http://en.wikipedia.org/wiki/Wake-on-LAN Wake on Lan]]) из интернета удаленного компьютера, находящегося дома за роутером марки D-Link (DIR-300, DIR-320).

++ Решение:

Использование команды ip, имеющейся в стандартных сборках BusyBox'a в роутерах D-Link.
  
++ Предисловие:

Дома стоит роутер D-Link DIR-320/NRU ревизии B1, а до этого был DIR-300/NRU ревизии B5, для которых (на данный момент) нет альтернативных готовых прошивок (в том числе и горячо всеми любимой DD-WRT). На роутере стоит BusyBox 1.12.

Проблема состояла в том, что встроенное в веб-интерфейс средство переброса пакетов не позволяют переадресацию в широковещательный канал - [[http://en.wikipedia.org/wiki/Broadcasting_(networking) broadcast]] (x.x.x.255), а хитровыделанный D-Link обновляет arp-таблицу каждые 15-30 секунд, так что непосредственно в выключенный длительное время компьютер Magic Packet тоже не перебросить. Тайваньские ребята решили отказаться от компиляции arp, sudo и прочих печенюшек в BusyBox, поскольку iptables тоже не позволяет POSTROUTING на широковещательный канал.

Решение после недели напряженного поиска было [[http://liveweb.archive.org/http:%2F%2Fwww.brazilfw... найдено]] случайно на ныне почившем форуме сборки линукса для старых компьютеров под роутер.

++ Пример:

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

1. Подключаемся  telnet-ом к роутеру (логин и пароль те же, что и для веб-интерфейса):

   Dlink-Router login: admin
   Password:
   Welcome to
        _______          ___     __  ____   _  _   ___
       |  ___  \        |   |   |__||    \ | || | /  /
       | |   | ||  ___  |   |__  __ |     \| || |/  /
       | |___| || |___| |      ||  || |\     ||     \
       |_______/        |______||__||_| \____||_|\___\
  
                        = Ebuilding Networks for People =
  
  
  
   BusyBox v1.12.1 (2011-05-13 14:42:48 MSD) built-in shell (ash)
   Enter 'help' for a list of built-in commands.
  
   #
  
2. Если компьютер в данный момент присоединен к роутеру, то ищем его mac-адрес, набираем:
  
   # ip neigh show

   <Внешний_ip> dev eth2.5 lladdr 01:23:45:67:AB:CD DELAY   ! Внешний адрес
   192.168.0.50 dev br0 lladdr 11:22:33:44:55:66 REACHABLE  ! Настольный компьютер
   192.168.0.90 dev br0 lladdr 77:88:99:00:AA:BB REACHABLE  ! Ноутбук

3. Поскольку в данный момент уже уже есть запись для нашего mac-адреса, то мы не добавляем, а просто изменяем текущую:
  
   # ip neigh change 192.168.0.50 lladdr 11:22:33:44:55:66 nud permanent dev br0
  
4. Смотрим результат, снова набираем:
  
   # ip neigh show

   <Внешний_ip> dev eth2.5 lladdr 01:23:45:67:AB:CD DELAY   ! Внешний адрес
   192.168.0.50 dev br0 lladdr 11:22:33:44:55:66 PERMANENT  ! Настольный компьютер
   192.168.0.90 dev br0 lladdr 77:88:99:00:AA:BB REACHABLE  ! Ноутбук
  
После этого уже заходим на веб-интерфейс нашего роутера и в разделе "межсетевой экран" в пункте "Виртуальные серверы" добавляем проброс 9 (или 7, в зависимости от вашей сетевой карты) порта роутера на порт ip вашего компьютера.

++ Послесловие:

Совет: настройте через веб-интрефейс роутера DHCP для mac'а вашего компьютера статический IP (по умолчанию DIR-300(320)/NRU выдает их в диапазоне от 192.168.0.2 - 192.168.0.100)

Дополнительные ссылки:
** Немного о линуксовых командах в пределах BusyBox: http://noted.org.ua/1727
** Чуть подробнее про команду ip: http://linux-ip.net/html/tools-ip-neighbor.html
** Для проверки работоспособности можно воспользоваться сайтом: http://wakeonlan.me/
** Особая благодарность русскоязычному форуму D-Link'a, оказавшую  неоценимую помощь и моральную поддержку: [[http://forum.dlink.ru/viewtopic.php?f=3&t=144364 1]], [[http://forum.dlink.ru/viewtopic.php?f=3&t=151446 2]], [[http://forum.dlink.ru/viewtopic.php?f=3&t=152999 3]]


URL:
Обсуждается: http://www.opennet.me/tips/info/2727.shtml


Содержание

Сообщения в этом обсуждении
"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320) NRU"
Отправлено jPump , 27-Дек-12 10:26 
Здравствуйте, знатоки.

После добавления статической записи в ARP таблицу роутера остается еще одна проблема: запись остается там только до первого ребута.

Моя попытка решения:
1. Смотрю, что есть в моем распоряжении

   #ls /bin

   zcat              ps                led               dnsmasq
   wlctl             ping              kill              dmac
   umount            pidof             iptables-save     dd
   true              pcmcmd            iptables-restore  date
   touch             netstat           iptables          csr_go
   tc                mv                ip                cp
   tar               mtr               initdongle        clscmd
   switch            mtdc_wt           igmpproxy         chmod
   sleep             mtdc_rd           hw_nat            cat
   sh                mount             hostname          busybox
   sed               mknod             gzip              ated
   run-parts         mkdir             gunzip            ash
   rm                mfc               grep              acl
   resident_cli      mem_usage         flash             ac
   resident          ls                false             3gcli
   reg               login             egrep
   pwd               ln                echo

   # ls /etc

   xl2tpd.conf            miniupnpd.conf         ethers
   wireless_country_list  ld.so.conf             e2p.bin
   usb_modeswitch.d       lanwanext.conf.in      dsa_passwd
   services               init.d                 default
   resolv.conf            httpd.conf             config.default
   protocols              hosts                  admin.spool
   ppp                    group                  Wireless
   passwd                 fstab                  TZ
   motd                   ethertypes

   # ls /etc/init.d

   rcS

Здесь, насколько я понял, пингвин оставляет себе записку на память, чем заниматься при пробуждении. Смотрю:

   # cat /etc/init.d


   #! /bin/sh

   export PATH=$PATH:/usr/sbin:/usr/bin:/sbin:/bin

   led power on

   dcfg pre_boot

   /usr/sbin/loadconfig

   #trap - INT QUIT TSTP

   mkdir -p /var/spool/cron/crontabs
   cp /etc/admin.spool /var/spool/cron/crontabs/admin
   crond -l 10

   echo "NTPValid=0" > /var/run/ntp_status
   #dcfg set_device_params
   echo 2 >/proc/sys/vm/overcommit_memory

   touch /tmp/boot.tmp
   /usr/sbin/drop_caches

   /bin/resident

   /usr/sbin/drop_caches
   echo 0 >/proc/sys/vm/overcommit_memory
   rm -f /tmp/boot.tmp
   cat /etc/motd
   dcfg post_boot

   exit $?

Здорово, похоже на правду. Перед тем как добавить туда свою "ip neigh add...", пришлось немного выдать прав на изменение файла.

   # mount -o remount / -rw
   # chmod 777 /etc/init.d/rcS
   # ls -l /etc/init.d/rcS

   -rwxrwxrwx    1 0        0             514 /etc/init.d/rcS

А вот дальше все тухло складывалось:
  
   # cat > /etc/init.d/rcS
  
   test

   cat: write error: Invalid argument

Если туда транслировать с помощью эхо (вначале копировал файл rcS в /tmp, правил с помощью cat, проверял):
  
   # echo /tmp/rcS > /etc/init.d/rcS
   # cat /etc/init.d/rcS

Пусто.

   # mv -f /tmp/rcS /etc/init.d/rcS

   mv: cannot remove '/etc/init.d/rcS': Operation not permitted

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

Буду очень признателен за советы в настройке init'a.


"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320..."
Отправлено Аноним , 29-Дек-12 16:02 
> Что примечательно сразу после перезагрузки все приобретает первоначальный вид.
> И вот дальше я продвинуться не смог. sudo в распоряжении нет; rcS
> вроде бы доступен для разных непотребств, а все равно не выходит
> (каменный цветок).

Ну так все правильно - корень хранится в упакованном виде во флеше в каком-нибудь SquashFS и знать ничего не знает о том, что в распакованном в RAM корне что-то поменяли.
В вашем случае, я так подозреваю, используется родная прошивка от DLink. На сколько мне не изменяет мой склероз, в ней нет возможности менять чего-либо не предусмотренное разработчиком. Если у Вас одна из предыдущих аппаратных ревизий, то выходом может быть установка какого-нибудь dd-wrt или openwrt - в них есть возможность задавать дополнительные стартовые скрипты. Для двух последних ревизий *wrt недоступны - SoC другой.


"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320..."
Отправлено Аноним , 29-Дек-12 16:07 
> Для двух последних
> ревизий *wrt недоступны - SoC другой.

По поводу ревизий - уже три. B5, B6, B7.


"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320..."
Отправлено jPump , 30-Дек-12 08:36 
Цитата:
Дома стоит роутер D-Link DIR-320/NRU ревизии B1 для которого (на данный момент) _нет_ альтернативных готовых прошивок (в том числе DD-WRT).

Если я понял вас правильно, то роутер каждый раз при включении разворачивает систему из упакованного внутри образа, изменить который можно только перепрошивкой, да?
А те изменения в настройках веб-интерфейса которые я внес, где хранятся они? Потому что даже после перезагрузки они остаются на месте. Значит есть инструмент изменения образа системы, при том предусмотренный разработчиками, вот только как до него добраться и как им пользоваться для своих целей?


"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320..."
Отправлено p5er6 , 01-Янв-13 05:04 
Вы несовсем правильно представили себе...
Там чип ппзу с парай метров... При записи образ разварачивается в ром. При этом область делится на так скажем зоны, и настройки шьются в специальную зону. Как правило это nvram, но могут применять и другой инструмент.
Длинки самое паршивое... Как народ такое покупает. Есть замечательная поговорка "дешева рибка - х... юшка" (укр.)... Линксис - для дома самое то, на крайняк тп-линк

"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320..."
Отправлено ABATAPA , 06-Янв-13 10:04 
> Вы несовсем правильно представили себе...
> Там чип ппзу с парай метров... При записи образ разварачивается в ром.

Ну, во-первых, там 4M, во-вторых, Flash Memory - это не просто ППЗУ, а тогда уж ЭСППЗУ.
Ибо главное тут - "электрически стираемое".

> Длинки самое паршивое... Как народ такое покупает. Есть замечательная поговорка "дешева
> рибка - х... юшка" (укр.)... Линксис - для дома самое то,
> на крайняк тп-линк

Я бы сказал, что "на крайняк" как раз "Линксис", и уж тем более "тп-линк".
А так - Asus (как самые удачные, надёжные, "раскуроченные", производительные), Zyxel (с их очень удачными Keenetic).
D-Link покупают из-за их дешевизны - или "простые обыватели", или те, кто знает, что им нужно, и эти люди, как правило, тут же прошивают их альтернативными прошивками.


"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320..."
Отправлено p5er6 , 13-Янв-13 18:50 
>Ну, во-первых, там 4M, во-вторых, Flash Memory - это не просто ППЗУ, а тогда уж ЭСППЗУ.
>Ибо главное тут - "электрически стираемое".

Чувак, явно хочешь офтопа!
Главное тут, "перепрограммируемое" - т.к. в кустарных условиях вполне можно изменить содержимое. А то как - электрически или неэлектрически для кустарных условий это уже вопрос второй... И напрашиваешься на соответстующий вопрос: а неэелектрически стираемые в живую ТЫ видел? на моей памяти последнее применение таких технологий это спецпромышленная электроника, а до этого только компьютеры поколения синклера, тр-доса, искры и т.п.

>D-Link покупают из-за их дешевизны...

а потом хотят, что-то еще и выжать... ну купи себе оку с целью проапгрейдить до мерседеса. А теперь лезут вопросы... как сделать - то, что производитель не задумал :)
длинк, комплектуют самыми дешевыми и низкотехнологичными комплектующими и модулями.

>Я бы сказал, что "на крайняк" как раз "Линксис", и уж тем более "тп-линк".

Хотя бы посмотри по комплектации: процессоры на класс выше и озу в разы больше
А зазор в цене мене чем в 2 раза, если длинк 50$ то линксис 80... а тп-линк и то меньше, т.к. это оем от линксис - ну экономят на обвязках и всяких фильтрах - но на то она и разница в цене.


>А так - Asus (как самые удачные, надёжные, "раскуроченные", производительные)

Асус это OEM. ОДМ только на комплектующих для пк и самих мобильных платформ... ихнюю историю по производсвту сетевого оборудования - хватит пальцев одной руки для перечисления.
Zyxel (с их очень удачными Keenetic) - давно они уже не odm

И, вообще, если манагер-средного-звена утверждает, что дешевое лучше дорого home-based то значит, что он не удосужился открыть коробку и хотя бы порсмотреть  инструкцию.
А если он же считает, что это сложнее, то тут опять же не видел её в "живую" и не сталкивался с высокотехнологичным оборудыванием.
Лично мне нравится и дома использую люцентовское оборудование - но я же не призываю всех и везде его использовать. А советую действительно хом-бейзед оборудование, с которым можно очень много сделать, т.к. имея опыт почти в 15 лет построения радио сетей (в масштабах областей) и перекрутил в руках, практически, всё, что предлагает рынок.


"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320..."
Отправлено jPump , 14-Янв-13 17:19 
>>D-Link покупают из-за их дешевизны...
> а потом хотят, что-то еще и выжать... ну купи себе оку с
> целью проапгрейдить до мерседеса. А теперь лезут вопросы... как сделать -
> то, что производитель не задумал :)
> длинк, комплектуют самыми дешевыми и низкотехнологичными комплектующими и модулями.

Мне даже как-то стыдно стало =)
Да, купил ОКУ, но намерения сделать из нее реактивный самолет с искусственным интеллектом нет.
Есть простая (на мой взгляд) задача - добавить строку в автозагрузку.
Сейчас прозвучит бредово, но: производитель не является конечной инстанцией в вопросах возможностей своего оборудования, так что если есть возможность что-то допилить, исправить, добавить в имеющийся маршрутизатор "из коробки" при минимальном усилии - почему я должен себе отказывать в этом удовольствии.
Все чего я прошу - помочь с советом в незнакомой мне операционной системе.


"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320..."
Отправлено ABATAPA , 06-Янв-13 09:57 
> роутер D-Link DIR-320/NRU ревизии B1 для которого (на данный момент) _нет_ альтернативных готовых прошивок (в том числе DD-WRT).

Не совсем так.
Работают над OpenWRT: https://sat-forum.info/index.php/topic,9961.1380.html (требуется регистрация)
Есть и другие сборки.
DD-WRT я на нём сейчас пытаюсь запускать, но пока проблемы с ядром.


"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320) NRU"
Отправлено ABATAPA , 06-Янв-13 09:54 
Есть решение проще.
См. http://wl500g.info/showthread.php?4262-Wake-On-Lan-%28W...
(последние страницы)

"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320..."
Отправлено jPump , 09-Янв-13 10:54 
Интерес вызывает настройка динь-ди-линка "из коробки", потому что ревизии постоянно обновляются, и не всегда пользовательские сборки поспевают за новыми маршрутизаторами.

Попробовал варианты из ссылки, которую вы дали, но проблема с доступом на запись и создание файлов в /bin. К сожалению, линукс для меня в новинку, так что многое делается по наитию. Был бы очень благодарен за персональную помощь в настройке шелла бизибокса.

По поводу того, что Д'Линк фигня, настоящие мужики покупают циски, асусы и вообще разруливают пакеты силой мысли - это ненужный холивар, здесь он не к месту.

Теперь поподробнее про ситуацию:
Любой touch, echo >> и прочее обрываются пермишшн динайед.
Как я уже писал выше sudo, su не присутствуют в сборке.
ro system переводился ломом:
mount -o remount / -rw

Насколько я понял принцип такой: добавляем в шелл свою команду, именуем ее типа playmymacro, сохраняем на встроенной ЭСППЗУ и при перезагрузке каждый раз заново вызываем.
Что требуется: автоматическое добавление arp записи при старте системы.

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


"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320..."
Отправлено p5er6 , 13-Янв-13 00:25 
nvram show
nvram show |grep rc_sturtup
nvram set rc_sturtup="команды"
nvram commit
reboot

"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320..."
Отправлено p5er6 , 13-Янв-13 00:26 
> nvram show
> nvram show |grep rc_sturtup
> nvram set rc_sturtup="команды"
> nvram commit
> reboot

*rc_startup


"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320..."
Отправлено jPump , 14-Янв-13 08:30 
# nvram show
sh: nvram: not found

"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320) NRU"
Отправлено p5er6 , 14-Янв-13 18:56 
fis
?

"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320) NRU"
Отправлено p5er6 , 14-Янв-13 19:04 
дожились... длинк уже прошивки в исходники выкладывают...
ftp://ftp.dlink.ru/pub/Router/DIR-320_NRU/Source/

"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320) NRU"
Отправлено mayskiy86 , 19-Май-13 14:00 
огромное спасибо!!заработало все как только поставил  
сетевушку pci.на встроеной все молчало,индикаторы в том числе.мать gigabyte p55m-ud2
роутер dir 300 a1, сетвуха dlink dfe 520tx.делал все по инструкции.запускаю комп удаленно через смарт на андройде спец прогой.включается быстро даже если интернет еле ловит (edge)

"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320) NRU"
Отправлено mayskiy86 , 01-Июн-13 21:40 
заметил косячек ,что если роутер выключить из сети перманент ай пи слетает и надо заново все делать...может есть выход??

"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320..."
Отправлено jPump , 17-Июн-13 16:02 
Увы, здесь я бессилен, не хватает знаний в область nix систем. Как только найду ответ, обязательно обновлю статью.

"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320..."
Отправлено Slava , 22-Дек-13 20:50 
Спасибо автору,действительно работает...

"Пробуждение компьютера по сети с помощью D-Link DIR 300 (320) NRU"
Отправлено Игорь , 13-Янв-15 17:54 
А не легче ли реализовать переадресацию в широковещательный канал, воспользовавшись этим советом? http://batafan.blogspot.com/2012/09/wol-wake-on-lan-d-link-d...