openwrt скрипт перезапуска интерфейса

Openwrt скрипт перезапуска интерфейса

Дорогие пользователи! С 22 Сентября 2021 года открывается новый форум компании TP-Link на платформе tp-link.community

Форум будет доступен по ссылке https://community.tp-link.com/ru (так как форум еще не запущен, то ссылка временно не работает.)

Текущий форум по прежнему будет продолжать работать, все ссылки/прошивки/темы будут доступны, но также, будут перенесены на новый форум в соответствующие категории.

Убедительная просьба не дублировать темы на старом/новом форуме.

Как рестартовать модем под OpenWRT? (ZTE MF192+, Yota LU150)

Как рестартовать модем под OpenWRT? (ZTE MF192+, Yota LU150)

Сообщение Serg1965 » 01 июл 2014, 11:47

Аппаратная версия устройства : V.1
Версия прошивки : OpenWrt Attitude Adjustment 12.09 Kernel Version 3.3.8
Ваша страна : Россия
Название провайдера : МТС + Yota
Добрый день!

Есть 2 модема:
от МТС (3G ZTE MF192+ определяется как /dev/ttyACM0)
от Yota (LTE LU150 определяется как /dev/eth1)

На даче очень плохая связь. И как только модем (и один и другой) теряет сигнал, то пересоединения не происходит.
То есть рестартануть модем посредством команд
ifdown wan && ifup wan
или
/etc/network restart
не представляется возможным. Только ребутом самого устройства.
Нужна помощь линуксоидов, так как моих знаний не хватает.
Прошу подсказать, какие есть ещё способы рестартовать модем (рестартовать процессы) не перезагружая устройство целиком?

Re: Как рестартовать модем под OpenWRT? (ZTE MF192+, Yota LU

Сообщение Cenobit » 01 июл 2014, 12:37

Источник

Автоматическая перезагрузка роутера на OpenWrt

Есть у меня роутер Wi-Fi TP-Link TL-WR842ND, я в него для большей функциональности, стабильности и прочего зарядил прошивку OpenWrt.

openwrt скрипт перезапуска интерфейса

Прошивка OpenWrt имеет массу преимуществ, хоть с ней устройство и работает намного стабильнее, но все-таки подвисания иногда случаются, особенно если клиентов около 5-10 устройств и работа без перезагрузок и через UPS. У меня было пару раз что не выдавались по DHCP IP адреса, лечилось перезагрузкой. Чтобы избежать разных «боков» я решил сделать автоматическую перезагрузку роутера раз в сутки. Можно конечно и реже, но чтобы без мороки мне кажется в самый раз.

Задача: автоматическая перезагрузка роутера через планировщик задач прошивки OpenWrt

Решение: Заходим в вебинтерфейс управления роутером — раздел System — Scheduled Tasks и создаем задачу — перезагружаться в 7:05 каждый день (предварительно не забудьте правильно указать свой часовой пояс и проверить время), время можно выбрать любое нужно (первая цифра минуты, второй столбец часы).

openwrt скрипт перезапуска интерфейса

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

Фразы: перезагрузка роутера по расписанию, перезапуск по cron, планировщик задач OpenWrt

Источник

Scheduling tasks

This article relies on the following:

Introduction

Web interface instructions

Set up cron jobs using web interface.

Command-line instructions

Set up cron jobs using command-line interface.

This will edit the configuraion /etc/crontabs/root file in vi editor.

Task specification

Each line is a separate task written in the specification:

Examples of time specification:

min
0-59
hour
0-23
day/month
1-31
month
1-12
day/week
0-6
Description
*/5****Every 5 minutes
12*/3***Every 3 hours at 12 minutes
5711151,6,12*At 11:57 Hrs on 15th of Jan, June & Dec
256**1-5At 6:25 AM every weekday (Mon-Fri)
004,12,26**At midnight on 4th, 12th and 26th of every month
5,109,1410*0,4At 9:05AM, 9:10AM, 2:05PM and 2:10PM every Sunday and Thursday

Table of shortcuts:

ShortcutEquivalentDescription
@yearly0 0 1 1 *Every year
@annually0 0 1 1 *Every year
@monthly0 0 1 * *Every month
@weekly0 0 * * 0Every week
@daily0 0 * * *Every day
@midnight0 0 * * *Every day
@hourly0 * * * *Every hour

Troubleshooting

You can read log messages with:

Not all messages are logged, to increase logging change cronloglevel option.

Extras

References

Periodic reboot

A simple workaround for some hard-to-solve problems (memory leak, performance degradation, …) is to reboot the router periodically, for instance every night.

However, this is not as simple as it seems, because the router usually does not have a real-time clock. This could lead to a never-ending loop of reboots.

In the boot process the clock is initially set by sysfixtime to the most recent timestamp of any file found in /etc. The most recent file is possibly a status file or config file, modified maybe 30 seconds before the reboot initiated by cron. So, in the boot process the clock gets set backwards a few seconds to that file’s timestamp. Then cron starts and notices a few seconds later that the required boot moment has again arrived and reboots again… At the end of the boot process ntpd starts, and it may also take a while before ntpd gets and sets the correct time, so cron may start the reboot in between.

One solution for cron is to use a delay and touch a file in /etc before reboot.

Periodic network restart

A simple solution for restart all your network (lan, wan and wifi) every 10 minutes is this:

Alarm clock

If you have DST you could write yourself a nice alarm clock. When DST starts in central Europe, clocks advance from 02:00 CET to 03:00 CEST on last Sunday in March. Six day before that, you could make your WoL wake you 10 minutes earlier. Later won’t work, you’ll be late. When DST ends in central Europe, clocks retreat from 03:00 CEST to 02:00 CET on last Sunday in October.

Self-registration in the wiki has been disabled.
If you want to contribute to the OpenWrt wiki, please post HERE in the forum or ask on IRC for access.

openwrt скрипт перезапуска интерфейса openwrt скрипт перезапуска интерфейса openwrt скрипт перезапуска интерфейса

Except where otherwise noted, content on this wiki is licensed under the following license:
CC Attribution-Share Alike 4.0 International

Источник

Включение чего угодно по HTTP без заморочек c OpenWRT

Ставим OpenWRT и настраиваем сетевой интерфейс

Для настройки статического IP в сегменте 192.168.1.x сделаем следующее:

Где 192.168.1.1 — адрес шлюза в нашей сети, а 192.168.1.222 — незанятый IP, который и будет присвоен нашей коробочке. Команда «uci changes» предоставляет возможность просмотреть все внесенные изменения. Я стараюсь не пренебрегать этой возможностью, так как устройство с неправильно настроенным интерфейсом, будучи недоступным извне, превращается в «зомби». На случай, если все таки неприятность произошла, в OpenWRT предусмотрен «режим восстановления»: при загрузке, как только кнопка «WPS» начнет мигать, зажмите ее — MR3020 загрузится с сетевыми параметрами по умолчанию.
Если в сети работает DHCP, можно задать автоматическую конфигурацию:

Вторая строчка необязательна, но может быть крайне полезна для поиска устройства. Можно будет обращаться к устройству не по IP, а по hostname, если сеть это поддерживает. Если хотите на 100% избежать поиска устройства в сети — применяйте статическую конфигурацию.
Полезно также запретить работу встроенного в наш TP-LINK dhcp-сервера:

Все, можно отключать нашу коробочку от компьютера (все равно ssh-сессия уже оборвалась после последней команды) и подключать ее к роутеру или свитчу.

Подключение клавиатуры и проверка управления светодиодами

Сайт H-WRT информирует нас, что для установки клавиатуры нужен лишь модуль kmod-usb-hid.
Установим его:

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

Облом! это совсем не то, что я ожидал. В чем же дело?
Схожий багрепорт быстро находится — разработчики объясняют такое поведение аппаратными ограничениями примененного чипсета. Похоже, находящийся «на борту» USB-хаб не жалует low-speed устройства. Хотя на этом моменте дух Дзен бесследно испарился — не будем опускать руки и попробуем решить проблему подключением клавиатуры через внешний USB-хаб:

Гораздо лучше. Пускай из-за этого пришлось написать «почти получилось» в начале статьи и «способ сервировки» на фото, но так наша «Generic USB Keyboard» опозналась. На клавиатуру всегда создается два «устройства», но даже и не спрашивайте, почему эта конкретная клавиатура назвалась еще и мышью… Так или иначе — мы готовы к «аппаратному хеллоуворлду» — включить светодиод.

Здесь должен торжественно зажечься светодиод «Caps Lock». Те, кого просто радует этот факт — могут переходить к следующему шагу. Те, кто не может двинуться дальше, не узнав, что за бредовое заклинание приведено выше — заглядывают в

На все, что происходит с клавиатурой (или другим устройством ввода) генерируется событие ввода, видимое в соответствующем ему файле (в нашем случае /dev/input/event0, но это частный случай, обусловленный тем, что других устройств ввода не подключено). Структура события определяется в заголовочном файле input.h:

Где type сигнализирует о типе элемента ввода (кнопка клавиатуры или перемещение мыши/джойстика и т.п ), code — код элемента, специфичный для каждого типа (например, для клавиатурного события EV_KEY здесь будет передан номер клавиши), а value — это, соответственно, какое воздействие и какой величины (для устройств, поддерживающих это) было произведено. Например, при нажатии клавиши «Q» на клавиатуре мы получим:

Скрипт

Чтобы автоматизировать управление светодиодами нам нужен скрипт. Для того, чтобы на следующем шаге мигать ими по HTTP — сразу положим его в папку /www/cgi-bin:

Теперь управлять светодиодами легко. Чтобы включить, скажем, светодиод «Scroll Lock», пишем:

Можно еще «мигнуть» (scroll_pulse). Как говорит уже многими здесь уважаемый Anant Agarwal: «I could do this all day. This is so much fun!». Но все же, перейдем к следующему этапу и создадим…

Веб-интерфейс

Какой же веб-интерфейс без веб-сервера? Проверим его наличие:

Если в выводе есть строка Status: install user installed (а это будет так, если вы используете Attitude Adjustment 12.09 beta) то сервер уже установлен. Иначе установим его и настроим его запуск:

Маленький нюанс — браузер, конечно, не имеет доступа к папке /var на сервере, поэтому предоставим ему возможность прочитать файл ledstate оттуда, куда он «дотягивается», с помощью симлинка:

Ссылку на скачивание этой странички, немного измененной, можно найти почти в самом в конце статьи. Теперь можно мигать светодиодами клавиатуры, тыкая в чекбоксы. Но, даже не учитывая того, что мигающим светодиодом сейчас никого не удивить, придется согласиться с тем, что это абсолютно бесполезно с практической точки зрения. Поэтому примемся за железо!

Схема

Что всегда стоит принимать в расчет — это элементарая электробезопасность. Даже тестовое устройство — особенно тестовое устройство, которое наверняка будет болтаться где-нибудь на проводках или будет забыто включенным среди прочего хлама на столе — надо защитить от случайного касания токоведущих частей, если оно предусматривает подключение к сети. Иначе по вам может потечь абсолютно реальный электрический ток.
Я собрал варианты 3 и 6 на макетке, получилось так:
openwrt скрипт перезапуска интерфейса
Несмотря на то, что это не более чем «proof of concept», мне захотелось хоть немного «навести красоту», пускай и в собственной извращенной трактовке. Такие уж нынче времена: внешний вид ценится не меньше, а порой и беспричинно больше функциональной нагрузки. Что и приводит нас к следующему этапу.

Косметика и демонстрация

Вторая и третья строчка «перепрятывают» файл веб-интерфейса роутера (если он установлен) в отдельную папку, теперь он доступен по адресу _адрес_роутера_/luci. А «главной» страничкой, доступной по адресу сервера, становится наша.
Ну и, напоследок — говорят, что картинка стоит тысячи слов. В этом видео почти тысяча картинок. Надеюсь, оно хоть как-то уравновесит мою многословность.

Источник

Openwrt скрипт перезапуска интерфейса

openwrt скрипт перезапуска интерфейса

Последняя версия: OpenWrt 21.02.0
В данной теме необходимо размещать изображения и логи под спойлеромopenwrt скрипт перезапуска интерфейса

OpenWrt — встраиваемая операционная система, основанная на ядре Linux, и предназначенная, в первую очередь, для домашних маршрутизаторов. Основные компоненты включают в себя ядро Linux, util-linux, uClibc или musl и BusyBox. Исходный код открытый. Распространяется под лицензией GNU GPL

Проект LEDE разработан на основе линукса, встраиваемый мета-дистрибутив базирующийся на OpenWRT, ориентирован на широкий спектр беспроводных маршрутизаторов SOHO и не-сетевых устройств. “Linux Embedded Development Environment” (Встраиваемая среда разработки линукс).
LEDE отвернулся от материнского проекта в мае 2016 года, с целью продолжить разрабатывать лучшее программное обеспечение в открытой модели управления и поощрение новых разработчиков внести свой вклад и усилия в области развития.

openwrt скрипт перезапуска интерфейса

Настройка TFTP-сервера tftpd-hpa

Установим пакет tftpd-hpa:

содержащий настройки сервера. Приведём его к следующему виду:

В настройках указаны дополнительные опции:
create разрешает серверу создавать новые файлы,
ipv4 предписывает ему ожидать подключений только на адресах IPv4,
umask предписывает сбрасывать бит записи для группы и все биты доступа для остальных пользователей,
permissive предписывает не проводить никаких проверок прав доступа к файлу сверх производимых операционной системой.
Создадим каталог для tftp-сервера, дадим серверу доступ к каталогу:

sudo mkdir /var/tftp

sudo chown tftp:tftp /var/tftp

Можно также поменять домашний каталог пользователя tftp в файле /etc/passwd на /var/tftp.

Теперь просто прописываем нужные нам ip адреса через gnome network manager и все.

Осталось перезапустить демона, чтобы он начал работу с новым каталогом:

Где найти прошивку для TP-Link TL-WR941N/ND v3.1

openwrt скрипт перезапуска интерфейса

Убедитесь что в /etc/config/igmpproxy

config igmpproxy
option quickleave 1
# option verbose 2

config phyint
option network wan
option zone wan
option direction upstream
list altnet 192.168.0.0/16
list altnet 172.16.0.0/12
list altnet 10.0.0.0/8

config phyint
option network lan
option zone lan
option direction downstream

А в /etc/config/firewall

config rule
option name ‘Allow-IPTV-IGMPPROXY’
option src ‘wan’
option proto ‘udp’
option dest_ip ‘224.0.0.0/4’
option target ‘ACCEPT’
option family ‘ipv4’
option dest ‘lan’

config rule
option name ‘Allow-IGMP’
option src ‘wan’
option proto ‘igmp’
option family ‘ipv4’
option target ‘ACCEPT’

Еще проблема может быть из-из появившейся поддержки IGMP snooping.

В разных темах замечал что люди интересовались как выключать wifi в OpenWrt в заданное время, собственно вот небольшая инструкция.
Есть два варианта.

openwrt скрипт перезапуска интерфейса

openwrt скрипт перезапуска интерфейса

openwrt скрипт перезапуска интерфейса

openwrt скрипт перезапуска интерфейса

openwrt скрипт перезапуска интерфейса

1) Подготовить USB-флешку. На флешке два раздела. Первый на 1 ГБ с файловой системой ext4. Второй — на всё оставшееся пространство тоже с файловой системой ext4.

2) Воткнуть флешку в роутер. Обновить список пакетов и установить необходимые:

3) В LuCi появится новый пункт меню, связанный с монтированием разделов накопителя (System → Mount Points). Там нужно нажать кнопку Generate Config, которая обнаружит разделы на подключённом накопителе — в Mount Points появятся разделы /dev/sda1 (1024 MB) и /dev/sda2

4) Нажать Edit возле sda1, включить Enable this mount, в качестве Mount point выбрать /overlay. Точно так же включить автомонтирование sda2 в качестве /data
В /data можно закачивать торренты и т. п. Это просто раздел под ваши нужды. У меня туда статистика использования трафика собирается, например.

5) Скопировать содержимое /overlay на флешку. В терминале:

6) Перезагрузить роутер (если всё получилось, то на странице Software должно прибавиться количество свободного места)

В случае проблем (допустим, накосячили с настройками так, что потеряли доступ к роутеру) вы всегда можете выключить роутер, воткнуть флешку в компьютер, поправить настройки.

Для любителей микрооптимизации: во-первых, читать это
Если желание оптимизировать ещё не пропало, можно заменить ext4 на F2FS (соответственно вместо kmod-fs-ext4 ставить kmod-fs-f2fs)
Если к использованию F2FS вы не готовы, а желание сэкономить ресурс флешки сильнее страха приключений на пятую точку, то:
— в п.1 после создания на флешке разделов выполнить в терминале:

Предварительные требования:
— прошита OpenWrt 18.06
— установлен веб-интерфейс LuCi
— роутер имеет доступ в Интернет

1) Обновить список пакетов (System → Software → Update lists), установить OpenVPN:

Впрочем, будет работать и openvpn-openssl. Если вы используете что-то более ранее, чем OpenWrt 18.06, то жизненно необходимо установить openvpn-openssl вместо openvpn-mbedtls.

Отредактировать этот файл, дописав куда-нибудь в его середину строку:

config openvpn antizapret

option enabled 1
option config /etc/openvpn/antizapret-tcp.ovpn

(опять же, способ редактирования конфига оставлен на усмотрение читателя: одному удобно через vi, другому через тот же WinSCP). antizapret-tcp.ovpn — это файл, который вы на прошлом шаге копировали. Если его название изменилось, то, соответственно, исправьте его и тут в конфиге.

4) Включить и запустить VPN (System → Startup). Проверить, что всё запустилось корректно. В Status → System Log будет примерно следующее:

5) Создать новый интерфейс (Network → Interfaces → Add new interface):
Name of the new interface: antizapret
Protocol of the new interface: unmanaged
Cover the following interface: Ethernet Adapter: «tun0»
Advanced settings → Bring up on boot
Firewall Settings → Create: → antizapret
Save and Apply

6) Настроить зону файерволла antizapret (Network → Firewall → antizapret → Edit):
Input: reject
Включить Masquerading и MSS clamping
Allow forward from source zones: lan
Save and Apply

7) Исправить /etc/config/dhcp:
значение

8) Указать DNS-сервер, который будет использоваться, если подключение к VPN-серверу разорвано:
в настройках обоих интерфейсов WAN и WAN6 (Network → Interfaces) отключить Use DNS servers advertised by peer на вкладке Advanced settings
в настройках интерфейса WAN в поле Use custom DNS servers вписать адрес 77.88.8.8
Save and Apply

На сообщения «WARNING: this configuration may cache passwords in memory» в журнале внимания обращать не нужно, это неактуально, потому что паролей у нас нет. Если напрягает, можете добавить в файл конфигурации строчку

Плюсы:
— через VPN идёт лишь трафик до заблокированных доменов, остальной трафик идёт «напрямую» (нет потери скорости, у вас не меняется IP)
— следствие из предыдущего: трафик небольшой и поддержание бесплатного сервиса не бьёт по карману владельца

Предварительные требования:
— прошита OpenWrt 18.06
— установлен веб-интерфейс LuCi
— роутер имеет доступ в Интернет

1) Обновить список пакетов (System → Software → Update lists), установить OpenVPN, собранный с поддержкой mbed TLS:

Впрочем, будет работать и openvpn-openssl. Если вы используете что-то более ранее, чем OpenWrt 18.06, то жизненно необходимо установить openvpn-openssl вместо openvpn-mbedtls.

3) Заменить содержимое /etc/config/openvpn на:

config openvpn zaborona

option enabled 1
option config /etc/openvpn/zaborona-help.ovpn

(опять же, способ редактирования конфига оставлен на усмотрение читателя: одному удобно через vi, другому через тот же WinSCP). zaborona-help.ovpn — это файл, который вы на прошлом шаге копировали. Если его название изменилось, то, соответственно, исправьте его и тут в конфиге.

4) Включить и запустить VPN (System → Startup). Проверить, что всё запустилось корректно. В Status → System Log будет примерно следующее:

5) Создать новый интерфейс (Network → Interfaces → Add new interface):
Name of the new interface: zaborona
Protocol of the new interface: unmanaged
Cover the following interface: Ethernet Adapter: «tun0»
Advanced settings → Bring up on boot
Firewall Settings → Create: → zaborona
Save and Apply

6) Настроить зону файерволла zaborona (Network → Firewall → zaborona → Edit):
Input: reject
Включить Masquerading и MSS clamping
Allow forward from source zones: lan
Save and Apply

7) Если у вас пропал доступ в Интернет после этого пункта, не делайте его. В настройках интерфейса «WAN» (Network → Interfaces) отключить Use DNS servers advertised by peer на вкладке Advanced settings. В Use custom DNS servers вписать адрес 74.82.42.42. Нажать рядом «+», во вторую появившуюся строку вписать адрес 77.88.8.8. Save and Apply.

В настройках интерфейса «WAN6» (Network → Interfaces) отключить Use DNS servers advertised by peer на вкладке Advanced settings. В Use custom DNS servers вписать адрес 2001:4860:4860::8888. Нажать рядом «+», во вторую появившуюся строку вписать адрес 2001:4860:4860::8844. Save and Apply.

На сообщения «WARNING: this configuration may cache passwords in memory» в журнале внимания обращать не нужно, это неактуально, потому что паролей у нас нет. Если напрягает, можете добавить в файл конфигурации строчку

Плюсы:
— через VPN идёт лишь трафик до заблокированных доменов, остальной трафик идёт «напрямую» (нет потери скорости, у вас не меняется IP)
— следствие из предыдущего: трафик небольшой и поддержание бесплатного сервиса не бьёт по карману владельца

а также отключить DNS over HTTPS в сетевых настройках браузера.

Не забудьте перезапустить dnsmasq:

1) задать пароль администратора (через LuCI)

2) в разделе System → Administration включить Dropbear на интерфейсе «lan» (если включить на «wan», то он будет доступен всему интернету (если у вас белый IP), вскоре его начнут подбирать трудолюбивые китайцы. Поэтому, не вешайте на «wan»).

3) с помощью WinSCP подключиться со следующими параметрами:
Host name: 192.168.1.1
Login: root
Password: пароль_который_вы_установили_на_шаге_1

Получаете обычный 2-панельный файловый менеджер, с помощью которого можно перетаскивать файлы с ПК на роутер и обратно, а также править файлы на роутере).

1) задать пароль администратора (через LuCI)

2) в разделе System → Administration включить Dropbear на интерфейсе «lan» (если включить на «wan», то он будет доступен всему интернету (если у вас белый IP), вскоре его начнут подбирать трудолюбивые китайцы. Поэтому, не вешайте на «wan»).

3) с помощью SFTP-плагина для TC/DC (этот плагин, вопреки своему названию, умеет работать и по SCP) подключиться со следующими параметрами:
Connect to: 192.168.1.1
User name: root
Password: пароль_который_вы_установили_на_шаге_1

Если вы создаёте или редактируете файл в Windows, а затем копируете его на роутер, то перед копированием убедитесь, что переносы строк в файле UNIX-овские, а не Windows-овские! Для этого достаточно открыть файл в Notepad++ и в статусной строке внизу справа найти «Unix (LF)». Если там «Windows (CR LF)», то щёлкните правой кнопкой по надписи, выберите «Unix (LF)» и сохраните файл. Всё это нужно повторять после каждого редактирования, поэтому сначала редактируете как душе угодно, а затем уже проверяете переносы и заливаете на роутер.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *