Готовые, собранные приложения для ZyXEL Keenetic устанавливаются с помощью системы opkg. Приведем основные команды системы opkg:
1. opkg list
- команда выдает список пакетов, которые можно установить в настоящий момент.
opkg list busybox - 1.17.3-2 - The Swiss Army Knife of embedded Linux. It slices, it dices, it makes Julian Fries. e2fsprogs - 1.41.12-3 - This package contains essential ext2 filesystem utilities which consists of e2fsck, mke2fs, debugfs, dumpe2fs, tune2fs, and most of the other core ext2 filesystem utilities. file - 5.05-1 - utility gawk - 3.1.8-1 - GNU version of AWK. glib2 - 2.22.2-1 - The GLib library of C routines htop - 0.9-1 - Htop is an ncursed-based process viewer similar to top, but it allows to scroll the list vertically and horizontally to see all processes and their full command lines. ...
2. opkg list-installed
- команда выдает список уже установленных пакетов
opkg list-installed busybox - 1.17.3-2 file - 5.05-1 glib2 - 2.22.2-1 htop - 0.9-1 ...
3. opkg update
- команда скачивает и обновляет список пакетов, которые могут быть установлены. Рекомендуется всегда выполнять эту команду перед установкой пакета и при других «манипуляциях» с пакетами.
4. opkg upgrade
- команда обновляет установленные пакеты, если есть обновления. Если обновляется запущенная служба, то следует руками ее перезапустить или перезагрузить маршрутизатор.
5. opkg install <имя пакета>
- команда устанавливает пакет включая пакеты, от которых устанавливаемый пакет зависит. Например opkg install mc
установит Midnight Commander.
6. opkg remove <имя пакета>
- команда удалит установленный ранее пакет.
7. Полный список подкоманд и опций можно получить, запустив opkg без параметров.
Некоторые из собранных для Keenetic пакетов являются сервисами или демонами. Для автоматического запуска сервисов используются скрипты удовлетворяющие маске S??*
, расположенные в папке /media/DISK_A1/system/etc/init.d
. Эти скрипты запускаются в алфавитном порядке автоматически при монтировании usb носителя или включении роутера. Останавливаются скриппты в обратном порядке при размонтировании usb носителя. После установки, описанной в разделе устанавливаем систему opkg, в этой папке находятся скрипты S01swap
, S10dropbear
и заготовка K02cron
, предназначенная для запуска планировщика cron. Если Вы считаете, что Вам не нужен swap файл, переименуйте файл S01swap
в K01swap
. При установке некоторых пакетов в папке init.d
появятся дополнительные скрипты K??*
или S??*
.
Не следует относится к этим скриптам, как к окончательным и устоявшимся. Часто их можно и нужно редактировать, дорабатывать под себя. После таких доработок переименуйте окончательный вариант скрипта K??*
в S??*
для автоматического запуска.
Обычно к установленным демонам (сервисам) нужно дать доступ из сети интернет. Для этого потребуется создать дополнительные правила проброса портов, используя установленный в Keenetic файрвол iptables
. Правила проброса могут быть расположены непосредственно в скриптах запуска сервисов S??*
и/или в скриптах, расположенных в папке /media/DISK_A1/system/etc/firewall.d
.
При разрыве подключения к сети интернет правила iptables
сбрасываются и создаются заново при восстановлении подключения. Если правило iptables
находится в скрипте S??*
, то заново оно не будет создано. Поэтому правила правильнее размещать в скрипте в папке firewall.d
. Скрипты из папки firewall.d
будут вызваны при восстановлении соединения.
Учтите, что скрипты в папке firewall.d
не будут выполнены, когда Вы подключаете носитель к USB (при этом выполнятся скрипты S??*
из папки init.d
), а только в момент подключения к сети интернет.
Очень часто нужно, чтобы установленные на кинетике программы взаимодействовали между собой по сети. Для этого необходимо выполнение правила
iptables -I INPUT -i lo -j ACCEPT
Пример файла /media/DISK_A1/system/etc/firewall.d/fw.sh
#!/bin/sh # Разрешаем внутрисетевой обмен iptables -I INPUT -i lo -j ACCEPT # Разрешаем доступ по ssh из интернет на порт tcp 22 iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Файл fw.sh
должен иметь атрибут исполнения и заканчиваться символом конец строки.
Поскольку некоторые сервисы Вы наверняка будете перезапускать вручную, проводя эксперименты по изменению настроек, правила iptables имеет смысл дублировать в fw.sh
. Так, например, для lighttpd
запись в S50lighttpd
(если $PORT_F
равен 80):
iptables -A INPUT -p tcp --dport $PORT_F -j ACCEPT
требует добавления записи в fw.sh
:
# Разрешаем доступ по http из интернет на порт tcp 80 iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Если этого не сделать, высока вероятность того, что Ваш сервер lighttpd
окажется недоступен из интернет при медленном установлении соединения с провайдером во время старта или после разрыва и последующего восстановления соединения.