aleeko
-
Постов
54 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Галерея
Загрузки
Блоги
События
Сообщения, опубликованные aleeko
-
-
В 28.12.2023 в 15:37, Denis P сказал:
На данный момент не хватает:
- генератора и экспорта конфига, как это сделано в том же asuswrt
- возможности включения NAT для интерфейса
да, вот прям искал как это сделать... генерировать конфиги от сервера
Сижу перекапываю - ищу как установить консольный WireGuard что бы там генерировать и выдавать клиентам QR код
Кто то может делал? - да еще бы и с кастовой веб мордой... на ЛИнукс много решений, а порисованы ли они на entware? -
В 02.01.2025 в 20:17, Rodstvennik63 сказал:
Можно тупо в лоб
killall ipset-dns /opt/etc/init.d/S52ipset-dns startК сожалению нельзя
~ # killall ipset-dns
~ # /opt/etc/init.d/S52ipset-dns start
ipset v7.21: Set cannot be created: set with the same name already exists
ipset v7.21: Element cannot be added to the set: it's already added
~ #
-
ДОброе утро всем, замечаю уже второй день подряд, что утром после ночи и включения устройств, ipset list наполнен ip адресами, но сам Ютубе не открывается ни на одном устройстве.
Есть ли те, у кого стабильно работает утилита ipset?
сделал ipset flush - очистить список адресов, c надеждой снова заполнить пул адресами
Но ipset list не заполняется...
Как можно перезапустить ipset без перезагрузки роутера?
И кому то удалось сделать так, что бы резолв не отлетал? -
В 18.11.2024 в 18:50, keenet07 сказал:
/opt/etc/init.d/S52ipset-dns restart
Про политики не подскажу.
сколько заметил в S52ipset-dns нет директивы на перезапуск
Можете подлиться вашим файлом S52ipset-dns?
И подскажите, какие домены добавить для Ютуба, что бы весь его контент переадресовывался в VPN? -
Спасибо за советы и уделенное время. Вторая версия моей поделки.
Было принято решение сделать отдельные скрипты для каждого моего перенаправления трафика.Так как КРОН опрашивает наличие соединения не чаще одного раза в минуту.
А в случае недоступности выходного нужного мне интерфейса трафик пойдет все равно по умолчанию в интерфейс провайдера.
/rci - это безусловно прогресс в работе и управления роутером, кое что удалось найти на форуме, как с ним работать, но очень любопытно где находится полная информация о функционале.
Мой код который работает сейчас через автозапуск.
Скрытый текст#!/bin/sh # Предопределяем интерфейс и переменные out_iface="nwg2" #выходой интерфейс в интерпретации Entware out_iface_description="p_vpn" #название интерфейса для понимания в отчетах в телеграм боте table="43" #таблица из policy выходного интерфейса in_iface="Wireguard1" #интерфейс принимающий клиентов in_iface_description="wg_home_p_vpn" #название принимающего для бота телеграм subnet="172.16.81.0/24" #подсеть принимающего интерфейса для правила ip_to_ping="8.8.8.8" #адрес для првоерки соединения timer="0" #переменная заменяющая мне CRON- регулирует раз в час отправку уведомления о текущем IP на выходе #все эти переменные вероятно в будущем потребуется вынимать автоматически, так как тестировал девелоперскую прошивку, и таблицы там начинались с 10 а не с 42 (аккуратно с автообновлениями) # Функция для проверки и управления состоянием интерфейса manage_interface() { local iface="$1" local iface_description="$2" local desired_state="$3" state=$(curl -s localhost:79/rci/show/interface/$iface/state | tr -d '"') if [ "${state}" != "${desired_state}" ]; then if [ "${desired_state}" = 'up' ]; then curl -s -X POST "https://api.telegram.org/botВАШ_API/sendMessage" -d "chat_id=ВАШ_CHATID&text=Снимаем заглушку с $iface_description пинг восставновлен.%0AИнформация о текущем IP-адресе:%0A$ip_info" else curl -s -X POST "https://api.telegram.org/botВАШ_API/sendMessage" -d "chat_id=ВАШ_CHATID&text=Ставим заглушку на $iface_description нет пинга" fi curl -s -d "{\"${desired_state}\":\"true\"}" "localhost:79/rci/interface/$iface" fi } # Бесконечный цикл проверки наличия соединения каждые 5 секунд SLEEP 5. while true; do ip_info=$(curl --interface "$out_iface" ipinfo.io?token=ВАШ_ТОКЕН) if [ "$timer" -eq 720 ]; then curl -s -X POST "https://api.telegram.org/botВАШ_API/sendMessage" -d "chat_id=ВАШ_CHATID&text=Интерфейс $out_iface_description%0AИнформация о текущем IP-адресе:%0A$ip_info" timer="0" fi timer=$((timer + 1)) # Выполняем пинг, отправляя 3 эхо-пакета if ping -c 3 -I $out_iface $ip_to_ping &> /dev/null; then echo "Минимум один пакет был успешным." if ! ip rule show | grep -q "from $subnet lookup $table"; then # Правила для подсети не существует, добавляем его и получаем информацию о текущем IP и отправляем ее в Телеграм echo "Добавляем правило для $subnet сети $in_iface_description в таблицу $table через интерфейс $out_iface_description" ip rule add from $subnet table $table manage_interface "$in_iface" "$in_iface_description" 'up' curl -s -X POST "https://api.telegram.org/botВАШ_API/sendMessage" -d "chat_id=ВАШ_CHATID&text=Добавлено правило для $subnet сети $in_iface_description в таблицу $table через интерфейс $out_iface_description%0AИнформация о текущем IP-адресе:%0A$ip_info" else echo "Правило существует для $subnet сети $in_iface_description в таблице $table и есть пинг для $out_iface_description" manage_interface "$in_iface" "$in_iface_description" 'up' fi else echo "Все 3 пакета были неуспешными. Выполняю действия по реагированию..." manage_interface "$in_iface" "$in_iface_description" 'down' curl -s -X POST "https://api.telegram.org/botВАШ_API/sendMessage" -d "chat_id=ВАШ_CHATID&text=Отсутствует ping для $out_iface_description. Выключили $in_iface_description" fi # Подождите 5 секунд перед отправкой следующей серии пакетов sleep 5 done
Принцип какой. если пропал пинг на нашем выходном соединении - считается что соединение недоступно и скрипт отключает интерфейс на которым принимаем трафик. Что бы не заморачиваться с IPTABLES.
Как только пинг на выходном соединении появляется - скрипт снова включает интерфейс который принимает клиентов.
При запуске и во время работы скрипта проверяется наличие правила маршрутизации, если его нет - добавляем, если есть дубликат не создается.
Главное что мне сейчас не нравится. То что я не понимаю команды синтаксис запуска скриптов для автозапуска.
Автозапуск у меня сейчас выглядит вот так /opt/etc/init.d/S52homevpn
Содержимое ниже.Скрытый текстsh /opt/scripts/vpn.sh &
Форум читал, различные темы видел, пробовал, не запустилось....
Вроде все просто, но я даже не пойму где в Entware лог посмотреть, почему не запустилось. -
18 минут назад, vasek00 сказал:
"ip rule" + "ip ro show table XXXX"Этих не хватит.
Для перезагрузки используют /opt/etc/init.d скрипт с "S110Run" или хуки от /opt/ndm/...
~ # ip rule 0: from all lookup local 10: from all fwmark 0xffffcff lookup main 200: from all fwmark 0xffffd00 lookup 42 201: from all fwmark 0xffffd00 blackhole 202: from all fwmark 0xffffd01 lookup 43 203: from all fwmark 0xffffd01 blackhole 204: from all fwmark 0xffffd02 lookup 44 ... ~ # ip ro show table 42 default dev nwg0 scope link 10.2.0.1 dev nwg4 scope link ....где
42 у меня например ip policy Policy0/description Cloud
44 у меня ip policy Policy2/description Anti
Номера 42 и т.д. идут пока по порядку согласно конф файла
ip policy Policy0 -------> 42 description Cloud ... ! ip policy Policy1 -------> 43 description In-2 ... ! ip policy Policy2 ------> 44 description Anti ...
В моем случае в этих
"ip rule" + "ip ro show table XXXX"нет никакой информативность что бы соотнести интерфейс с таблицей и дать правильное правило для интерфейса
Скрытый текст~ # ip rule
0: from all lookup local
198: from 172.16.81.0/24 lookup 43
199: from 172.16.83.0/24 lookup 42
200: from all fwmark 0xffffd00 lookup 42
201: from all fwmark 0xffffd00 lookup unspec blackhole
202: from all fwmark 0xffffd01 lookup 43
203: from all fwmark 0xffffd01 lookup unspec blackhole
204: from all fwmark 0xffffd02 lookup 44
205: from all fwmark 0xffffd02 lookup unspec blackhole
400: from 46.35.237.221 lookup 58
401: from 172.20.12.1 lookup 59
402: from 172.20.12.2 lookup 60
403: from 10.21.252.227 lookup 61
32766: from all lookup main
32767: from all lookup default
Установил ndmq
в Entware из коробки не было. - как понимаю он может выполнять команды CLI через командную строку.
ndmq -p 'show ip policy' - НЕ РАБОТАЕТ, осталось теперь что бы гуру Кинетиков и Сетевых настроек подсказали какой командой я могу вытянуть policy через ndmq
ДОкументация на ГИтхабе не нашел
opkg install http://bin.entware.net/mipselsf-k3.4/keenetic/archive/ndmq_1.0.2-7_mipsel-3.4_kn.ipk http://bin.entware.net/mipselsf-k3.4/keenetic/archive/libndm_1.8.0-1_mipsel-3.4_kn.ipk -
1 час назад, vasek00 сказал:
На форуме куча есть примеров через wget - например
wget -qO - --post-data='[{"log":{"once":true}}]' localhost:79/rci/showЕсть и еще - поиск
Для меня проще команды "ip rule" + "ip ro show table XXXX" + достаточно один раз посмотреть вывод "show ip policy"
Policy0 "description": "Cloud", "mark": "ffffd00", "table4": 42 .... "route": [ { ... "interface": "Wireguard0", ... }, { .... "interface": "Wireguard4", ... "Policy2": { "description": "Anti", "mark": "ffffd02", "table4": 44, "route4": { ... { ... "interface": "Wireguard4", ... сопоставить с конф файлом ip policy Policy0 description Cloud permit global Wireguard0opkg install ip-full ip-bridge
Нет, wget с логом не то, там нет упоминаний и отсылки table и к интерфейсам пригодных для скармливания "ip rule"
Здесь как раз таки надо обращаться какой то командой к роутеру что бы вытащить через entware эту инфу о "policy", либо смотреть какой то командой в сетевых параметрах, где упоминается соотношения имени интерфейса к присвоенным им политикой номера таблиц.
Вся задача и заключается в том, что у меня на роутере настроены пару стабильных VPN с разной локацией, и пару прокси трактовых прокси, с другой локацией - и в случае, если я очень далеко, нужно что бы при перезагрузке у меня все автоматически вставало на ноги. без входа в ВЕБ интерфейс и моего участия. -
В 19.09.2023 в 20:55, aleeko сказал:
становится интереснее....
иначе получится так, что все будет отваливаться при перезапуске интерфейса или перезагрузке роутера
- а скрипты по автозапускам, с проверкой поднятых интерфейсов видимо надо искать в других ветках...
Вы использовали у себя скрипты автозапуска?Скрытый текст#!/bin/bash
# Параметры Telegram бота
TELEGRAM_BOT_TOKEN="ВАШ_ТОКЕН"
TELEGRAM_CHAT_ID="ВАШ_ЧАТ_ID"
LOG_FILE="/var/log/add_routes_vpn.log"# Функция для логгирования
log_message() {
local message="$1"
echo "$(date +"%Y-%m-%d %H:%M:%S") - $message" >> "$LOG_FILE"
}
# Функция для получения информации о текущем IP-адресе
get_ip_info() {
local interface="$1"
local info="$(curl --interface "$interface" ipinfo.io?token=ВАШ_ТОКЕН)"
echo "$info"
}# Функция для проверки наличия правила
rule_exists() {
local subnet="$1"
local table="$2"
local rules=$(ip rule show)# Ищем строку с нужными параметрами
if [[ "$rules" =~ "from $subnet lookup $table" ]]; then
return 0 # Правило существует
else
return 1 # Правило не существует
fi
}
# Функция для отправки уведомления в Telegram
send_notification() {
local message="$1"
curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" -d "chat_id=$TELEGRAM_CHAT_ID&text=$message"
}
# Функция для проверки наличия маршрута
check_route() {
local subnet="$1"
local table="$2"
local interface="$3"# Проверяем, есть ли уже условие в таблицах
if rule_exists "$subnet" "$table"; then
ip_info="$(get_ip_info "$interface")"
send_notification "Правило для $subnet существует в таблице $table%0AНа интерфейсе $interface IP-адрес%0A$ip_info"
else
# Если условие не существует, то добавляем его и получаем инфо о текущем IP и отправляем ее в Телеграм
ip rule add from "$subnet" table "$table"
ip_info="$(get_ip_info "$interface")"
send_notification "Добавлено правило $subnet в таблицу $table через интерфейс $interface%0AИнформация о текущем IP-адреса%0A$ip_info"
fi
}# Проверяем наличие маршрутов и отправляем уведомления
check_route "172.16.XX.0/24" "42" "t2s_br0"
check_route "172.16.XX.0/24" "43" "nwg2"
#check_route "172.16.XX.0/24" "44" "t2s_br1"
Возможно кому-то пригодится.
Вот как работает у меня автозагрузка на начальном этапе.
Установлено в КРОН на 5 минут.
Для удобства чтения, используйте нормальный Bash Shell Reader, что бы видеть разметку кода, где текст, функции, операторы, переменные... - иначе для меня это становится нечитаемыми иероглифами...
Если есть идеи что может сломаться или что бы вы добавили - пишите.
Лично у меня вопрос... кто знает?!
При работе через интерфейс мы можем добавлять новые таблицы, и таблицы интерфейсов могут получить новые значения.
Как через скрипт получить информацию, в какой именно таблице сейчас прячется интерфейс nwg2 или любой другой? - что бы каждый раз не лазать ручками редактировать скрипт? -
14 часа назад, vasek00 сказал:
Вам предложен вариант как это можно сделать.
с проверкой поднятых интерфейсов видимо надо искать в других ветках...
видимо так, на данном форуме есть куча вариантов описанных что и как только приложить некоторые усилия.
Как говорится "без труда не выловишь и рыбку из пруда", второе "Подразумевается, что на нашем форуме пишут люди заинтересованные и технически подкованные, способные на минимальный анализ происходящего"
Моему восторгу нет предела! Это Гениально и Просто!
Ручками пока все работает. И можно назначить отдельные выходные интерфейсы для каждого отдельно взятого клиента сервера WG.
Огромное вам спасибо что вы здесь есть!
Я сам программирую и понимаю программный код, в тех случая когда это все выглядит как традиционное программирование.
Но понимание устройства сетей и их настройки - ну никак мне не заходит....
Для меня открытие, что ПРИОРИТЕТЫ ПОДКЛЮЧЕНИЙ в интерфейсе - это таблицы в Entware.
И я до сих пор не могу понять, почему разработчики не внедрят опция выбора выходящего интерфейса в Вебморду. На форуме часто встречаются этот вопрос.
Теперь надо все проверить как и какие будут присваиваться DNS - какие утечки будут, все это научится держать на автозагрузке и периодической проверке.
Спасибо
PS данные из CLI формируются в формате JSON - их удобно читать и изучать в моем случае в любом JSON Editor - в привычном для меня интерфейсе для меня стало более понятным все. -
21 минуту назад, vasek00 сказал:
Логика проста - сначала все ручками чтоб работало, а потом уже скрипт для автом. запуска.
становится интереснее....
иначе получится так, что все будет отваливаться при перезапуске интерфейса или перезагрузке роутера
- а скрипты по автозапускам, с проверкой поднятых интерфейсов видимо надо искать в других ветках...
Вы использовали у себя скрипты автозапуска? -
В 08.09.2023 в 21:38, vasek00 сказал:
Все мои настройки и описания проверены при работе в профилях, т.е. есть
1. основной профиль где расположены по росту вверху провайдер 1 RT (pppoe - основной), провайдер 2 Inet-2 (просто провод DHCP - резервный) и далее ниже уже идут все остальные Cloud-Warp, и еще ниже Proton и т.д.. Галки на WG каналах для выхода в интернет стоят (тогда их можно использовать в других профилях).
2. профиль Cloud - галка только на канале Cloud-Warp (WG) на остальных галки нет
3. профиль Anti - галка только на канале Proton (WG Proton) на остальных галки нет
PPPoE0 - основной провайдер GigabitEthernet0/Vlan9 - это Inet-2 второй провайдер (vlan9 это просто вырезанный LAN порт, ни каких vlan нет) interface Wireguard0 description Cloud-warp security-level public interface Wireguard4 description WG-proton security-level public ip policy Policy0 description Cloud permit global Wireguard0 no permit global GigabitEthernet0/Vlan9 no permit global PPPoE0 no permit global Wireguard4 no permit global Proxy0 ip policy Policy2 description Anti permit global Wireguard4 no permit global PPPoE0 no permit global GigabitEthernet0/Vlan9 no permit global Wireguard0 no permit global Proxy0Настройки wireguard стандартны, описаны в базе знаний.
Есть клиент, допустим мобильный телефон - клиент подключается к серверу Wireguard настроенный на Keenetic - с последующим выходом через нужный интерфейс (который мы указали в статических маршрутах), а не через Основное подключение.
Сервер WG на роутере для удаленных клиентов
interface Wireguard3 description PKN-WG security-level public ip address 10.16.130.101 255.255.255.0 .... wireguard peer Z8cL......bTY= !A73 endpoint 10.16.130.6:ххххх .... ! wireguard peer y09......MCA= !T505 endpoint 10.16.130.18:ххххх ....В данном случае данные клиенты получат IP который им присвоен в настройках WG сервера. Так как проблемы часто возникают именно с DNS то в данном варианте использования за это отвечает AdguardHome который - это локальный сервис роутера и он слушает сеть 192.168 и 127.0.0.1 порт 53. Куда и что прописать будет чуток ниже.
AdguardHome dns: bind_hosts: - 192.168.130.101 - 127.0.0.1 port: 53Вспоминаем что это основной профиль и его канал выхода это РТ (pppoe).
Мы хотим нашего клиента смартфон чтоб он выходил через профиль Cloud -> воспользуемся самой прошивкой, т.е. при создание профиля создается table маршрутизации где default нужный нам Wireguard0 а в другом профиле table другая default Proton
~ # ip ro show table 42 default dev nwg0 scope link ~ # ip ro show table 44 default dev nwg4 scope linkэто можно найти в web cli - 192.168.1.1/a набрав "show ip policy"
По умолчанию наш удаленный клиент после подключения использовать основной профиль роутера, но мы можем ему сменит канал выхода направив его в нужную нам table за счет того что он клиент имеет IP от WG например выше - 10.16.130.6. Заворот данного клиента делается через
ip rule add from IP_удал_клиента/24 table 42 или ip rule add from IP_удал_клиента/24 table 44Для того что данный клиент мог выходить в интернет так как у него адрес серый то нужно применить
ip nat Wireguard3По DNS воспользуемся тем что добаление сервера DNS в профилях создает стат маршрут на интерфейс который deault в данном профиле (без разницы какой это профиль - основной или созданные). Например
~ # ip ro show table 42 default dev nwg0 scope link ... 192.168.130.101 dev nwg0 scope linkПока это работает, но можно и какой то свой например такой 10.2.0.1 DNS от конф. Proton
~ # ip ro show table 44 default dev nwg4 scope link 10.2.0.1 dev nwg4 scope linkВ итоге проверяем speedtest на удаленном клиенте
1. по умолчанию IP будет от роутера на клиенте который по WG к роутеру
2. после добавления rule то speedtest то на клиенте показывает адрес от профиля в который мы его направили (IP от wireguard0 или wireguard4).
В данном варианте никакого контроля правил iptables нет, вопрос только в одной строчке
"ip rule add from 10.16.130.6 table 42"Перечитывал несколько раз, и если я правильно понимаю, часть настроек вы делаете через Entware (имею ввиду через подключение SSH к роутеру) - верно?
То есть обойтись возможностями интерфейса не получится? - так?
PS Сам спросил - сам ответил )
Да. О том что нужно использовать Entware вы говорите в этой статье.
PPS. Я так понимаю, такой же логики следует придерживаться, если я буду заворачивать трафик в прокси настроенный на Кинетике? -
В 03.09.2023 в 18:19, vasek00 сказал:
Для того чтоб wireguard работал через нужный сетевой необходимо чтоб был прописан стат маршрут до сервера wireguard через нужный сетевой интерфейс.
Пример. Есть два входных интернет канала, по умолчанию основной РТ, второй Inet-2 в резерве. Поднимем warp wireguard через резервный канал.
1. канал warp работает через основной, отключаем wireguard (через WEB другие подключения).
2. прописываем стат маршрут через Inet-2 на нужный нам сервер wireguard
Сен 3 17:50:51 ndm Network::RoutingTable: added static route: 188.114.хх.хх/32 via 10.10.10.1 (GigabitEthernet0/Vlan9).делается через WEB - раздел марщрутизация (до узла, нужный IP сервера 188.114.хх.хх/32. нужный инетрефес у меня Inet-2 или "via 10.10.10.1" и выбираем его)
3. идем в WEB cli (192.168.1.1/a и включаем его "interface Wireguard0 up" в моем случае его номер "0", находится по конф файлу или так же WEB cli набрав просто "interface Wireguard" и клавишу "tab". Если он один то не чего искать не надо, это если их несколько)
4. проверяем что все ОК на клиенте в браузере набираем speedtest и он должен показать IP клиента, в данном случае IP от cloudflare warp 104.28.ххх.ххх. По логу это выглядит так
Сен 3 17:52:05 ndm Network::Interface::Base: "Wireguard0": "base" changed "conf" layer state "disabled" to "running". Сен 3 17:52:05 ndm Network::Interface::Base: "Wireguard0": interface is up. Сен 3 17:52:05 kernel wireguard: Wireguard0: peer "bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=" (8) created Сен 3 17:52:05 ndm Wireguard::Interface: "Wireguard0": added a host route to peer "bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=" (188.114.хх.хх) via 10.10.10.1 (GigabitEthernet0/Vlan9).в отличие от ранее когда он поднят на основном канале
162.159.хх.хх dev ppp0 scope link[I] Aug 15 09:17:52 ndm: Wireguard::Interface: "Wireguard0": added a host route to peer "bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=" (162.159.хх.хх) via PPPoE0 (PPPoE0).Это будет работать до тех пора пока есть стат маршрут прописанный выше по п.2Не получилось у меня пока заставить работать как у вас?
Можно вас попросить больше подробностей?
Необходимо ли что то дополнительно настраивать в межсетевом экране?
Включена ли у вас опция "Использовать для выхода в интернет" - в интерфейсе Inet-2
И самое главное - правильно ли мы понимаем друг друга?
Есть клиент, допустим мобильный телефон - клиент подключается к серверу Wireguard настроенный на Keenetic - с последующим выходом через нужный интерфейс (который мы указали в статических маршрутах), а не через Основное подключение.
Интерфейсе Inet-2 у вас подключен физически к роутеру в качестве резервного канала? Или это VPN или Прокси с выходом интернет? -
1 час назад, aleeko сказал:
PS - стрелочку слева нажал. Было всего 13, я 14-й ....
Как то мало нуждающихся (((
А с другими протоколами ВПН работает выбор интереса? В какой то официальной статье от Кинетика читал относительно OPenVPN - что для работоспособности выхода надо обязательно выбирать ЛЮБОЙ ИНТЕРФЕЙС а не какой то конкретныйhttps://help.keenetic.com/hc/ru/articles/360000880359-Сервер-OpenVPN
Статья от Обновлено 20.07.2023
Важно! Начиная с версии KeeneticOS 3.4.1 сервер работает только при указании в "Подключаться через" - "Любое интернет-подключение".
-
2 минуты назад, krass сказал:
слева нажать на стрелочку со значением 14
PS - стрелочку слева нажал. Было всего 13, я 14-й ....
Как то мало нуждающихся (((
А с другими протоколами ВПН работает выбор интереса? В какой то официальной статье от Кинетика читал относительно OPenVPN - что для работоспособности выхода надо обязательно выбирать ЛЮБОЙ ИНТЕРФЕЙС а не какой то конкретный -
Как проголосовать? Давно тоже нуждаюсь в таком функционале для wireGuard
-
4 минуты назад, gvan сказал:
Вы так и не показали свой скрипт. Или хотя бы чему у вас равна переменная $BACSTORDIR.
У меня именно такой скрипт, как я привел в примере. Предварительный переход в каталог команде find мешать никак не может. Да, наверно можно обойтись и без него.
Скрытый текст#!/opt/bin/sh
# VERSION 2.1
# Скрипт сохраняет резервную копию entware, конфига роутера и прошивки
prefix="/opt"
PATH=${prefix}/bin:${prefix}/sbin:/sbin:/bin:/usr/sbin:/usr/bin#=====================================================================================
# Конфигурационные параметры скрипта
#=====================================================================================
# Префикс для записи сообщений в syslog
TAG="Backup"# Каталог, куда сохранять бэкапы
BACSTORDIR=backup/# Какие компоненты бэкапить (1|0)
# Entware. Всегда сохраняется новая копия
IsEnt=1
# Конфигурация роутера. Сохраняется копия, если были изменения в конфиге
IsConf=1
# Прошивка. Создается резервная копия, если прошивка изменялась
IsFirm=1# Префикс для имени файла с бэкапом
BACNAME=entware# Что архивировать
BACDIR=/opt/# Какие каталоги пропускать при бэкапе entware
EXCLUDE="
tmp
var/log
var/cache
share/nginx/html
var/mysql
backup
"# При определении изменялся ли конфиг, не учитывать данные строки (через экраннированный символ "ИЛИ" -> "\|".
# При сравнении копий конфига не учитываются служебные строки, начинающиеся на '! $$$', и строка 'clock date', т.к. она обновляется при считывании конфига
# Лучше не трогать
EXCLCONFCMD='\! \$\$\$\|clock date'# Путь к резервной копии прошивки на USB FLASH. Определить в CLI по команде 'ls ?'. Обычно это метка диска в виде 'LABEL:/'
BACFIRMDIR=OS:/backup/# Сколько дней хранить бэкапы.
DAYSTOR=5#=====================================================================================
# Начало скрипта
#=====================================================================================# Текущая дата для формирования имени файла с архивом
DATE=`date +%Y-%m-%d`logger -t $TAG "Starting process"
cd $BACDIR# Делаем архив entware
if [ "$IsEnt" = "1" ]
then
logger -t $TAG "Starting backup entware"
echo "$EXCLUDE" | tar -X - -cf - * | gzip > ${BACSTORDIR}${BACNAME}-${DATE}.tgz
else
logger -t $TAG "Skiping backup entware"
fi# Делаем архив конфига
if [ "$IsConf" = "1" ]
then
logger -t $TAG "Starting backup config"
ndmq -p "show running-config" -P message > ${BACSTORDIR}config-${DATE}
if [ -f "${BACSTORDIR}config-cur" ]
then
OLDCONF=`grep -v "${EXCLCONFCMD}" ${BACSTORDIR}config-cur`
CURCONF=`grep -v "${EXCLCONFCMD}" ${BACSTORDIR}config-${DATE}`
if [ "$OLDCONF" != "$CURCONF" ]
then
logger -t $TAG "Config is changed. Do new copy."
cp -f ${BACSTORDIR}config-${DATE} ${BACSTORDIR}config-cur-new
mv -f ${BACSTORDIR}config-cur ${BACSTORDIR}config-${DATE}
gzip -f ${BACSTORDIR}config-${DATE}
mv ${BACSTORDIR}config-cur-new ${BACSTORDIR}config-cur
else
logger -t $TAG "Config is not changed. Renew current config copy."
mv -f ${BACSTORDIR}config-${DATE} ${BACSTORDIR}config-cur
fi
else
logger -t $TAG "Current config copy not found. Is it first run? Do config copy."
cp ${BACSTORDIR}config-${DATE} ${BACSTORDIR}config-cur
gzip -f ${BACSTORDIR}config-${DATE}
fi
else
logger -t $TAG "Skiping backup config"
fi# Делаем архив прошивки
if [ "$IsFirm" = "1" ]
then
logger -t $TAG "Starting backup firmware"
REL=`ndmq -p 'show version' -P 'release'`
ndmq -p "copy flash:/firmware ${BACFIRMDIR}firmware-${DATE}" -P message
if [ -f "${BACSTORDIR}firmware-$REL" ]
then
CMPFIRM=`cmp ${BACSTORDIR}firmware-$REL ${BACSTORDIR}firmware-${DATE}`
if [ -n "$CMPFIRM" ]
then
logger -t $TAG "Firmware is changed. Do new copy."
cp -f ${BACSTORDIR}firmware-${DATE} ${BACSTORDIR}firmware-$REL-new
mv -f ${BACSTORDIR}firmware-$REL ${BACSTORDIR}firmware-${DATE}
mv ${BACSTORDIR}firmware-$REL-new ${BACSTORDIR}firmware-$REL
else
logger -t $TAG "Firmware is not changed. Renew current firmware copy."
mv -f ${BACSTORDIR}firmware-${DATE} ${BACSTORDIR}firmware-$REL
fi
else
logger -t $TAG "Current firmware copy not found. Is it first run? Do firmware copy."
cp ${BACSTORDIR}firmware-${DATE} ${BACSTORDIR}firmware-$REL
fi
else
logger -t $TAG "Skiping backup firmware"
filogger -t $TAG "Finished"
# Выводим в лог список удаленных файлов-архивов
logger -t $TAG "Remove old archives"
FILES=`find $BACSTORDIR -mtime +${DAYSTOR} -print -delete`
logger -t $TAG "Removed: $FILES"
logger -t $TAG "Copying to Yandex Disk..."
rclone copy $BACKSTORDIR rem:/KN-1010_backup --log-file backup.log
logger -t $TAG "Backup and Sync finishes"
logger -t $TAG "Exiting"У меня вот такой теперь. в моем случае, что бы работало как у вас, переменную
BACSTORDIR=backup/
надо указывать как BACSTORDIR=/opt/backup/
-
Понял в чем дело . В последней секции скрипта мы переходим в $BACSTORDIR и потом ищем опять в find $BACSTORDIR.
Получается производим поиск find в $BACSTORDIR/$BACSTORDIR/фильтр_поиска
а такой директории не существуетcd $BACSTORDIR - лишний
Скрытый текстlogger -t $TAG "Finished" cd $BACSTORDIR # Выводим в лог список удаленных файлов-архивов logger -t $TAG "Remove old archives" FILES=`find $BACSTORDIR -mtime +${DAYSTOR} -print -delete` logger -t $TAG "Removed: $FILES" logger -t $TAG "Exiting" -
В 14.03.2021 в 12:56, gvan сказал:
Да, вижу, что кое-что побилось. Выкладываю файл backup.zip
Подскажите, почему может игнорироваться выполнение строки
FILES=`find $BACSTORDIR -mtime +${DAYSTOR} -print -delete`В логе роутера вижу что якобы идет удаление лишних файлов, но ничего не удаляется
Спасибо
-
В 20.11.2021 в 14:19, TheBB сказал:
первая страница, первый пост, внизу:
9 октября сего (2021) года, ещё новее нету.
Это нормально, что при установке db maria ругается?
СпасибоИ можно ли прикрутить к марии веб интерфейс? phpmyadmin не нашел на форуме инфо об этом
Скрытый текстmysql_install_db
Could not find plugin directory.
Will continue with "/opt/lib/mariadb/plugin".
WARNING: The host 'Keenetic_Giga' could not be looked up with /opt/bin/resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MariaDB version. The MariaDB daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MariaDB privileges !
Installing MariaDB/MySQL system tables in '/opt/var/lib/mysql' ...
2022-02-18 19:18:57 0 [Warning] InnoDB: Linux Native AIO disabled.
2022-02-18 19:19:09 0 [Warning] You need to use --log-bin to make --expire-logs-days or --binlog-expire-logs-seconds work.
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
Two all-privilege accounts were created.
One is root@localhost, it has no password, but you need to
be system 'root' user to connect. Use, for example, sudo mysql
The second is root@localhost, it has no password either, but
you need to be the system 'root' user to connect.
After connecting you can set the password, if you would need to be
able to connect as any of these users with a password and without sudo
See the MariaDB Knowledgebase at https://mariadb.com/kb or the
MySQL manual for more instructions.
You can start the MariaDB daemon with:
cd '/opt' ; /opt/bin/mysqld_safe --datadir='/opt/var/lib/mysql'
You can test the MariaDB daemon with mysql-test-run.pl
cd '/opt/mysql-test' ; perl mysql-test-run.pl
Please report any problems at https://mariadb.org/jira
The latest information about MariaDB is available at https://mariadb.org/.
You can find additional information about the MySQL part at:
Consider joining MariaDB's strong and vibrant community:
https://mariadb.org/get-involved/
~ # mysqladmin -u root password 'Passw0rd'
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local server through socket '/opt/var/run/mysqld/mysqld.sock' (2)'
Check that mariadbd is running and that the socket: '/opt/var/run/mysqld/mysqld.sock' exists!
и интерфейс не такой красивый как у вас получается
-
В 31.12.2021 в 17:49, TheBB сказал:
Держите! https://nginx.org/ru/docs/
Перечитал всю тему, встретил этот вопрос трижды, но так до конца и не понял как...
IP белый - цель - установить несколько сайтов на сервер.
Вопрос. Можно ли это сделать имея лишь Белый IP? - без доменных имен...
Необходимо назначить отдельные порты прослушивания для каждого предполагаемого сайта?
Если существуют домены, тут понятно, что у регистратора прописываем ДНС на наш IP и в nginx настраиваем конфиг с виртуальными серверами.
А можно ли несколько сайтов на одном IP?Ткните пожалуйста носом
Спасибо -
Только что, dududuk сказал:
В журнале чехарда, ощущение что ничего не работает
Хочу глянуть где подросток шастает в интернете, это возможно с помощью adguardhome?
Регистрируйте хосты по Mac или по ip и шпионьте. Это уже в открытых источниках инструкции эдгард есть… мануал с оф сайта копировать бессмысленно
-
1
-
-
22 минуты назад, dududuk сказал:
Просто выключил в панели управления
Если выключали в панели управления adguard home то там же его и надо включать, cli не нужен в этом случае
-
1
-
-
1 час назад, dududuk сказал:
Подскажите,если выключал Adguard home и пользовался встроенным в кинетик ,как сейчас обратно перейти?Нужны команды в sli?
Все зависит от того, как вы его выключали
-
2 часа назад, zyxmon сказал:
попробуйте rclone
Спасибо, действительно мощный инструмент! И на официальном сайте подробный мануал.
С ним все работает. Но в интернете также пишут, что пользователям блокируют токены и теряют возможность работы через rclone

AdGuardHome
в Каталог готовых решений Opkg
Опубликовано · Изменено пользователем aleeko
Update
Как казалось, листал топик вдоль и поперек, НО!
как заставить роутер или устройства - работающие не в "политике по умолчанию" использовать именно ADGH - в качестве ДНС сервера?
Если устройство в Политике по умолчанию - я вижу его запросы в журнал
Как только устанавливаю "Политика сегмента по умолчанию" - а там естественно другая политика
Или вручную назначаю необходимую мне политику устройству - то устройство сразу же пропадает из журнала
Как быть?
UPD Снес и настроил еще раз все по новой.
В Интернет Фильтры - Контентный фильтр - Режим фильтрации (если этот компонент вообще установлен) должно быть четко выбрано Выключен.
В прошлый раз также выключал, но отчего то не сработало...
Вопрос решен, там выше у кого то тоже не получалось
На сервере WG на роутере - удалил записи ДНС - и клиентов WG также вижу в журнале (не знаю, наверняка ли нужно удалять записи ДНС на сервере), но где то выше писали, что тоже удаляли.
PS надо еще проверить, какие ДНС будут использовать клиенты, те что в конифгах у них прописаны, или же все таки те, которые в ADH