Перейти к содержанию
VicG

выполнить скрипт telnet для отсылки роутеру

Рекомендуемые сообщения

Есть роутер Linksys wrt610n. Нужно пробросить в нем порты (51000, 51001, 50002 - udp/tcp) для uTorrent'а и прочих программ, подключившись через telnet (через вебморду порты гарантированно пробрасываютя только для внешки) и вручную введя соответствующие команды:

exp_plus.gif Открыть текст
iptables -t nat -A PREROUTING -p tcp -i vlan2 --dport 51000 -j DNAT --to 192.168.1.100:51000

iptables -A FORWARD -p tcp -i vlan2 -o eth0 --dport 51000 -j ACCEPT

iptables -t nat -A PREROUTING -p udp -i vlan2 --dport 51000 -j DNAT --to 192.168.1.100:51000

iptables -A FORWARD -p udp -i vlan2 -o eth0 --dport 51000 -j ACCEPT

iptables -t nat -A PREROUTING -p tcp -i vlan2 --dport 51001 -j DNAT --to 192.168.1.100:51001

iptables -A FORWARD -p tcp -i vlan2 -o eth0 --dport 51001 -j ACCEPT

iptables -t nat -A PREROUTING -p udp -i vlan2 --dport 51001 -j DNAT --to 192.168.1.100:51001

iptables -A FORWARD -p udp -i vlan2 -o eth0 --dport 51001 -j ACCEPT

iptables -t nat -A PREROUTING -p tcp -i vlan2 --dport 51002 -j DNAT --to 192.168.1.100:51002

iptables -A FORWARD -p tcp -i vlan2 -o eth0 --dport 51002 -j ACCEPT

iptables -t nat -A PREROUTING -p udp -i vlan2 --dport 51002 -j DNAT --to 192.168.1.100:51002

iptables -A FORWARD -p udp -i vlan2 -o eth0 --dport 51002 -j ACCEPT

Проблема такая, что эти команды не запоминаются в nvram и нужно их руками вводить каждый раз при перезагрузке роутера или отключениях электроэнергии (за последнии 2 дня ежедневно электричество гасят на 3-5 минут). Роутер то через упс работает, а вот оборудование билайна в подъезде - нет. Приходится его перезагружать и заново все прописывать :angry:

Так вот, хотелось бы процесс отсылки команд роутеру как-то автоматизировать и не вбивать их руками.

Вопрос: можно ли как-то написать скрипт для telnet'а для автоматического выполнения указанных мной команд? Telnet - встроенный клиент в WinXP SP3.

Поделиться сообщением


Ссылка на сообщение

1 вариант (кривой ИМХО), используя WSH (*.vbs):

exp_plus.gif Открыть текст
Set WshShell = CreateObject("WScript.Shell")

RetCode = WshShell.Run("cmd", 1, False)

WScript.Sleep 2000

WshShell.SendKeys "telnet{ENTER}"

WScript.Sleep 1000

WshShell.SendKeys "o 192.168.1.1{ENTER}" <---- IP-адрес роутера

WScript.Sleep 1000

WshShell.SendKeys "admin{ENTER}" <---- Логин

WScript.Sleep 1000

WshShell.SendKeys "password{ENTER}" <---- Пароль

WScript.Sleep 1000 <---- Ждем, пока отработает (возможно таймаут прийдется подобрать)

WshShell.SendKeys "iptables -t nat -A PREROUTING -p tcp -i vlan2 --dport 51000 -j DNAT --to 192.168.1.100:51000{ENTER}" <---- То, что хотим передать. Эту строчку и строчку ниже повторить нужное количество раз.

WScript.Sleep 1000

........

...

WshShell.SendKeys "iptables -A FORWARD -p udp -i vlan2 -o eth0 --dport 51002 -j ACCEPT{ENTER}" <---- последняя строка

2 Вариант (не менее кривой) ТУТ.

Почему варианты кривые? Потому, что ИМХО проще (и правильнее) запихнуть в cron на роутере эти команды, или в стартап-скрпт там же. Заставьте железку выполнять то, для чего ее сделали, коль скоро есть доступ к ее shell-у.

P.S. А прошивочка на Вашем девайсе случайно не МИР Wi-Fiicon14.gif

P.P.S. Как вариант вместо телнета заюзать Hyprtrminal, он умеет скрипты, ну и PUTTY пойдет. :angry: Мне просто не совсем понятно, по какой причине нужно юзать скрипты, отрабатывающие на ПК, если можно положить команды в стартап или написать свой и положить в роутер...Например в /Tmp

Поделиться сообщением


Ссылка на сообщение

Спасибо! Все получилось, используя первый вариант через WSH...

Да, прошивка от МИР Wi-Fi v.2,2. Родная от Linksys режет скорости, и в ней подключение к pptp/l2tp только по IP, а не по имени сервера.

С проблемой проброса портов разработчики "МИР Wi-Fi" (официальная поддержка linksys в России) в курсе, но не спешат ее решать.

Я тоже не сторонник скриптов и прочего. Это понятный мне способ решение проблемы. Я не программист и с линуксами на ВЫ. Мне просто не хватает знаний.

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


×