После установки OpenWrt на точку доступа/роутер веб-интерфейс LuCI может быть отключен для экономии свободного места и/или иных разумных целях. Настроить девайс можно через telnet/ssh, в случае корректной настройки в дальнейшем, кроме редкого нажатия кнопки reboot, обычно никаких мероприятий не требуется.
Для начала необходимо задать пароль системному пользователю через telnet с помощью команды passwd для включения ssh-сервера и маломальской защиты от несанкционированного доступа к настройке устройства.
Дальнейшую настройку правильнее всего осуществлять с применением функционала UCI (Unified Configuration Interface — англ. Центральный Конфигурационный Интерфейс).
Вся работа UCI сводится к редактированию файлов, расположенных в каталоге /etc/config/. Поэтому все команды uci можно свести к примитивной работе с текстовыми файлами с помощью джентельменского набора awk, cat, grep и редактора vi. Но такой подход является избыточным и мало эффективным по сравнению с предложенным разработчиками функционалом. Посудите сами: для получения детальной информации о параметрах текущего WAN соединении необходимо написать сложный парсер вывода команды ifconfig:
$ ifconfig br-lan br-lan Link encap:Ethernet HWaddr A0:F3:C1:F6:EF:69 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:52135115 errors:0 dropped:419825 overruns:0 frame:0 TX packets:65080505 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:32804794514 (30.5 GiB) TX bytes:69502191623 (64.7 GiB) $ ifconfig br-lan|grep "inet addr:"|cut -f 2 -d ':'|cut -f 1 -d ' ' 192.168.1.1
Другое дело — воспользоваться представленным в виде элементов массива выводом uci, где для получения любого параметра необходимо просто явно его указать с оператором get:
$ uci -P/var/state show network.wan network.lan=interface network.lan.type=bridge network.lan.proto=static network.lan.ipaddr=192.168.1.1 network.lan.netmask=255.255.255.0 network.lan.up=1 network.lan.connect_time=200818 network.lan.device=eth0 network.lan.ifname=br-lan $ uci -P/var/state get network.lan.ipaddr 192.168.1.1
Список команд и опций uci доступен по вызову этой утилиты в консоли без параметров:
Usage: uci [<options>] <command> [<arguments>] Commands: batch export [<config>] import [<config>] changes [<config>] commit [<config>] add <config> <section-type> add_list <config>.<section>.<option>=<string> show [<config>[.<section>[.<option>]]] get <config>.<section>[.<option>] set <config>.<section>[.<option>]=<value> delete <config>[.<section[.<option>]] rename <config>.<section>[.<option>]=<name> revert <config>[.<section>[.<option>]] Options: -c <path> установка пути поиска конфигурационных файлов (по умолчанию: /etc/config) -d <str> установка разделителя для значений списка в uci show -f <file> использовать для ввода информации содержимое файла <file> вместо стандартного потока stdin -m при импорте, объединение данных в уже существующий пакет -n имя не именованной секции при экспорте (по умолчанию) -N не присваивать имени не именованным секциям -p <path> добавить путь поиска файлов измененной конфигурации -P <path> добавить путь поиска файлов измененной конфигурации и использовать его по умолчанию -q тихий режим (не печатаются сообщения об ошибках) -s строгий режим (останавливаться на ошибках парсинга, используется по умолчанию) -S отключить строгий режим -X не использовать расширенный синтаксис для 'show'
Команда | Цель | Описание |
---|---|---|
commit |
[<config>] |
Сохраняет изменения данного конфигурационного файла, либо, если он не указан, всех конфигурационных файлов в файловую систему. Все команды «uci set», «uci add», «uci rename» и «uci delete» сохраняют результаты во временное хранилище и сохраняются сразу скопом во флэш-память с помощью «uci commit». Это не нужно делать после редактирования конфигурационного файла в текстовом редакторе, но необходимо для скриптов, GUI и других программ работающих непосредственно с UCI файлами. |
batch |
— | Запускает многострочный UCI скрипт, который обычно выполнен в форме here-документа). |
export |
[<config>] |
Экспорт конфигурации в машино-читаемый формат. Используется внутренне для преобразования конфигурационных файлов в shell-скрипты. |
import |
[<config>] |
Импорт конфигурационных файлов в синтаксисе UCI. |
changes |
[<config>] |
Список зарезервированных (пер. но еще не сохраненных) изменений данного конфигурационного файла или, если файл не указан, всех конфигурационных файлов. |
add |
<config> <section-type> |
Добавить анонимную секцию типа section-type в данную конфигурацию. |
add_list |
<config>.<section>.<option>=<string> |
Добавить данную строку в существующий список опций. |
show |
[<config>[.<section>[.<option>]]] |
Отобразить данную опцию, секцию или конфигурацию в компактном виде. |
get |
<config>.<section>[.<option>] |
Получить значение данной опции или тип данной секции. |
set |
<config>.<section>[.<option>]=<value> |
Установить значение данной опции, или добавить новую секцию с типом равным указанному значению. |
delete |
<config>[.<section[.<option>]] |
Удалить данную секцию или опцию. |
rename |
<config>.<section>[.<option>]=<name> |
Переименовать данную секцию или опцию. |
revert |
<config>[.<section>[.<option>]] |
Отменить изменения данной опции, секции или конфигурационного файла. |
После конфигурирования необходимо сделать uci commit для сохранения изменений и перезапустить соответствующий сервис. Список сервисов (с соответствующими файлами папки /etc/config) приведен ниже:
Файл | Описание |
---|---|
Основные | |
/etc/config/dhcp | Конфигурация Dnsmasq и установки DHCP |
/etc/config/dropbear | Опции SSH сервера |
/etc/config/firewall | NAT, пакетная фильтрация, перенаправление портов, и т.д. |
/etc/config/network | Конфигурация коммутатора, интерфейсов и маршрутизатора |
/etc/config/system | Доп. системные настройки |
/etc/config/timeserver | Список серверов времени для rdate |
/etc/config/wireless | Настройки беспроводного подключения и сети wifi |
IPv6 | |
/etc/config/ahcpd | Ad-Hoc Configuration Protocol (AHCP) server and forwarder configuration |
/etc/config/aiccu | AICCU client configuration |
/etc/config/dhcp6c | WIDE-DHCPv6 client |
/etc/config/dhcp6s | WIDE-DHCPv6 server |
/etc/config/gw6c | GW6c client configuration |
/etc/config/radvd | Router Advertisement (radvd) configuration |
Другое | |
/etc/config/bbstored | Конфигурация сервера резервного копирования BoxBackup |
/etc/config/etherwake | Wake-on-Lan: etherwake |
/etc/config/fstab | Точки монтирования и раздел подкачки |
/etc/config/hd-idle | Another idle-daemon for attached hard drives |
/etc/config/httpd | Установки веб-серввера (Busybox httpd, устарело) |
/etc/config/luci | Основные настройки LuCI |
/etc/config/luci_statistics | Настройка пакета статистики |
/etc/config/mini_snmpd | Настройки SNMP демона mini_snmpd |
/etc/config/minidlna | Настройки MiniDLNA |
/etc/config/mjpg-streamer | Настройки потокового вещания для Linux-UVC совместимых веб-камер |
/etc/config/mountd | Настройки демона автомонтирования OpenWrt |
/etc/config/mroute | Конфигурационные файлы для маршрутов мульти-WAN |
/etc/config/multiwan | Конфигурация простого мульти-WAN |
/etc/config/ntpclient | Настройки NTP клиента синхронизации времени |
/etc/config/p910nd | Настройки для без-буферного демона печати p910nd.server |
/etc/config/pure-ftpd | Конфигурация сервера Pure-FTPd |
/etc/config/qos | Реализация QoS для upload |
/etc/config/racoon | Настройки сервиса IPsec racoon |
/etc/config/samba | Настройки сервера SAMBA для шаринга файлов и принтеров сетей Microsoft |
/etc/config/snmpd | Настройки SNMP демона SNMPd |
/etc/config/sshtunnel | Установки пакета sshtunnel |
/etc/config/stund | Настройки сервера STUN |
/etc/config/transmission | Настройки BitTorrent |
/etc/config/uhttpd | Настройки веб-сервера (uHTTPd) |
/etc/config/upnpd | Настройки UPnP сервера miniupnpd |
/etc/config/users | База данных пользователей для различных сервисов |
/etc/config/ushare | Настройки сервера UPnP uShare |
/etc/config/vblade | vblade userspace AOE target |
/etc/config/vnstat | vnstat downloader settings |
/etc/config/wifitoggle | Скрипт для вкл. WiFi кнопкой |
/etc/config/wol | Wake-on-Lan: wol |
/etc/config/wshaper | wondershaper qos script settings |
/etc/config/znc | ZNC bouncer configuration |
Примеры использования UCI
Изменение системного имени
По умолчанию системное имя (hostname) — OpenWrt, его можно изменить, для чего необходимо внести исправление в файл /etc/config/system. С UCI эта процедура сводится к следующему:
uci set system.@system[0].hostname='MyRouter' uci commit system echo $(uci get system.@system[0].hostname) > /proc/sys/kernel/hostname
Теперь роутер будет называться MyRouter.
Изменение часового пояса
uci set system.@system[0].zonename='Asia/Novosibirsk' uci set system.@system[0].timezone='NOVT-7' uci commit system timezone=$(uci get system.@system[0].timezone); [ -z "$timezone" ] && timezone=UTC; echo "$timezone" > /tmp/TZ
Примерный список временных зон можно найти в wiki.
Ссылки: