<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=Adsl_reset</id>
	<title>Adsl reset - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=Adsl_reset"/>
	<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=Adsl_reset&amp;action=history"/>
	<updated>2026-04-03T17:36:59Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.38.1</generator>
	<entry>
		<id>https://support.qbpro.ru/index.php?title=Adsl_reset&amp;diff=456&amp;oldid=prev</id>
		<title>imported&gt;Vix: Новая страница: «'''Статья посвящается владельцам глючных ADSL модемов'''  DLink, в частности модели 2500U, которая…»</title>
		<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=Adsl_reset&amp;diff=456&amp;oldid=prev"/>
		<updated>2013-08-24T10:06:37Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «&amp;#039;&amp;#039;&amp;#039;Статья посвящается владельцам глючных ADSL модемов&amp;#039;&amp;#039;&amp;#039;  DLink, в частности модели 2500U, которая…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Статья посвящается владельцам глючных ADSL модемов''' &lt;br /&gt;
DLink, в частности модели 2500U, которая зависает с периодичностью около одного раза в сутки, перекрывая жертве и ее близким родственникам жизненно важный доступ к Интернету. Причиной зависания может быть включённый UPnP, старая прошивка, переполнение таблиц маршрутизации или таблиц NAT, перегрев и т.д. Отключение UPnP, настройка автоматического завершения и возобновления сессии PPPoE соединения и прошивка модема последней версией firmware, конечно, снижают частоту зависаний, но не снимают проблему полностью. Этот пост предлагает стройное решение не только для &amp;quot;мягких&amp;quot; зависаний, когда модем просто теряет коннект к интернету, но и для &amp;quot;жестких&amp;quot; случаев, при которых модем даже не отвечает по web-интерфейсу. Решение задачи состоит в том, чтобы при помощи управляемой розетки перезагружать модем по питанию в зависимости от результатов периодически выполняемого скрипта проверки интернет-соединения.&lt;br /&gt;
Приборы и материалы:&lt;br /&gt;
компьютер, который будет контролировать соединение модема с интернетом и при пропадании последнего перезагружать модем по питанию. ОС Windows или Linux. Необходимо наличие LPT порта.&lt;br /&gt;
консоль - cmd в Windows, Terminal в Ubuntu.&lt;br /&gt;
LPT управляемая розетка &lt;br /&gt;
Любимый напиток&lt;br /&gt;
DLink 2500U&lt;br /&gt;
Программная перезагрузка модема и ее недостатки&lt;br /&gt;
Ради справедливости отмечу, что опытный системный администратор ОС Linux вполне может обойтись написанием скрипта или простой программы для подсоединения к модему при потере соединения с Интернетом по протоколу telnet и перезагрузки командой reboot примерно так (возможно, некоторые ожидаемые командой expect строки придется поправить руками - модем может отвечать на telnet запросы несколько иначе):&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 WATCHED_IP=&amp;quot;www.ru&amp;quot;&lt;br /&gt;
 MODEM_IP=&amp;quot;192.168.1.1&amp;quot;&lt;br /&gt;
 USERNAME=&amp;quot;admin&amp;quot;&lt;br /&gt;
 PASSWORD=&amp;quot;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 # watch for remote host&lt;br /&gt;
 ping -q -c 1 &amp;quot;$WATCHED_IP&amp;quot; &amp;gt; /dev/null    &amp;amp;&amp;amp; exit&lt;br /&gt;
 # exit if modem is down&lt;br /&gt;
 ping -q -c 1 &amp;quot;$MODEM_IP&amp;quot; &amp;gt; /dev/null      || exit&lt;br /&gt;
 &lt;br /&gt;
 expect - &amp;lt;&amp;lt; EOF&lt;br /&gt;
 set send_slow {1 .1}&lt;br /&gt;
 spawn /usr/bin/telnet &amp;quot;$MODEM_IP&amp;quot;&lt;br /&gt;
 expect -exact &amp;quot;ADSL Router&amp;quot;&lt;br /&gt;
 expect -exact &amp;quot;Login: &amp;quot;&lt;br /&gt;
 send -s -- &amp;quot;$USERNAME\r&amp;quot;&lt;br /&gt;
 expect -exact &amp;quot;Password:&amp;quot;&lt;br /&gt;
 send -s -- &amp;quot;$PASSWORD\r&amp;quot;&lt;br /&gt;
 expect -exact &amp;quot;&amp;gt; &amp;quot;&lt;br /&gt;
 send -s &amp;quot;reboot\r&amp;quot;&lt;br /&gt;
 expect -exact &amp;quot;The system shell is being reset. Please wait...&amp;quot;&lt;br /&gt;
 exit&lt;br /&gt;
 EOF&lt;br /&gt;
Не забудьте заменить IP адрес модема, имя пользователя и пароль в скрипте на параметры, соответствующие реальности.  Этот скрипт сохраняется в файл и ставится при помощи cron на исполнение каждые 3 минуты.&lt;br /&gt;
Вариант для Windows - поставленный с помощью планировщика заданий на выполнение каждые 3 минуты командный *.bat файл с таким содержанием:&lt;br /&gt;
 @Echo Off&lt;br /&gt;
 SetLocal EnableExtensions EnableDelayedExpansion&lt;br /&gt;
 &lt;br /&gt;
 ping www.ru&lt;br /&gt;
 If !ErrorLevel! == 0 (&lt;br /&gt;
 Echo Internet Online&lt;br /&gt;
 ) Else (&lt;br /&gt;
 Echo Internet Offline&lt;br /&gt;
 Echo rebooting modem..&lt;br /&gt;
 rundll32 url.dll,FileProtocolHandler http://192.168.1.1/rebootinfo.cgi&lt;br /&gt;
 )&lt;br /&gt;
Но этот способ оставляет проблему нерешенной, если модем завис так, что даже не отвечает по web-интерфейсу. А также такой вариант привязывает нас к конкретному типу устройства, заставляя изучать мануалы и тестировать скрипт перезагрузки модема с помощью специфичных для него команд. В этих двух скриптах мы использовали страничку модема rebootinfo.cgi , которая позволяет перезагрузить модем без прохождения процедуры авторизации, а также использовали знание специфичных для этой модели сообщений, которыми модем отвечает при управлении через telnet. При необходимости надежного решения задачи контроля интернет-соединения независимо от типа модема остается только перезагрузка по питанию с помощью управляемой розетки. Подключив розетку к питанию 220В и порту LPT, приступаем к главной части, которая включает создание командных скриптов и расписания для их автоматического выполнения.&lt;br /&gt;
Аппаратная перезагрузка модема в ОС Windows&lt;br /&gt;
Скрипт для операционной системы Windows использует консольную программу для переключения состояния розеток LPTConsoleControl.&lt;br /&gt;
Напишем командный *.bat файл со следующим содержанием:&lt;br /&gt;
 @Echo Off&lt;br /&gt;
 SetLocal EnableExtensions EnableDelayedExpansion&lt;br /&gt;
 &lt;br /&gt;
 ping www.ru&lt;br /&gt;
 If !ErrorLevel! == 0 (&lt;br /&gt;
 Echo Internet Online&lt;br /&gt;
 ) Else (&lt;br /&gt;
 Echo Internet Offline&lt;br /&gt;
 Echo Switching modem on LPT pin#0 power line off..&lt;br /&gt;
 start LPTConsoleControl /pin=0 /status=0&lt;br /&gt;
 Echo pinging localhost for pause&lt;br /&gt;
 ping 127.0.0.1&lt;br /&gt;
 Echo Switching modem on LPT pin#0 power line on..&lt;br /&gt;
 start LPTConsoleControl /pin=0 /status=1&lt;br /&gt;
 )&lt;br /&gt;
Cкрипт для Windows можно скачать в виде командного *.bat файла. Этот скрипт включен в дистрибутив программы LPTConsoleControl, которая используется для переключения состояния управляемой розетки. Обратите внимание на параметр pin в скрипте - он должен соответствовать реальному номеру LPT канала, к которому подключена управляемая розетка. Для управляемых розеток в исполнении LPT-watchdog номер LPT канала всегда равен 0.  Далее с помощью планировщика заданий (Пуск - Стандартные - Служебные - Планировщик задач) создаем задачу на выполнение созданного командного файла или файла modem-watchdog-script.bat из дистрибутива LPTConsoleControl с требуемой периодичностью от имени SYSTEM. Трех минут обычно бывает достаточно для периодичности выполнения скрипта, меньше ставить нежелательно, так как модем должен успевать включиться и выйти в интернет до следующей проверки, в ином случае будет бесконечный цикл перезагрузок.&lt;br /&gt;
Аппаратная перезагрузка модема в ОС Linux&lt;br /&gt;
Скрипт для Linux использует штатные средства ОС для работы с LPT портом (модуль pyparallel). Создаем скрипт как в варианте с перезагрузкой через интерфейс, но заменяем инструкции telnet на команды управления LPT:&lt;br /&gt;
 &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 WATCHED_IP=&amp;quot;www.ru&amp;quot;&lt;br /&gt;
 # watch for remote host&lt;br /&gt;
 ping -q -c 1 &amp;quot;$WATCHED_IP&amp;quot; &amp;gt; /dev/null    &amp;amp;&amp;amp; exit&lt;br /&gt;
 rmmod lp&lt;br /&gt;
 modprobe ppdev&lt;br /&gt;
 python&lt;br /&gt;
 import parallel, time&lt;br /&gt;
 p = parallel.Parallel()     # open LPT1&lt;br /&gt;
 p.setData(0x00)&lt;br /&gt;
 time.sleep(3)&lt;br /&gt;
 p.setData(0x01)&lt;br /&gt;
 quit()&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
Для работы этого скрипта нужен Python и pyparallel. В Ubuntu можно поставить их через apt-get install или через Synaptic.&lt;br /&gt;
Купить управляемую розетку в исполнении &amp;quot;LPT-watchdog&amp;quot; можно в действующем на сайте интернет-магазине.&lt;br /&gt;
Безлимитного и безотказного интернета и до встречи в последующих статьях!&lt;br /&gt;
&lt;br /&gt;
[http://house-intellect.ru взято тут]&lt;/div&gt;</summary>
		<author><name>imported&gt;Vix</name></author>
	</entry>
</feed>