The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"D-Link DIR-300 - удаленное включение компьютера"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / Другая система)
Изначальное сообщение [ Отслеживать ]

"D-Link DIR-300 - удаленное включение компьютера"  +1 +/
Сообщение от robux (ok) on 08-Июл-10, 19:36 
Должен поделиться опытом.
Встала задача: удаленно включать сервер.

Теория проста: посылать из любого интернета "магический" (Wake On Lan) udp-пакет на IP-адрес DLink'a, работающего в режиме "роутер". А DLink должен переправить в сеть широковещательный пакет и "разбудить" комп с заданным MAC-адресом.

Практика оказалась кровавее:
1) заходим в админку DIR-300: http://192.168.1.1 (имя admin, пароль по умолчанию пустой)
2) переходим в рубрику "ADVANCED-Port forwarding"
3) включаем новое правило: имя "WOL", все порты - 4009, протокол "udp", IP-адрес "192.168.1.255"
4) жмем "Save settings" и ВНЕЗАПНО "Invalid IP address !"
5) вводим в адресную строку браузера java-патч:

javascript:function is_valid_ip2(ipaddr, netmask){return true;};
(этим мы временно отключаем*** проверку адресов!!!)
жмем Enter в конце этого текста, он исчезает
6) снова жмем "Save settings", ждем 5 сек и.. СЛАВА ВСЕВЫШНЕМУ! Настройки сохраняются!

Ну а дальше дело техники.
== На сервере делаем так:
aptitude install ethtool
ifconfig (в этом месте запишите на бумажку HWaddr, т.е. MAC)
ethtool eth1
ethtool -s eth1 wol g
poweroff
Уезжаем в Мухосранск.
== В Мухосранске на ноутбуке делаем так:
aptitude install wakeonlan
wakeonlan -p 4009 -i 222.222.222.222 aa:33:bb:44:cc:55
где последние два значения - внешний IP роутера и MAC сервера.

После чего, если повезет, сервер включается ;-)

*** Если у вас другая модель D-Link, то функцию java-скрипта, проверяющего broadcast адрес, можно поглядеть в браузере "Просмотр HTML кода" на странице "ADVANCED PORT FORWARDING RULES". Например, можно было бы дать такой более жесткий хак:

javascript:function check(){return true;};

Не забываем говорить "Спасибо, дядя Миша" :-)

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "D-Link DIR-300 - удаленное включение компьютера"  +/
Сообщение от sHaggY_caT (ok) on 11-Июл-10, 05:05 
>[оверквотинг удален]
>После чего, если повезет, сервер включается ;-)
>
>*** Если у вас другая модель D-Link, то функцию java-скрипта, проверяющего broadcast
>адрес, можно поглядеть в браузере "Просмотр HTML кода" на странице "ADVANCED
>PORT FORWARDING RULES". Например, можно было бы дать такой более жесткий
>хак:
>
>javascript:function check(){return true;};
>
>Не забываем говорить "Спасибо, дядя Миша" :-)

Не затруднит ли Вас поместить заметку в "советы"? Так с ней могло бы ознакомиться большее число людей...

По сути проблемы, позвольте маленькую критику: _зачем_ выключать _сервер_?
Для линуксовой же станции решение бесспорно полезное, кто использует SOHO-"коробочки" под роутеры...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "D-Link DIR-300 - удаленное включение компьютера"  +/
Сообщение от terner email(ok) on 01-Июл-11, 00:11 
>>[оверквотинг удален]
>>После чего, если повезет, сервер включается ;-)

Описанным способом WOL не срабатывает из интернета. Роутер D-Link dir300 не поддерживает широковещательный адрес 192.168.0.255.
Но есть возможность перенаправлять 9 (или 7) UDP порт прямо на сетевой адрес целевого компа.
Многие возразят, что мол у выключенного или гибернированного компа IP адрес в роутере отсутствует и поэтому он никак не сможет запуститься магическим пакетом.
Но в роутере есть ARP . В кеше ARP IP адрес выключенного компа хранится минут 10-15. До истечения этого времени комп успешно удаленно включается.
Если добавить в ARP статическую запись arp -s 192.168.0.100 хх:хх:хх:хх:хх:хх (зарезервированный ip адрес компьютера и mac адрес его сетевухи), то роутер перестанет забывать IP адрес wol компьютера.
Вот только одна незадача. DIR-300 не поддерживает вход по телнету.
Ну а теперь вопрос к спецам по линуксу. Можно ли обойти телнет и написать javascript при помощи которого из адресной строки браузера можно было бы добавить запись в кеш ARP dir-300. Тогда отпала бы необходимость возни с перепрощивкой на DD-WRT

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "D-Link DIR-300 - удаленное включение компьютера"  +/
Сообщение от Define email on 01-Июл-11, 22:02 
через телнет можно подключиться к d link'y

telnet 192.168.0.1
login telnet: Alphanetworks
password telnet: wrgg19_c_dlwbr_dir300
дальше пишите: arp -s 192.168.0.100 хх:хх:хх:хх:хх:хх
и будет вам щастье все подключается из инета, ежли че пруф могу кинуть (обращаться в мыло)

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "D-Link DIR-300 - удаленное включение компьютера"  +/
Сообщение от terner email(ok) on 01-Июл-11, 22:44 
> через телнет можно подключиться к d link'y

Когда я ввожу telnet 192.168.0.1 то появляется сообщение "Не удалось подключиться к этому узлу на порт 23". Логин пароль не запрашиваются


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "D-Link DIR-300 - удаленное включение компьютера"  +/
Сообщение от Вова on 12-Июл-11, 03:36 
> через телнет можно подключиться к d link'y
> telnet 192.168.0.1
> login telnet: Alphanetworks
> password telnet: wrgg19_c_dlwbr_dir300
> дальше пишите: arp -s 192.168.0.100 хх:хх:хх:хх:хх:хх
> и будет вам щастье все подключается из инета, ежли че пруф могу
> кинуть (обращаться в мыло)

получилось подключиться по телнету, но у меня возникла следующая проблема - на роутере стоит busybox v1.00, в которой к сожалению просто нету команды arp.
как её установить можно, и можно ли это вообще?

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "D-Link DIR-300 - удаленное включение компьютера"  +/
Сообщение от Вова on 14-Июл-11, 15:55 
>[оверквотинг удален]
>> telnet 192.168.0.1
>> login telnet: Alphanetworks
>> password telnet: wrgg19_c_dlwbr_dir300
>> дальше пишите: arp -s 192.168.0.100 хх:хх:хх:хх:хх:хх
>> и будет вам щастье все подключается из инета, ежли че пруф могу
>> кинуть (обращаться в мыло)
> получилось подключиться по телнету, но у меня возникла следующая проблема - на
> роутере стоит busybox v1.00, в которой к сожалению просто нету команды
> arp.
> как её установить можно, и можно ли это вообще?

собери из сорцов, тёзка.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "D-Link DIR-300 - удаленное включение компьютера"  +1 +/
Сообщение от jPump on 17-Май-12, 13:19 
>[оверквотинг удален]
>> telnet 192.168.0.1
>> login telnet: Alphanetworks
>> password telnet: wrgg19_c_dlwbr_dir300
>> дальше пишите: arp -s 192.168.0.100 хх:хх:хх:хх:хх:хх
>> и будет вам щастье все подключается из инета, ежли че пруф могу
>> кинуть (обращаться в мыло)
> получилось подключиться по телнету, но у меня возникла следующая проблема - на
> роутере стоит busybox v1.00, в которой к сожалению просто нету команды
> arp.
> как её установить можно, и можно ли это вообще?

Всем доброго времени суток!
Столкнулся с той же проблемой удаленного включения компьютера из интернета.
Дома стоит роутер D-Link DIR-300/NRU ревизии B5, для которого (на данный момент) нет альтернативных готовых прошивок (в т.ч. и горячо всеми любой DD-WRT). На роутере стоит BusyBox 1.12.
А проблема состояла в том, что встроенное в вебморду средство переброса пакетов не позволяют переадресацию в broadcast (x.x.x.255), а хитрожовыделанный D-Link обновляет arp таблицу каждые 15-30 секунд, так что непосредственно в выключенный длительное время компьютер Magic Packet тоже не перебросить.
Многие лучики поно добра ребятам из Парка Шинчу (Тайвань), которые решили отказаться от компиляции arp в BusyBox, поскольку iptables тоже не позволяет POSTROUTING на широковещательный канал.

После недельного воскуривания всевозможных манов всех цветов и мастей я наконец-то натолкнулся на выход из этого безвыходного положения:
http://www.brazilfw.com.br/forum/viewtopic...=38&t=65893

Вкратце, для занесения постоянной записи соответствия ip - mac используется команда ip:

ip neigh add <локальный_айпи_компьютера> lladdr <его_MAC_адрес> nud permanent dev <имя_интрефейса>

Пример:

ip neigh add 192.168.0.50 lladdr 01:23:45:67:89:AB nud permanent dev eth0

И еще несколько советов конкретно под DIR-300/NRU rev B5:
- Выставите статический адрес в настройках локального соединения на компьютере (по умолчанию DIR-300/NRU выдает их в диапазоне от 192.168.0.2 - 192.168.0.100)
- Если Ваш компьютер включен и находится в сети, то смело заходите telnet'ом на роутер и наберите команду

ip neigh show

найдите ваш ай-пи, мак а также имя интрефейса, поскольку для локальной сети по умолчанию роутер создает бридж:

Dlink-Router login: admin
Password:
Welcome to
    
                            <Эмблема D-Link>

                     = Ebuilding Networks for People =

BusyBox v1.12.1 (2011-04-14 16:49:42 MSD) built-in shell (ash)
Enter 'help' for a list of built-in commands.

# ip neigh show
<Внешний_ip> dev eth2.5 lladdr 00:11:22:33:44:55 DELAY
192.168.0.2 dev br0 lladdr 01:23:45:67:89:ab REACHABLE
192.168.0.3 dev br0 lladdr 01:23:45:67:89:de REACHABLE

далее

# ip neigh change 192.168.0.2 lladdr 01:23:45:67:89:ab nud permanent dev br0

и в итоге

# ip neigh show
<Внешний_ip> dev eth2.5 lladdr 00:11:22:33:44:55 DELAY
192.168.0.2 dev br0 lladdr 01:23:45:67:89:ab PERMANENT
192.168.0.3 dev br0 lladdr 01:23:45:67:89:de REACHABLE

- далее настройте переброс входящего пакета на 9 порт вашего компьютера и пробуждайте его отовсюду и всея!

Еще надо помнить, что перманентные записи стираются при перезагрузке роутера, так что на всякий случай обеспечьте себя удаленным доступом к веб-интерфейсу и telnet'у (перебросить порт 23 на 192.168.0.1).

Общая справка по командам ip:
http://linux-ip.net/html/tools-ip-neighbor.html

Надеюсь, что мой пост для кого-нибудь окажется полезным и информативным, всем приятного времени суток!

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

8. "D-Link DIR-300 - удаленное включение компьютера"  +/
Сообщение от Anubis email(??) on 01-Сен-12, 10:25 
Огромное тебе спасибо, человечище! Ты решил проблему моей недельной бессонницы! wake-on-Lan стал для меня навящевой идеей. Вечная хвала тебе. А то я уж и не знал, что мне делать. Даже на форуме D-Link были сообщения, что это просто невозможно сделать в данной модели. Пойду собирать деньги, что бы памятник тебе поставить. Спасибо!
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "D-Link DIR-300 - удаленное включение компьютера"  +/
Сообщение от jPump on 13-Дек-12, 10:05 
Всегда пожалуйста! Рад, что мой микромануал помог.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "D-Link DIR-300 - удаленное включение компьютера"  +/
Сообщение от anubis email(??) on 14-Дек-12, 11:58 
А ты не знаешь как можно сделать .bat файл, который при запуске делает тоже самое? Ну что бы ручками это каждый раз не прописывать, а то у меня эта запись вылетает с завидной периодичностью.(((( если таковой существует, вышли по адресу petroglif@rambler.ru
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "D-Link DIR-300 - удаленное включение компьютера"  +/
Сообщение от Stiv_k email(ok) on 05-Янв-13, 23:06 
Присоединяюсь к anubis.
Как можно автоматизировать этот процесс?

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "D-Link DIR-300 - удаленное включение компьютера"  +/
Сообщение от jPump (ok) on 09-Янв-13, 10:58 
> Присоединяюсь к anubis.
> Как можно автоматизировать этот процесс?

На данный момент в процессе обсуждения:
http://www.opennet.dev/tips/2727_wol_wake_busybox_dlink_route...

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "D-Link DIR-300 - удаленное включение компьютера"  +/
Сообщение от kMamont on 23-Янв-13, 00:23 
Если после роутера стоит swtch, будет ли работать вышеописанный способ?


Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "D-Link DIR-300 - удаленное включение компьютера"  +/
Сообщение от anubis email(??) on 22-Апр-13, 00:20 
> Присоединяюсь к anubis.
> Как можно автоматизировать этот процесс?

Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run "telnet.exe [ROUTER-IP-ADDRESS]"
WScript.Sleep 1000
oShell.SendKeys "[LOGIN]" & chr(13)
WScript.Sleep 1000
oShell.SendKeys "[PASSWORD]" & chr(13)
WScript.Sleep 1000
oShell.SendKeys "ip neigh change [PC-IP-ADDRESS] lladdr [MAC] nud permanent dev br0" & chr(13)
oShell.SendKeys "exit" & chr(13)
oShell.SendKeys "" & chr(13)

Всё это запихиваем в бат-файл. Работает как изнутри сетки так и снаружи.
Не забудьте перед использованием включить Клиент Telnet в компонентах Windows.
Использовать нужно после включения-выключения электричества, что бы восстановить ARP.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

15. "D-Link DIR-300 - удаленное включение компьютера"  +/
Сообщение от anubis email(??) on 25-Апр-13, 14:58 
Извиняюсь, vbs файл
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру