Reconnect

Post new topic   Reply to topic    DD-WRT Forum Index -> Использование и установка DD-WRT
Author Message
kinolik
DD-WRT Novice


Joined: 26 Nov 2014
Posts: 8

PostPosted: Sun Jul 19, 2015 10:33    Post subject: Reconnect Reply with quote
Роутер TP-Link TL-WR841ND v8
Надо удаленно реконектится. Я нашел способ, я просто убиваю процесс pppd через ssh, но так как я пишу через powershell использую программу plink, то у меня зависает процесс на долго. Решил сделать через скрипт поместив его в папку temp
Code:

#!/bin/sh
killall pppd

Но все равно powershell виснет, я так понимаю не успевает получить ответ. Хотел узнать можно ли как-то через командную строку роутера разорвать связь по ssh до того как будет выполнятся команда
Code:

killall pppd

Или может кто-то сталкивался с подобной задачей и посоветует как иначе ее решить.
Sponsor
vasek00
DD-WRT Guru


Joined: 06 Nov 2010
Posts: 3312

PostPosted: Mon Jul 20, 2015 5:39    Post subject: Re: Reconnect Reply with quote
За восстановления соединения ppp после разрыва отвечает сервис - redial 30, где 30 это число секунд через которое будет восстанавливаться соединение. За ssh сессию отвечает сервис dropbear и его команда запуска :
Code:
dropbear -b /tmp/loginprompt -r /tmp/root/.ssh/ssh_host_rsa_key -d /tmp/root/.ssh/ssh_host_dss_key -p 22

но если его удалить то сам он не запуститься.

так что вариантов много, так же есть команда для скрипта
Code:
sleep 10

где 10 кол-во секунд, может быть любое от 1 и выше.
kinolik
DD-WRT Novice


Joined: 26 Nov 2014
Posts: 8

PostPosted: Mon Jul 20, 2015 6:47    Post subject: Reply with quote
Это я уже выяснил, но дело в том что я пишу скрипт на powershell который делает так
1. Разрывает соединение vpn с моим удаленным роутером.
2. Через plink посылает команду убить pppd
3. Пингует пока не восстановится соединение
4. После появления пинга, подключается опять к роутеру через vpn

Вот на втором пункте он зависает(я так понимаю ждет ответа от сервера, который восстанавливает соединения ). Это все мне надо для автоматизации смены ip на роутере. Еще пытался создать скрипт с кодом
Code:

#!/bin/sh
killall dropbear
dropbear -b /tmp/loginprompt -r /tmp/root/.ssh/ssh_h
killall pppd

Залил его на роутер,но после запуска я понял что отключается sh и скрипт перестает работать после того как убиваешь dropbear (надеюсь я правильно понял)
Может есть какие другие варианты?
vasek00
DD-WRT Guru


Joined: 06 Nov 2010
Posts: 3312

PostPosted: Mon Jul 20, 2015 10:25    Post subject: Reply with quote
точную схему подключения не огласите?
kinolik
DD-WRT Novice


Joined: 26 Nov 2014
Posts: 8

PostPosted: Mon Jul 20, 2015 11:03    Post subject: Reply with quote
Роутер подключен к одному интернет провайдеру, я к другому. Я подключаюсь к роутеру со своего провайдера через ssh с помощью программы plink даю команду killall pppd и программа на моем компьютере виснет(я так понимаю за счет того что не успевает дать ответ роутер). Если Вы не то хотели от меня увидеть, то опишите как я еще могу описать мою схему подключения. Спасибо за ответы.
vasek00
DD-WRT Guru


Joined: 06 Nov 2010
Posts: 3312

PostPosted: Mon Jul 20, 2015 13:07    Post subject: Reply with quote
kinolik wrote:
Роутер подключен к одному интернет провайдеру, я к другому.

Вопрос как к провайдеру роутер подключен.
kinolik
DD-WRT Novice


Joined: 26 Nov 2014
Posts: 8

PostPosted: Mon Jul 20, 2015 18:57    Post subject: Reply with quote
PPPoE
vasek00
DD-WRT Guru


Joined: 06 Nov 2010
Posts: 3312

PostPosted: Tue Jul 21, 2015 6:05    Post subject: Reply with quote
kinolik wrote:
PPPoE
...
1. Разрывает соединение vpn с моим удаленным роутером.
...
Это все мне надо для автоматизации смены ip на роутере.

Тогда имеем

- PPPoE и сетевой интерфейс его ppp0
- dropbear сервис ssh/telnet
- redial 30 по умолчанию восстановить сессию PPPoE через 30сек.
- VPN сервер и сетевой интерфейс его тогда ppp1 после установки соединения, сервис pptd

При выполнении команды
Code:
killall pppd

обратить внимание на pid файл который был создан в
Code:
/tmp/var/run/ppp0.pid

и так же нужно удалять если он остался, а то что там plink
Quote:
Вот на втором пункте он зависает(я так понимаю ждет ответа от сервера, который восстанавливает соединения )

то это его проблемы.

Кто мешает вам на самом роутере через "cron" запускать скрипт например через каждые 4часа 30мин, который будут выполнять действие по перезапуску, либо сам скрипт будет запускать pppd, а не ждать "redial 30"
Code:
pppd file /tmp/ppp/options.pppoe
kinolik
DD-WRT Novice


Joined: 26 Nov 2014
Posts: 8

PostPosted: Tue Jul 21, 2015 6:17    Post subject: Reply with quote
Quote:
то это его проблемы.

Пробле то его, но он останавливает работу всего скрипта, т.е. после второго пункта скрипт powershell перестает работать

Quote:
Кто мешает вам на самом роутере через "cron" запускать скрипт например через каждые 4часа 30мин, который будут выполнять действие по перезапуску, либо сам скрипт будет запускать pppd, а не ждать "redial 30"

Мне надо менять ip не по времени, а по команде.

А можно где-то поподробнее прочитать по cron в ddwrt? как пользоваться и как время выставлять?
vasek00
DD-WRT Guru


Joined: 06 Nov 2010
Posts: 3312

PostPosted: Tue Jul 21, 2015 9:53    Post subject: Reply with quote
kinolik wrote:

Проблема то его, но он останавливает работу всего скрипта, т.е. после второго пункта скрипт powershell перестает работать

Давайте все отдельно и не путать, что и где запускаеться
Quote:
2. Через plink посылает команду убить pppd

Я понял, что у вас есть скрипт на роутере, и он просто запускаеться.

kinolik wrote:

Мне надо менять ip не по времени, а по команде.
А можно где-то поподробнее прочитать по cron в ddwrt? как пользоваться и как время выставлять?

стандартное описание для любой *unix системы в интернете по поиску "cron примеры".

Вопрос для чего нужно менять IP - по каманде?
kinolik
DD-WRT Novice


Joined: 26 Nov 2014
Posts: 8

PostPosted: Tue Jul 21, 2015 13:20    Post subject: Reply with quote
Quote:
Вопрос для чего нужно менять IP - по каманде?

Для заработка, нас сайтах оплата за посещения.)
Quote:
Давайте все отдельно и не путать, что и где запускаеться

Да я просто не про и возможно как-то излагаю свою мысль неправильно(извиняюсь что так достаю Вас). Попробую обьяснить по порядку.
Я через plink посылаю команды в оболочке powershell
Вот такая команда
plink -ssh -load DomSSH -l ***** -pw ***** -m "command.sh"
Command.sh
Quote:

killall pppd

После этой команды оболочка powershell подвисает, наверно ждет ответа которого не будет по причине уже разорванного соединение на роутере. Я хочу чтобы либо plink не ждал ответа(этого я в интернете не нашел), либо чтобы роутер перед выполнением команды killall pppd разорвал сессию ssh чтобы всетаки plink получил ответ что связь разорвана.
vasek00
DD-WRT Guru


Joined: 06 Nov 2010
Posts: 3312

PostPosted: Tue Jul 21, 2015 17:04    Post subject: Reply with quote
kinolik wrote:

Я через plink посылаю команды в оболочке powershell
Вот такая команда
plink -ssh -load DomSSH -l ***** -pw ***** -m "command.sh"
Command.sh
Quote:

killall pppd

После этой команды оболочка powershell подвисает, наверно ждет ответа которого не будет по причине уже разорванного соединение на роутере.

опять же, а что она должна делать, если указанный IP уже не существует, есть timeout при превышение которого она скажет - ошибка доступа.

kinolik wrote:

Я хочу чтобы либо plink не ждал ответа(этого я в интернете не нашел), либо чтобы роутер перед выполнением команды killall pppd разорвал сессию ssh чтобы всетаки plink получил ответ что связь разорвана.

Так связь и так разорвана, как только PPPD исчез из запущенных задач, так же исчез и интерфейс на котором был IP для него.
И опять же смотрите пункт выше, что в любой программе предусмотрен контроль соединения, а это период timeout после его превышения будет считаться например в plink что адресат не доступен.

Ищите другое решение.
kinolik
DD-WRT Novice


Joined: 26 Nov 2014
Posts: 8

PostPosted: Wed Jul 22, 2015 11:36    Post subject: Reply with quote
Спасибо что терпели меня, решил свою проблему просто запускаю плинк в отдельном процессе, а потом в конце скрипта все зависшие процессы плинка убиваю.
Quote:
Так связь и так разорвана, как только PPPD исчез из запущенных задач, так же исчез и интерфейс на котором был IP для него.

Да разорвана, только роутер с начало разрывает связь с интернетом, а потом отправляет ответ об успешной или не успешной выполненной команде, а я его не могу получить по понятной причине и виснет скрипт. А если бы он разорвал для начало ssh и потом уже pppd убивал, то я этот ответ получил и скрипт бы не вис. Может что-то не так понимаю, может роутер выполняет все команды, а потом шлет ответ. Если будет желание ответе, просто самому интересно)
vasek00
DD-WRT Guru


Joined: 06 Nov 2010
Posts: 3312

PostPosted: Wed Jul 22, 2015 14:03    Post subject: Reply with quote
kinolik wrote:

Quote:
Так связь и так разорвана, как только PPPD исчез из запущенных задач, так же исчез и интерфейс на котором был IP для него.

Да разорвана, только роутер с начало разрывает связь с интернетом, а потом отправляет ответ об успешной или не успешной выполненной команде, а я его не могу получить по понятной причине и виснет скрипт.

Тут вы не правы, в любом ppp есть механизм определения состояния линии и процедура по ее "разрыву", но тут вы сами убиваете процесс, что равносильно отключить кабель от порта и потом опять включить в порт. Хотя есть скрипты http://www.dd-wrt.ca/wiki/index.php/Script_Execution
И в данном случае он уже не чего не отправляет, не о какой успешной или не успешной - вы просто удалили сетевой интерфейс без предупреждения. Скрипт, а точнее программа которую вы запускаете у вас на ПК не виснет, так как в ней есть timeout по отработке контроля соединения, вопрос только какое время. Кто вам мешает точно так же ее "удалить" из запущенных задач в ПК таким же способом - "убить процесс".

kinolik wrote:

А если бы он разорвал для начало ssh и потом уже pppd убивал, то я этот ответ получил и скрипт бы не вис. Может что-то не так понимаю, может роутер выполняет все команды, а потом шлет ответ. Если будет желание ответе, просто самому интересно)

"dropbear" ни какого отношения к ppp не имеет.
Так вы же пробовали
- удалили процесс dropbear
- следом вы делали kill на pppd

тут можно было еще sleep поставить на 3-5сек. между двумя командами.

Так что как не крути виноват ваш скрипт на ПК.
Display posts from previous:    Page 1 of 1
Post new topic   Reply to topic    DD-WRT Forum Index -> Использование и установка DD-WRT All times are GMT

Navigation

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum