Rpcd openwrt что это

Что можно удолить из openwrt?

Имеется роутер tp-link tl-wr842nd. Собственно сабж, список пакетов под катом.

base-files
busybox
dnsmasq
dropbear
e2fsprogs
firewall
fstools
hostapd-common
iptables
iw
jshn
jsonfilter
kernel
kmod-ath
kmod-ath9k
kmod-ath9k-common
kmod-cfg80211
kmod-crypto-aes
kmod-crypto-arc4
kmod-crypto-core
kmod-crypto-hash
kmod-ipt-conntrack
kmod-ipt-core
kmod-ipt-nat
kmod-ledtrig-usbdev
kmod-lib-crc-ccitt
kmod-lib-crc16
kmod-mac80211
kmod-nf-conntrack
kmod-nf-ipt
kmod-nf-nat
kmod-nf-nathelper
kmod-nls-base
kmod-ppp
kmod-pppoe
kmod-pppox
kmod-sched
kmod-sched-core
kmod-scsi-core
kmod-slhc
libblobmsg-json
libc
libext2fs
libgcc
libip4tc
libiwinfo
libiwinfo-lua
libjson-c
libjson-script
liblua
libnl-tiny
libopenssl
libpcre
libpolarssl
libpthread
librt
libsodium
libubox
libubus
libubus-lua
libuci
libuci-lua
libustream-polarssl
libuuid
libxtables
lua
luci
luci-app-firewall
luci-app-upnp
luci-app-wshaper
luci-base
luci-lib-ip
luci-lib-nixio
luci-mod-admin-full
luci-proto-ppp
luci-theme-bootstrap
mtd
netifd
odhcpd
opkg
ppp
ppp-mod-pppoe
procd
px5g
rpcd
swconfig
tc
uboot-envtools
ubox
ubus
ubusd
uci
uhttpd
uhttpd-mod-ubus
usign
wpad-mini
zlib

Также есть софт из этого списка, поясню что для его:
1)

block-mount
kmod-fs-ext4
kmod-fs-f2fs
kmod-usb-core
kmod-usb-ohci
kmod-usb-storage
kmod-usb-storage-extras
kmod-usb2

5) для работы opkg по https:
openssl-util
wget
ca-certificates

И так вопрос: 1) что можно удалить? Я вот думаю может удалить uci, jshn, jsonfilter, e2fsprogs, kmod-pppox (т.к. в моём замкадье у всех провайдеров в городе только pppoe).

Источник

Rpcd openwrt что это

Rpcd openwrt что это. Смотреть фото Rpcd openwrt что это. Смотреть картинку Rpcd openwrt что это. Картинка про Rpcd openwrt что это. Фото Rpcd openwrt что это

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

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

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

Rpcd openwrt что это. Смотреть фото Rpcd openwrt что это. Смотреть картинку Rpcd openwrt что это. Картинка про Rpcd openwrt что это. Фото Rpcd 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

Rpcd openwrt что это. Смотреть фото Rpcd openwrt что это. Смотреть картинку Rpcd openwrt что это. Картинка про Rpcd openwrt что это. Фото Rpcd 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 в заданное время, собственно вот небольшая инструкция.
Есть два варианта.

Rpcd openwrt что это. Смотреть фото Rpcd openwrt что это. Смотреть картинку Rpcd openwrt что это. Картинка про Rpcd openwrt что это. Фото Rpcd openwrt что это

Rpcd openwrt что это. Смотреть фото Rpcd openwrt что это. Смотреть картинку Rpcd openwrt что это. Картинка про Rpcd openwrt что это. Фото Rpcd openwrt что это

Rpcd openwrt что это. Смотреть фото Rpcd openwrt что это. Смотреть картинку Rpcd openwrt что это. Картинка про Rpcd openwrt что это. Фото Rpcd openwrt что это

Rpcd openwrt что это. Смотреть фото Rpcd openwrt что это. Смотреть картинку Rpcd openwrt что это. Картинка про Rpcd openwrt что это. Фото Rpcd openwrt что это

Rpcd openwrt что это. Смотреть фото Rpcd openwrt что это. Смотреть картинку Rpcd openwrt что это. Картинка про Rpcd openwrt что это. Фото Rpcd 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)» и сохраните файл. Всё это нужно повторять после каждого редактирования, поэтому сначала редактируете как душе угодно, а затем уже проверяете переносы и заливаете на роутер.

Источник

ubus (OpenWrt micro bus architecture)

To provide Inter-process communication between various daemons and applications in OpenWrt a project called ubus has been developed. It consists of several parts including daemon, library and some extra helpers.

The heart of this project is the ubusd daemon. It provides an interface for other daemons to register themselves as well as sending messages. For those curious, this interface is implemented using Unix sockets and it uses TLV (type-length-value) messages.

To simplify development of software using ubus (connecting to it) a library called libubus has been created.

Every daemon registers a set of paths under a specific namespace. Every path can provide multiple procedures with any number of arguments. Procedures can reply with a message.

The code is published under LGPL 2.1 license and can be found via git at https://git.openwrt.org/project/ubus.git.

Command-line ubus tool

The ubus command line tool allows to interact with the ubusd server (with all currently registered services). It’s useful for investigating/debugging registered namespaces as well as writing shell scripts. For calling procedures with parameters and returning responses it uses the user-friendly JSON format. Below is an explanation of its commands.

Help Output

To find out which services are currently running on the bus simply use the ubus list command. This will show a complete list of all namespaces registered with the RPC server:

You can filter the list by specifying a service path:

Calls a given procedure within a given namespace and optionally pass arguments to it:

The arguments must be a valid JSON string, with keys and values set according to the function signature:

listen

Setup a listening socket and observe incoming events:

Send an event notification:

Access to ubus over HTTP

There is an uhttpd plugin called uhttpd-mod-ubus that allows ubus calls using HTTP protocol. For example this is used in LuCI2. Requests have to be send to the /ubus URL (unless changed by ubus_prefix option) using POST method. This interface uses jsonrpc v2.0 There are a few steps that you will need to understand.

If uhttpd-mod-ubus is installed, uhttpd automatically configures it and enables it, by default at /ubus, but you can configure this Also if you want to use the /ubus directly from web client you need to specify ubus_cors=1 option.

If you are using Nginx then you may try nginx-ubus-module

See the Postman collection with some examples of calling UBUS over HTTP

While logged into via ssh, you have direct, full access to ubus. When you’re accessing the /ubus url in uhttpd however, uhttpd first queries whether your call is allowed, and whoever is providing the ubus session.* namespace is in charge of implementing the access control:

Placing this file in /usr/share/rpcd/acl.d/superuser.json will help you move forward to the next steps.

Authentication

Session management

To login and receive a session id:

The session id 00000000000000000000000000000000 (32 zeros) is a special null-session which only has the rights from the unauthenticated access group, only enabling the session.login ubus call. A session has a timeout that can be specified when you login, otherwise it defaults to 5 minutes.

If you ever receive a response like <“jsonrpc”:“2.0”,“id”:1,“result”:[6]>, that is a valid jsonrpc response, 6 is the ubus code for UBUS_STATUS_PERMISSION_DENIED (you’ll get this if you try and login before setting up the superuser file, or any file that gives you more rights than just being allowed to attempt logins).

To list all active sessions, try ubus call session list

The session timeout is automatically reset on every use. There are plans to use these sessions even for luci1, but at present, if you use this interface in a luci1 environment, you’ll need to manage sessions yourself.

Actually making calls

The RPC-JSON container format is:

The “id” key is merely echo’ed by the server, so it needs not be strictly unique, it’s mainly intended for client software to easily correlate responses to previously made requests. Its type is either a string or a number, so it can be an UUID, sha1 hash, md5 sum, sequence counter, unix timestamp, etc.

An example request to read a file /etc/board.json which contains device info would be:

Here the first param c1ed6c7b025d0caca723a816fa61b668 is the ubus_rpc_session received during the login call. If you received a response like <“jsonrpc”:“2.0”,“id”:1,“error”:<“code”:-32002,“message”:“Access denied”>> then probably your session token was expired and you need to request a new one.

To beautify output you can use jq utility:

In the response JSON document in the result[1].data field contains escaped JSON with the model and network objects. To fetch the concrete model name you can parse the response with the jq program:

As you can see in the example the router model is in fact just a OpenWrt runned on virtual machine in VirtualBox.

Lua module for ubus

Optional arguments to connect() are a path to use for sockets (pass nil to use the default) and a per call timeout value (in milliseconds)

Namespaces & Procedures

Path only contains the first context. E.g. network for network.interface.wan

pathDescriptionPackage
dhcpdhcp serverodhcpd
filefilerpcd
hostapdacesspointswpad/hostapd
iwinfowireless informationsrpcd iwinfo
logloggingprocd
mdnsmdns avahi replacementmdnsd
networknetworknetifd
serviceinit/serviceprocd
sessionSession managementrpcd
systemsystem miscprocd
uciUnified Configuration Interfacerpcd

procd

ubus system

Package: procd

ProcedureSignatureDescription
board<>returns board specific information like model and distribution code name, revision
info<>returns real-time information about the system. “uptime”: 20756, “localtime”: 1444142264, “load”: [ 7264, 3040, 3520 ], “memory”: < “total”: 29601792, “free”: 7344128, “shared”: 458752, “buffered”: 2166784 >, “swap”:
upgrade<>*TODO*
watchdogcontrols the watchdog. *ubus call system watchdog ‘< “stop”: true“>‘* only stops the thread triggering the watchdog. The watchdog is still counting down unless a second process is triggering the watchdog unless you enable ‘magicclose’, then you can manually tickle ‘/dev/watchdog’.
signalsend a signal to a process. See man kill
nandupgrade*TODO*

The values in load are the load averages over 1, 5, and 15 minutes. to get to the familiar values reported by uptime divide these numbers by 65536.0 and round to 2 decimals.

There is a detailed blog post showing how to use, configure and manually take control over hardware watchdog with ubus commands.

Examples

See all methods of system

You can now call a remote method and receive a reply. A reply may be a simple integer return code or a more complete reply. Internally the bus uses a blob format, the CLI conveniently converts this to JSON.

You can call a method and pass it some parameters by simply appending a JSON structure to the CLI command.

ubus service

Package: procd

service used by init scripts as well to register new services

Источник

uBus IPC/RPC System

uBus is the interconnect system used by most services running on a OpenWrt setup. Services can connect to the bus and provide methods that can be called by other services or clients.

Reference documentation for ubus

Path only contains the first context. E.g. network for network.interface.wan

pathDescriptionPackage
dhcpdhcp serverodhcpd
filefilerpcd
hostapdacesspointswpad/hostapd
iwinfowireless informationsrpcd iwinfo
logloggingprocd
mdnsmdns avahi replacementmdnsd
networknetworknetifd
serviceinit/serviceprocd
sessionSession managementrpcd
systemsystem miscprocd
uciUnified Configuration Interfacerpcd

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.

Rpcd openwrt что это. Смотреть фото Rpcd openwrt что это. Смотреть картинку Rpcd openwrt что это. Картинка про Rpcd openwrt что это. Фото Rpcd openwrt что это Rpcd openwrt что это. Смотреть фото Rpcd openwrt что это. Смотреть картинку Rpcd openwrt что это. Картинка про Rpcd openwrt что это. Фото Rpcd openwrt что это Rpcd openwrt что это. Смотреть фото Rpcd openwrt что это. Смотреть картинку Rpcd openwrt что это. Картинка про Rpcd openwrt что это. Фото Rpcd openwrt что это

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

Источник

rpcd: OpenWrt ubus RPC daemon for backend server

The code is published under ISC license and can be found via git at https://git.openwrt.org/project/rpcd.git.

Default plugins

plugin executables

This will create new ubus functions which then can be used (after restarting rpcd):

On startup rpcd will call all executables in /usr/libexec/rpcd/ with argv[1] set to “list”. For a plugin, which responds with a valid list of methods and signatures, ubus method with appropriate arguments will be created. When a method provided by the plugin is about to be invoked, rpcd calls the binary with argv[1] set to call and argv[2] set to the invoked method name.

You cannot simply use yourscript call yourmethod ‘ <“arg1”: 42>‘ as you might have expected.

It is enough to issue /etc/init.d/rpcd reload to make it pick up new plugin executables, that way one does not lose active sessions.

NOTE: At least on CC builds, reload is not enough, and you must restart to pickup new plugins and changes to existing plugins.

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.

Rpcd openwrt что это. Смотреть фото Rpcd openwrt что это. Смотреть картинку Rpcd openwrt что это. Картинка про Rpcd openwrt что это. Фото Rpcd openwrt что это Rpcd openwrt что это. Смотреть фото Rpcd openwrt что это. Смотреть картинку Rpcd openwrt что это. Картинка про Rpcd openwrt что это. Фото Rpcd openwrt что это Rpcd openwrt что это. Смотреть фото Rpcd openwrt что это. Смотреть картинку Rpcd openwrt что это. Картинка про Rpcd openwrt что это. Фото Rpcd openwrt что это

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

Источник

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

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