Лидеры
Популярный контент
Показан контент с высокой репутацией за 04.04.2024 во всех областях
-
Это небольшая заметка о том как буквально за 10 минут организовать пересылку уведомлений из системы Proxmox VE в телеграмм. Небольшое вступление В один не очень приятный момент я столкнулся с тем что резервное копирование proxmox из за ошибки не выполнялось несколько дней, а так как эксперименты над виртуалками с моей стороны очень частые для меня это очень плохой звоночек. В один не очень хороший момент я мог просто не найти бэкап на который рассчитывал. Для предотвращения подобной ситуации в будущем решил настроить уведомления в proxmox. Сама система proxmox поддерживает три типа уведомлений: smtp, gotify и встроенную отправку почты linux. По умолчанию настроен вариант отправки почты linux, но из коробки это решение работать не будет и все уведомления оседают где то в логах системы. Рассмотрим два других варианта более подробно: Gotify - интересная легкая система которая может удобно собирать по http все уведомления в одном месте. И... на этом все... как по мне в ней не хватает как минимум адекватной возможности пересылки в другие системы. Smtp - это классическая почта, фактически вы даете данные авторизации для отправки почты от вашего имени (или от имени специального почтового ящика). Вариант использовать почту был уже более приемлемый но хотелось все таки получать уведомления в телеграмм (у меня уже были ранее настроены уведомления для watchtower, sonar, radar и т.д.). На просторах интернета есть несколько ботов которые подключаются к proxmox api Для управления системой, но по большей степени это именно управление и уведомления они не получают, ну и для задачи это было избыточно. В сухом остатке имеем два пути решения задачи Gotify или Smtp, причем приложение Gotify работает по принципу что именно приложение идет за сообщением а не сервер отправляет на телефон, это серьезное ограничение которое требует внешний доступ к серверу Gotify. Простое и элегантное решение UPD 03.03.25: В proxmox появилась возможность отправлять уведомления с использованием вебхуков теперь настройка еще проще На просторах интернета и обсуждений проблемы в telegram каналах было найдено простое и элегантное решение, smtp_to_telegram. Это небольшое приложение поднимает smtp сервер для приема писем без авторизации и пересылает их в telegram бот. Данный метод можно использовать не только для proxmox но и для любого сервиса поддерживающего smtp отправку уведомлений. Подробнее о самом решении можете посмотреть на странице GitHub: https://github.com/KostyaEsmukov/smtp_to_telegram Фактически нам необходимо создать телеграмм бота (или использовать уже имеющийся) который будет только отправлять сообщения, но не будет читать. Это позволяет без проблем использовать одного бота для нескольких уведомлений как например для watchtower (автоматического обновления докер образов). На просторах интернета множество инструкций по созданию телеграмм ботов подробно расписывать не буду. Коротко идем к служебному боту https://t.me/BotFather и создаем нового бота через меню, нам надо от него токен API. Не забываем написать нашему боту что нибудь для запуска. Так же с помощью https://t.me/myidbot необходимо узнать наш id для отправки сообщений, все опять таки крайне просто пишем боту /getid и получаем циферки которые нам нужны. Само решение будем запускать как я люблю в докере, так как это банально проще и легко воспроизводится: version: '3' services: readeck: container_name: SmtpToTelegram image: kostyaesmukov/smtp_to_telegram:latest restart: unless-stopped volumes: - /DATA/AppData/readeck:/readeck environment: - ST_TELEGRAM_CHAT_IDS=779979797 - ST_TELEGRAM_BOT_TOKEN=7127345363:AAEarsdfsdtnYsZZasdasdx0OfFcDc1NLU - ST_TELEGRAM_MESSAGE_TEMPLATE={subject}\n\n{body}\n\n{attachments_details} ports: - 2525:2525 Сам автор проекта не очень коммуникабельный и не собирает дорабатывать как либо решение, или банально делать образ докера под arm64 но есть альтернативный вариант под эту архитектуру. Для arm64 используйте образ image: cobra1978/smtp_to_telegram После запуска докер контейнера на нашем сервере на порту 2525 поднимется smtp сервер пересылки без авторизации. Переходим в настройку proxmox, нас интересует раздел notification у центра обработки данных. Создадим новую цель уведомлений smtp с данными для нашего сервиса пересылки (сервер это ip нашего сервера на котором запущен докер контейнер пересылки): Фактически отправитель и получатель могут быть вообще любыми адресами у сервиса нет контроля релевантности адресов кроме общего шаблона <name>@domein Фактически все у нас есть возможность отправлять уведомления proxmox в телеграмм, нажимаем test и видимо сообщение от бота. Если не сработало проверьте что у пользователя заполнен почтовый адрес Настройка уведомлений на почту Кроме бота можно настроить еще и дополнительно уведомления на почту, я для таких целей использую свой же почтовый ящик gmail. Но необходимо выполнить несколько предварительных настроек. Установить у пользователя proxmox почту. Для этого переходим в управление пользователями proxmox, и заполняем для пользователя от имени которого будем отправлять уведомления электронный адрес. Следующий пункт это получение пароля приложения для нашей почты которая будет выполнять отправку. Каждый почтовый сервис имеет свои правила и настройки, но большая часть современных требует создания пароля приложения с ограниченными правами. Для гугл можно посмотреть тут: https://support.google.com/accounts/answer/185833?hl=ru После получения пароля возвращаемся в раздел уведомлений proxmox и создаем новую цель для рассылки smtp, для своего почтового сервиса ищите настройки в поиске по словам "smtp <название вашего сервиса>" Обратите внимание что получатель и отправитель (настраивается в пользователе) почты могут совпадать, это будет письмо самому себе. Нажимаем тест и проверяем почту. Отправителя по умолчанию можно выключить, но удалить не получиться. Уведомления о бэкапах proxmox В proxmox существует достаточно гибкая система условий для уведомлений, подробно о ней можно почитать тут https://pve.proxmox.com/wiki/Notifications Я приведу небольшой пример который я использую для получения уведомлений о бэкапах как успешных так и ошибочных. Переходим в раздел уведомлений proxmox и создаем новый Notification Matchers Данные настройки будут отправлять на телеграмм и почту сообщение о событиях бэкапа в любое время. Для дополнительных ограничений по времени или других типов событий рекомендую ознакомится с документацией. Пример уведомления о бэкапах в телеграмм, к сообщению дополнительно прикладывается лог. Телеграмм бот дополнительно прикладывает его в виде файла так как не всегда удобно читать логи в сообщении телеграмм. И оно же на почте Спасибо за внимание, удачной настройки и меньше тревожных ведомлений.3 балла
-
Что ж. Для начала хотел бы оставить немного отзыва. После некоторых проблем с Vultr, а именно блокировкой IP адресов со стороны РФ, пошел искать хорошие варианты для замены. И один из первых, на удивление, стал Kamatera, с заблокированным в РФ основным доменом Kamatera.com. Зато все остальные саб-домены, доступны без VPN. Данного провайдера я конечно рекомендую на 100%! По трафику в тарифе: 5Тб на скоростях до 10Гбс 0. Для начала, моя обычная рефералка: https://go.cloudwm.com/visit/?bta=36601&brand=kamatera 1. Лояльность. При регистрации на сайте, я указывал действительный адрес РФ. Я указывал свои действительные данные. Вопросов или проблем с оплатой или поддержкой не возникло. Пожалуй, это основной аргумент. 2. Регистрация. Регистрация для всех сервисов одна. 2.1 Вводим почту и пароль 2.2. После этого вам придет письмо на почту для подтверждения. 2.3. Подтверждаем учетку. 2.4. Входим в учетку. 2.5. Нам нужны данные платежной карты. 3. Привязка карты. 3.1. Сервис CashInOut Если вы все сделали правильно, то вам нужно будет добавить карту зарубежного банка. Сервисов сейчас очень много, я проверил один из них (не настаиваю на его использовании) и все работает прекрасно. Комиссии не большие. Это бот в телеграм называется CashInOut https://t.me/Cashinout_bot?start=25933 Обратите внимание на документ, где ведется статистика работы карт выпускаемых в боте на определенных сервисах: https://docs.google.com/spreadsheets/d/e/2PACX-1vS7AFiIXavL8FsZ9ybRI_XhBWesxSN_cpkKTDS0AqD6HKmo1UFT5z1q8lwhY3Hdtem52ZWufNGY-JX3/pubhtml?gid=814411110&single=true Вот такое меню: Вам нужно будет зайти в раздел Виртуальные карты Для выпуска вам нужно иметь на счете 27$ (можно и больше), из них будет списана комиссия: Комиссия: 1.12 USD (4.5%) Сообщения при создании будет примерно таким: Для зачисления средств я выбирал USDT (мне так было удобнее) И все. Я выбирал тип карты виза, и за пару секунд создалась моя виртуальная карта: 3.2. Возвращаемся и вводим данные для регистрации. Первым этапом вам нужно будет ввести свои данные. Вводим реальные (или нет) как хотите. 3.3. Ввод данных карты Как видите, у вас уже будет указан необходимый промокод для бесплатного использования своего лимита. Данные карты вводим с сервиса который рассмотрели в начале пункта. Готово! Поздравляю с регистрацией! PS: Списаний проверочных не будет. 4. Обзор Главная страница представляет из себя дэшборд. Он выглядит достаточно сложный, но из полезного что можно вывести - это информацию по оплате. Остальное опционально. 5. Создание нового сервера. 5.1. Доступные страны: Китай - Гонк-конг СШа - 8 локацией Канада - Торонто Европа: Нидерланды, Германий, Швеция, Италия, Испания, Великобритания Ближний восток - Израиль - 5 локаций Бонусных денег вам хватит чтобы протестировать все страны! 5.2. Выбор ОС. Доступны для выбора все самые популярные ОСи, в т.ч. свежая Ubuntu 24.04 LTS. 5.3. Обзор тарифов (При выборе, очень рекомендую включать опцию Detailed View - чтобы сразу видеть изменения цен.) Тарифная сетка представляет собой выбор из 4 вариантов. Обычно я выбираю такой тариф: Но вы можете успеть попробовать все за месяц. 5.4. Настройка входа по SSH ключу. Одной из особенностей данного провайдера, является (к сожалению) необходимость постоянного ввода своего SSH ключа, при создании сервера. Для этого, нам нужно включить опцию как на скриншоте: 5.5 Последним этапом вводим название своего сервера И видим итоговый расчет стоимости. Обратите внимание, что на почасовом тарифе, трафик не включен в стоимость! После создания сервера, он будет доступен в разделе Servers 5.6. Вот такие действия доступны с серверами. 5.7. Детальная информация по каждому серверу: По каждому серверу на вкладках есть вся необходимая информация. На этом пожалуй все! Приятного использования!3 балла
-
Это третья часть о мониторинге домашней системы с использованием influxdb и grafana первая часть про общую настройку и вторая часть про мониторинг proxmox Вступление Продолжая вопрос мониторинга состояния системы необходимо обсудить еще не маловажный вопрос мониторинга состояния роутеров в вашей системе как один из самых важных и критических элементов системы. В данной заметке рассмотрим вопрос мониторинга роутеров keenetic а в следующей мониторинг роутеров openwrt. Решения для других систем рассматриваться не будут так как я являюсь приверженцем именно этих двух систем и других устройств у меня нет. Все настройки будут выполняться на актуально на текущий момент времени версии KeeneticOS 4.1.3 У кинетика есть достаточно удобное и хорошее API у роутеров из коробки но по умолчанию он закрыт файрволлом, именно используя данное restfull api можно получить всю необходимую нам информацию даже для роутеров без entware. Для решения задачи мониторинга я буду использовать проект https://github.com/vitaliy-sk/keenetic-grafana-monitoring Подробная инструкция по созданию новых корзин и api токенов было разобрано в первой и второй части, так что в данной публикации будет крайний минимум побочной информации. Настройка мониторинга роутера В рассматриваемом решение применяется подход обращения к API или авторизации и использования cli запросов. Я не вижу смысла использовать авторизацию с запросами так как api работает постоянно и не нагружает дополнительно систему в отличии от постоянных запросов через cli. Первым этапом откроем доступ к API на роутере, для подключения из локальной сети не требуется авторизация. Идем в настройки нашего роутера в раздел переадресация портов И создаем новое правило переадресации портов Обратите внимание на подсеть, в моем случае это 192.168.0.1 у вас она может отличаться. Фактически на стороне роутера настройка закончена теперь нам доступно api по адресу http://192.168.0.1:81/rci/show/system Настройка сбора данных в influxDB Теперь приступим к разворачиванию системы, которая будет обращаться к нашему api и пересылать в influxdb. В первую очередь создадим новую корзину данных для хранения в моем случае это keenetic. И создадим custom api токен на запись данных. Особенность сборщика не позволяет разделить данные от нескольких роутеров в одной корзине по hostname по этому для каждого роутера который необходимо мониторить делаем отдельную корзину данных. При копировании API токена проверяем, кнопка может отработать не корректно. Мониторинг запускается в отдельном докер контейнере на любом сервере в сети, в моем случае я буду запускать его на той же виртуальной машине, где у меня запущен influxdb. Я буду размещать файл конфигурации по пути /docker/keentic-monitoring/config.ini для этого создам советующие папки и файл. mkdir /docker mkdir /docker/keentic-monitoring nano /docker/keentic-monitoring/config.ini Заполняем данные в шаблон конфигурационного файла. Указываем адрес базы influxdb, токен, организацию и bucket. [influx2] # If you are using docker-compose it should be http://influxdb:8086 url=http://192.168.0.135:8086 # For influx v1.x please use "-" as a value org=influxdb # For influx v1.x please use "username:password" as a token # See DOCKER_INFLUXDB_INIT_ADMIN_TOKEN in docker-compose.yml token=<Token> timeout=6000 # For influx v1.x DB name bucket=keenetic [keenetic] admin_endpoint=http://192.168.0.1:81 skip_auth=true login=admin password= [collector] interval_sec=30 Запускаем докер контейнер со следующими параметрами Я использую docker compose из интерфейса portainer по этому привожу только файл запуска docker compose. Подробную инструкцию как запустить docker compose из файловой системы легко найти на просторах интернета. version: '3.7' services: keenetic-monitoring: image: techh/keenetic-grafana-monitoring:latest container_name: keenetic-monitoring environment: - TZ=Europe/Moscow volumes: - /docker/keentic-monitoring/config.ini:/home/config/config.ini:ro # Optionally you can override metrics #- ./config/metrics.json:/home/config/metrics.json:ro restart: always Проверяем что данные о системе начали поступать. Для тек у кого что то пошло не так... Если данные не поступают, то необходимо проверить логи вашего контейнера, если есть предупреждение на подобии такого, это значит что универсальный файл с описанием метрик вам не подходит и необходимо добавить еще одну volumes. Должно получиться так: volumes: - /docker/keenetic- monitoring/config.ini:/home/config/config.ini:ro # Optionally you can override metrics - /docker/keenetic- monitoring/metrics.json:/home/config/metrics.json:ro А на сервере по пути указано как конфиг метрик необходимо добавить файл из гит репозитория автора в котором удаляем секцию на которую получаем ошибку, в моем случае это media. https://github.com/vitaliy-sk/keenetic-grafana-monitoring/blob/master/config/metrics.json Внимательно следите за запятыми и кавычками, надо удалить блок целиком не сломав json. Визуализация данных в Grafana Фактически сбор данных на этом полностью закончен, теперь нам необходимо подключить Grafana к новой корзине данных и найти\составить красивый интерфейс. Я у себя использую интерфейс предложенный автором системы сбора данных из кинетика https://grafana.com/grafana/dashboards/12723-keenetic/ Обратите внимание что данная панель составлена под версию influxdb v1 для нее настройки Grafana должны быть выполнены следующим образом В поле HTTP headers value указываем: Token <ТокенНаЧтениеКорзины> Подробнее про настройку смотри первую часть В итоге получаем красивую панель мониторинга состояния роутера P.S. Следующая часть серии публикаций будет посвящена сбору данных с роутеров под управление OpenWRT3 балла
-
Первичную настройку я разбирал уже в первой части так что в этой части будет меньше моментов по настройки самой Grafana и InfluxDB. Первая часть. Вступление, или варианты решения Для мониторинга состояния proxmox у нас есть несколько способов решения задачи. Использовать сам proxmox для отправки данных в influxdb Использовать telegraf для сбора данных через API proxmox и отправки их в influxdb Использовать telegraf для сбора данных хоста proxmox Фактически первые два варианта равнозначны и используют API proxmox которого достаточно для большинства задач, но в нем нет одного важного для меня показателя температура процессора. Подробнее про API proxmox можете почитать тут: https://pve.proxmox.com/wiki/Proxmox_VE_API Обращаться по API из telegraf в моем случае я тоже не вижу смысла так как вся система у меня находится в одной локации, это было бы оправдано если нам необходимо контролировать разрыв связи или собирать данные сразу с нескольких источник. Поэтому я буду использовать комбинацию первого и третьего варианта. Настройка отправки данных из proxmox Для мониторинга состояния proxmox VE нам необходимо создать новую корзину для данных в influxDB для этого заходим в influxDB в раздел Load Data -> Bucket При создании есть возможность выставить как долго хранить данные, я выбрал вариант never так как не вижу проблем в разрастании базы на текущий момент. Теперь необходимо создать токен доступа для корзины, который будет давать права на запись в базу. Переходим в меню управления API токенами и создаем новый custom token Даем права на запись для созданной корзины данных. Сохраняем себе полученный токен Внимание кнопка копирования токена может не сработать, проверяйте перед закрытием. Переходим в proxmox, нас интересует раздел сервер метрик. Создаем новую запись influxDB. Указываем в поле база данных имя корзины, а в поле маркер полученный токен записи. Проверяем что в ifluxBD появились данные. Теперь нам надо еще собирать данные о температуре сервера proxmox не зависимо от api proxmox. Я для этого буду использовать шаблон созданный в прошлый раз для system-monitoring, он доступен в разделе telegraf. Так как это хост система в данном случае я буду использовать пакетный вариант telegraf Подключаемся по ssh или через оболчку proxmox в браузере и устанавливаем пакет. Подробно все расписано в документации по установке тут: https://docs.influxdata.com/telegraf/v1/install/ Обратите внимание что, работая в оболочке proxmox у нас не будет sudo если работать под root Приведу команды установки из-под root пользователя: curl -s https://repos.influxdata.com/influxdata-archive_compat.key > influxdata-archive_compat.key echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | tee /etc/apt/sources.list.d/influxdata.list apt-get update && apt-get install telegraf Актуальные команды всегда будут доступны в официальной документации, просто удалите sudo из команд. Дальше нам необходимо получить нашу конфигурацию system-monitoring, для этого переходим в шаблоны telegraf открываем наш шаблон и копируем от туда токен доступа Закрываем это окно сам файл нам не понадобится, нам нужна инструкция по установке. Возвращаемся в оболочку proxmox и выполняем две команды как расписано в инструкции заменив <InfluxToken> на скопированный ранее токен. Обязательно надо передать ключ сначала отдельной командой для получения доступа к самому шаблону настроек. Но в принципе можно и просто скачать файл и отдать его telegraf как это было с docker вариантом. Проверяем что данные поступают в корзину и Grafana Обратите внимание что Grafana дополнительно настраивать для данной корзины не надо, а для корзины proxmox надо. Для этого переходим в управления токенами API и создаем токен на чтение корзины proxmox для Grafana. Подробно настройку Grafa я разбирал в прошлой публикации, тут приведу только результат настроек. Пример панели proxmox в Grafana Я использовал шаблон: https://grafana.com/grafana/dashboards/15356-proxmox-cluster-flux/ Вместо заключения Спасибо за внимание, в следующих публикациях я разберу так же способы мониторинга состояния роутеров keenetic и openwrt.3 балла
-
Вторая часть про мониторинг proxmox Вступление, или не будем ждать проблем, когда они придут В один не слишком прекрасный день я осознал, что то, что когда-то началось как одна Яндекс.Лайт-станция, за год превратилось в достаточно крупную и сложную распределенную домашнюю систему. В ней участвуют порядка четырех мини-серверов и пяти роутеров, разбросанных по трем локациям, а также нескольких удаленных серверов. В момент прозрения меня посетила мысль: нужно как-то контролировать всю эту инфраструктуру, следить за температурой (ведь лето близко!) и свободными дисковыми и оперативными ресурсами. Изначально, когда я только начинал строить свой умный дом на базе Home Assistant, я старался втянуть в него всё, включая статистику. Однако со временем до меня дошло, что это не очень удобно (на каждой локации статистика собиралась в своем Home Assistant) и не слишком надежно (ведь HA не самая стабильная из всех систем, особенно при установке на базе Armbian). Более того, в умном доме не всегда нужны такие обширные данные, а то, что действительно важно, можно собирать более точечно. Сразу оговорюсь, что я не считаю своё мнение единственно верным в данном вопросе. Большая часть моих знаний по администрированию основана на собственном опыте, который можно сравнить с хождением по граблям. Требования к системе и результаты поиска Мои размышления привели к тому, что я решил развернуть отдельную систему мониторинга для всей домашней инфраструктуры, и начали поиски... Но сначала граничные условия: Использование docker. Я являюсь приверженцем использования docker контейнеров по максимуму так как это позволяет легко и быстро разворачивать и обновлять систему не заботясь о зависимостях. Легковесность. В планах было запустить основной (резервный, но об этом дальше) мониторинг на свободной железке tv-box под управлением armbian c 1Gb ОЗУ. Универсальность. Зоопарк систем не самый впечатляющий но он есть, и не хотелось сильно ограничивать себя в дальнейшем. Гибкость настроек, желательно с возможностью использования шаблонов. Первый мой выбор пал на систему Zabbix, это профессиональный инструмент мониторинга серверов с гибкой настройкой и большим количеством возможностей. Но проблема Zabbix в его перегруженности, да это отличный профессиональный инструмент с большим количеством возможностей. В моих изысканиях я столкнулся со следующими проблемами: Развертывание в докере хоть и описано но работает очень плохо, приведенный вариант docker compose переусложнен и стартует не всегда (пробовал и в виртуалке Debian и на armbian), документация по установке докера хоть и описана но мягко говоря оставляет желать лучшего (не описаны некоторые очень важные параметры запуска docker compose для полноценной работы). Система тяжелая. Изначально я все разворачивал на своей мини машинке armbian и думал что проблема в первую очередь с ней, но даже при переезде на виртуалку с выделенными 2Gb озу Zabbix их съел и просил еще, а в тот момент был подключен только 1 сервер для мониторинга… Усложненные настройки и не самый очевидный интерфейс. Увы но мы живем в эпоху упрощения UI, и сотни настроек и параметров Zabbix для неподготовленного пользователя выглядят страшно. Zabbix agent в докере работает очень странно… Следующим этапом стал новый поиск вариантов реализации, который привел к стеку Telegraf + InfluxDB + Garfana. Скажу сразу данный вариант показался мне более интересным и удобным, не только из за красивой визуализации графаны (которую можно и к Zabbix прикрутить) но скорее из за возможностей InfluxDB. InfluxDB — система управления базами данных с открытым исходным кодом для хранения временных рядов; написана на языке Go и не требует внешних зависимостей. Основной фокус — хранение больших объёмов данных с метками времени, и их обработка в условиях высокой нагрузки на запись Я сразу разворачивал вариант на базе influxDB v2 которая в сравнении с версией 1 про которую написано больше всего материалов в сети намного, прям на очень много интересней. Да и это уже не только база данных а нечто большее… После разворачивания influxDB поднимает web api и интерфейс, в котором можно: Управлять доступом Создавать и управлять корзинами (изолированными базами) Просматривать данные с помощью запросов и конструктора Настраивать уведомления путем запросов (в open source варианте доступно только slack и http из интерфейса, но есть способ отправлять и в телеграмм) Настройка дашбордов для мониторинга данных через запросы (или конструктором) Конструктор настроек для агентов сбора данных с возможностью хранения Красивый интерфейс… ну а куда без этого в наше время. Немного примеров интерфейса: Общая схема работы системы У influxDB в принципе очень хорошая документация, но вот примеры в других источниках в основном рассчитаны все таки на старую версию influxdb v1, в некоторых аспектах это может приводить к сложностям настройки, но в основном обратная совместимость осталась. В принципе все системы мониторинга работают по похожей схеме Host -> Агент -> База данных -> Визуализация. В данной системе influxDB является краеугольным камнем, а для него основной (и рекомендуемый) вариант агента является telegraf. Это удобный и универсальный инструмент который позволяет как собирать данные с текущего устройства так и выступать в роли некоего прокси который будет собирать данные с удаленных устройств и передавать их дальше (сразу в базу или в другие варианты вывода). Grafana используется для визуализации и уведомления по условия, фактически при использовании influxDB v2 явной необходимости в ней уже нет, но под нее еще много удобных шаблонов так что пока пусть будет. Сразу оговорю так как система распределенная я постараюсь уточнять что и где мы устанавливаем, но основная идея следующая: InfluxDB + Grafana установлены на сервере мониторинга (в моем примере 192.168.0.135) Агент для мониторинга серверов linux установлены на каждом наблюдаемом устройстве Агент в роли прокси (для сбора данных с роутеров) установлен на сервере мониторинга (но может быть размещен в любой точке сети) Разворачивание и первоначальная настройка InfluxDB v2 Вступление получилось слишком долгим так что поехали. Начнем с установки influx + Grafana. Для этого использую следующий docker compose шаблон: version: '3.6' services: influxdb: image: influxdb:latest container_name: influxdb restart: always ports: - '8086:8086' volumes: - /docker/influxdb/data:/var/lib/influxdb2 - /docker/influxdb/config:/etc/influxdb2 grafana: image: grafana/grafana container_name: grafana-server restart: always depends_on: - influxdb environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=admin links: - influxdb ports: - '3000:3000' volumes: - grafana_data:/var/lib/grafana volumes: grafana_data: {} Обратите внимание что графана сохраняет свои файлы в volumes а не в монтируемые папки, только в такой вариации у меня получилось запустить ее с монтированием папок на диск. Так же можно использовать дополнительные переменные для инициализации подробнее описано тут: https://hub.docker.com/_/influxdb Но я советую все же для удобства использовать первичную настройку. Запускаем докер контейнер командой и заходим на веб интерфейс influxdb по адресу http://<IP Serever>:8086 Нас встречает приветственное меню Influx для первоначальной настройки Заполняем данные, инициализации. Тут отдельно надо уточнить про поля организации и корзины. Фактически influx делит все ваши данные на изолированные базы на верхнем уровне организации и на более низком уровне корзины bucket, если проводить аналогии с первой версией bucket это старые вариации базы данных, именно в них попадают данные. При сборе данных нам будет важны эти параметры, но bucket можно спокойно создавать и удалять сколько надо из интерфейса. На следующей странице будет токен для api администратора, обязательно его сохраните это важно!!! Обратите внимание кнопка копирования может не сработать! Только с использованием токена можно работать через командную строку с базой, но токен можно сгенерировать новый через веб. В принципе на этом вся настройка закончена… на главной странице есть инструкция как настроить использование influxdb cli (работает через api) и приведены инструкции и ссылки на документацию с видео. Первоначальная настройка Grafana и подключение к InfluxDB Заходим по адресу http://<IP Serever>:3000 где нас встречает окно авторизации. Если не были заданы пароль и пользователь по умолчанию при инициализации то заходим с данными admin\admin и меняем пароль. Для настройки пользователей переходим в раздел Administration – Users and access - Users Для подключения Grafana к influxdb создаем токен доступа к корзине данных. Для этого возвращаемся в influxdb в меню идем Load Data – API Tokens и создаем Custom API Token даем ему право только на чтение (если не собираетесь запросами графаны менять данные) и даете понятное название. Больше нечего давать не надо. Сохраняем себе токен, он понадобиться для настройки Grafana. Обратите внимание кнопка копирования может не сработать!!! Возвращаемся в Grafana и добавляем новый источник данных. Для этого переходим в connections и выбираем новый источник данных influxdb. Вторая версия InfluxDB использует как основной вариант языка запросов flux но многие существующие шаблоны используют старый вариант на базе influxQL, но в самой Grafana при использовании такого варианта нет возможности авторизации по токену, а авторизация во второй версии является обязательной. Для этого необходимо отдельно добавит строку Custom HTTP Headers. Альтернатива использовать логин и пароль для InfluxDB Details, но это не рекомендуемый вариант. Заполняем настройки: Имя советую давать по именам корзин\bucket к которым даете доступ что бы не путаться. В поле url можно указать ip вашего сервера, но лучше использовать вариант с доменным именем контейнера. Авторизацию выключаем Добавляем Custom HTTP Headers в поле Header указываем Authorization в поле value пишем так: Token <ВашТокенДляЧтенияИзInflux> Пробел после Token обязателен В поле database указываем имя корзины HTTP метод GET Ниже пример настроек: Для варианта с языком flux все несколько проще: В поле токен пишем только сам токен без каких-либо дополнений. Фактически настройка самой системы мониторинга на этом закончена дальше необходимо создавать дашборд панели и события, но нам все еще надо собрать данные о системе и с этим нам поможет telegraf. Сбор данных о сервере с помощью telegraf Перед запуском нам надо получить файл telegraf.conf в интернете есть достаточно много примеров о том как его составлять и подробно описаны какие модули есть, но нам на помощь снова придет influxdb v2. Заходим в inffluxdb по адресу http://<IP Serever>:8086, нас интересует пункт меню telegraf Создаем новую конфигурацию и выбираем что хотим собирать и куда складывать данные. В конструкторе изначально есть возможность выбрать только один вариант, после создания есть возможность добавить дополнительные модули или заменить на готовый файл конфигурации. Получим шаблон настроек, который заменяем на нужный нам: Текст шаблона для получения основных показателей: [[inputs.cpu]] percpu = false totalcpu = true collect_cpu_time = false report_active = false # Read metrics about disk usage by mount point [[inputs.disk]] ## By default stats will be gathered for all mount points. ## Set mount_points will restrict the stats to only the specified mount points. mount_points = ["/"] ## Ignore mount points by filesystem type. # ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] [[inputs.diskio]] devices = ["sd?", "nvme?", "nvme?n?"] # Get kernel statistics from /proc/stat #[[inputs.kernel]] # collect = ["psi"] # Provides Linux sysctl fs metrics [[inputs.linux_sysctl_fs]] # no configuration # Read metrics about memory usage [[inputs.mem]] # no configuration [[inputs.nstat]] # interfaces = ["en*", "eth*", "ib*", "wl*"] [[inputs.netstat]] # no configuration # Get the number of processes and group them by status [[inputs.processes]] # no configuration # Read metrics about swap memory usage [[inputs.swap]] # no configuration # Read metrics about system load & uptime [[inputs.system]] # no configuration [[inputs.temp]] # no configuration Сохраняем после замены указав понятное название шаблону. Если мы планируем запускать без докера нам приводится инструкция как все быстро запустить. Копируем себе токен из первого поля все что идет после export INFLUX_TOKEN= Почему мы используем этот вариант для докера если у нас не получиться быстро загрузить конфиг по ссылке? Все очень просто теперь у нас всегда есть заготовленный шаблон конфига в самой системе influxdb. Нажимаем на название конфига и у нас открывается окно с полным шаблоном конфига, нам надо найти секцию [[outputs.influxdb_v2]] и в ней указать token который получили раньше. Формально это не рекомендуется и в продакшен все же так делать не стоит но у нас этот токен и так строго ограничен на запись одной конкретной корзины данных, так что пойдет. Так же в конфиге надо указать hostname в секции [agent] для того что бы корректно различать с какого хоста нам поступили данные. Сохраняем себе конфиг и идем на сервер, который хотим подключить. Нам надо поместить наш полученный файл по пути который указан в докере telegraf в моем примере /docker/telegraf/telegraf.conf Важный момент выходов, как и входов у telegraf может быть несколько в том числе и однотипных. Таким образом мы можем одновременно передавать данные в две базы influxdb или, например публиковать на сервер mqtt для использования в системе умного дома. Я в своей реализацию использую два сервера influxdb для сбора статистики одновременно, один для визуализации второй как резервная статистика на базе armbian tv box. Создаем docker compose файл по шаблону: version: "3" services: watchtower: image: telegraf:latest container_name: telegraf environment: - HOST_ETC=/hostfs/etc - HOST_PROC=/hostfs/proc - HOST_SYS=/hostfs/sys - HOST_VAR=/hostfs/var - HOST_RUN=/hostfs/run - HOST_MOUNT_PREFIX=/hostfs - TZ=Europe/Moscow volumes: - /:/hostfs:ro - /docker/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro После размещения конфига запускаем контейнер и проверяем что данные начали поступать в базу. Для этого идем в influxdb – data explorer Все теперь данные собираются и пишутся в базу, а Grafana уже может эти данные получать и визуализировать. Визуализация данных Покажу визуализацию на примере шаблона https://grafana.com/grafana/dashboards/20762-telegraf-system-metrics/ Чаще всего в шаблонах описано все что нам надо, но в первую очередь обращаем внимание на источник данных если не уточняется то по умолчанию считается что надо источник influx v1 это первый вариант подключения. Идем в меню Grafana пункт Dashboards Создаем новый путем импорта шаблона, можно использовать или номер шаблона или json. Указываем источник, для данного примера нам надо вариант обычный вариант Вот и все мы молодцы и имеем красивую панель мониторинга со всей информацией по серверу Несколько полезных советов по импорту: Если что то не работает в первую очередь проверьте в настройках импортируемого дашборада переменные что они корректно заданы под ваши настройки, иногда шаблоны не самого лучшего качества имеют захардкоженые имена корзин. Если хотите добавить новый блок удобней составлять запрос в Influxdb конструктором и взять от туда готовый вариант запроса для консоли. На этом основные настройки закончены, из Grafana можно настроить уведомления по условиям запросов практически в любой меседжер. Можно бесконечно совершенствовать таблицу или объединять данные с разных серверов на сводную таблицу, возможностей уйма но основная задача данного материала это базовая настройка. В дальнейшем расскажу как настроить мониторинг proxmox и роутеров на базе keenetic и openwrt. Вторая часть про мониторинг proxmox P.S. Делитесь хорошими и удобными панелями для Grafana или influxDB3 балла
-
Я с хайдифи уже давно не работаю) Даже не знаю где там)) Но да, это в правилах роутинга. С ютубом на примере хайдифи тоже сложно подсказать.2 балла
-
РКН сегодня ночью (06.11.2024) заблокировал ЕСН от Cloudflare сделав недоступными все сайты использующие Proxied от CF, а также те же сертификаты с TLS 1.3. На данный момент проблему можно решить тремя путями: Не использовать Российские адреса; Отключить защиту ECH Отключить TLS 1.3 в браузере; Как отключить Cloudflare ECH? Полное отключение TLS 1.3 может быть не совсем безопасным способом. Если блокировки снимут, рекомендую его включить. Отключаем через API запрос: 1. Получение данных для API Cloudflare Чтобы отключить ECH, вам понадобятся Global API Key и Zone ID вашего домена. Global API Key. Перейдите на страницу Cloudflare по следующей ссылке и найдите ваш глобальный API-ключ: https://dash.cloudflare.com/profile/api-tokens Zone ID. Перейдите в управление вашим доменом на Cloudflare и прокрутите вниз страницу. Найдите строку Zone ID и скопируйте её. 2. Отключение ECH через API Cloudflare Теперь, когда у вас есть Global API Key и Zone ID, вы можете отключить ECH с помощью команды curl. Выполните следующую команду, заменив {ID_ZONE} на ваш Zone ID, а {ACCOUNT_EMAIL} и {GLOBAL_API_KEY} на ваш email и API-ключ соответственно: curl -X PATCH "https://api.cloudflare.com/client/v4/zones/{ID_ZONE}/settings/ech" \ -H "X-Auth-Email: {ACCOUNT_EMAIL}" \ -H "X-Auth-Key: {GLOBAL_API_KEY}" \ -H "Content-Type:application/json" --data '{"id":"ech","value":"off"}' Вариант 2: Отключение ECH через Postman Вы также можете выполнить отключение через Postman: 1. В Postman выберите метод PATCH и введите URL: https://api.cloudflare.com/client/v4/zones/{ID_ZONE}/settings/ech 2. В Headers добавьте следующие поля: X-Auth-Email: ваш email-адрес Cloudflare. X-Auth-Key: ваш Global API Key. Content-Type: application/json В Body выберите raw и введите следующий JSON: {"id": "ech", "value": "off"}2 балла
-
Способ 1 (для всех ОС) Это самый простой способ. Копируем ссылку на видео. Заходим в Discord, создаем группу с самим собой (можно использовать Discord-сервер). Кидаем в чат ссылку, нажимаем на вложение и смотрим - профит! Способ 2 (для всех ОС) Внимание!! Будет реклама! Нужен VPN. Создайте свой, либо используйте бесплатный, коих полно в интернете. Подключаемся к VPN. Открываем YouTube, смотрим в максимальном качестве. Способ 3 (только для Windows) Это самый удобный и заморочный способ. Качаем GoodbyeDPI с GitHub. Распаковываем архив. В адресной строке браузера пишем: chrome://flags. В поиске пишем kyber, в выпадающем меню выставляем Disabled, закрываем браузер. В папке GoodbyeDPI запускаем 1_russia_blacklist.cmd от имени администратора. Если запуск успешен, вы увидите «Filter activated, GoodbyeDPI is now running!» Заходим на YouTube и проверяем работу. Если мешает окно cmd, в папке GoodbyeDPI запускаем service_install_russia_blacklist.cmd от имени администратора. Скрипт установит программу в автозагрузку. Если ничего не поменялось, и Вы не выполняли пункт 8, закрываем окно cmd, в папке GoodbyeDPI запускаем 1_russia_blacklist_dnsredir.cmd от имени администратора, выполняем пункт 6. Это перенаправит запросы к YouTube через защищенный DNS. Если мешает окно cmd, запускаем service_install_russia_blacklist_dnsredir.cmd, выполняем пункт 6. Это перенаправит запросы к YouTube через защищенный DNS. Если Вы выполнили пункт 8 или 10 и хотите удалить программу, запускаем service_remove.cmd от имени администратора, затем перезагружаем комп. Это полностью удалит службу из системы. Способ 4 (Android) UPD от 06.08.2024: на Android можно скачать YouTube ReVanced и смотреть в нем, приложение режет рекламу, поэтому подойдет для просмотра через VPN. Ссылка на скачивание с 4pda (не реклама), root не требуется. В стоке работает не у всех, лично у меня – нет. UPD 2 от 06.08.2024: @CO_PY, приветствую, спасибо за наводку! Способ 5 (только для Android) Удобный и быстрый способ. Качаем ByeDPIAndroid с GitHub, устанавливаем. Запускаем, нажимаем на кнопку «Connect», даем разрешение на подключение к VPN. Запускаем YouTube и смотрим – профит! По умолчанию прога создает self-hosted VPN и меняет IP-адрес DNS-сервера на 9.9.9.9 на случай, если провайдер спуфит DNS. В настройках рекомендую выбрать "Desync only HTTPS and TLS", дабы не ломать полезный трафик, но, если "не горит", можно не ставить. Если не работает, попробуйте поменять режим "VPN" на "Proxy" в настройках приложения, у меня заработало в стоке. UPD 3 от 07.08.2024: Способ 6 (Linux, macOS) Еще один быстрый и удобный способ. Открываем "Терминал". Если у Вас Linux (не macOS, это важно) – вводим команду для определения архитектуры: dpkg --print-architecture Если у Вас Mac на intel: curl -fsSL https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s darwin-amd64 Если у Вас Mac на Apple Silicon (M1, и т.д): curl -fsSL https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s darwin-arm64 Если у Вас Linux на amd64: curl -fsSL https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s linux-amd64 Если у Вас Linux на arm: curl -fsSL https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s linux-arm Если у Вас Linux на arm64: curl -fsSL https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s linux-arm64 Эти команды скачают и запустят скрипт установки SpoofDPI. Папка установки по умолчанию: ~/.spoof-dpi/bin Если установка успешна, вы увидите "Successfully installed SpoofDPI". Далее, вводим команду: export PATH=$PATH:~/.spoof-dpi/bin Она добавит переменную окружения для запуска SpoofDPI в любой папке. Вводим команду: spoof-dpi Если все прошло успешно, вы увидите "SPOOFDPI". Поздравляю, все работает! Если у вас Mac, и, после ввода spoof-dpi Вам выдало ошибку "bad CPU type in executable: spoof-dpi", установите Rosetta командой softwareupdate --install-rosetta --agree-to-license После установки Rosetta повторите запуск SpoofDPI. UPD 4 от 08.08.2024: радостная новость для владельцев Яблока! Способ 7 (iOS, macOS) Без VPN и команд. Открываем AppStore и скачиваем BluePlayer – аналог YouTube ReVanced. Приложение поддерживает все возможности YouTube Premium и Spotify, не имеет рекламы, есть Chromecast. UPD 5 от 11.08.2024: еще способы для владельцев Яблока. Способ 8 (iOS, macOS) Простой и быстрый способ. Качаем Unicorn HTTPS из AppStore. Запускаем приложение, нажимаем на переключатель, устанавливаем предложенный конфиг. Запускаем YouTube и смотрим! Unicorn HTTPS – это аналог ByeDPIAndroid, только для iOS. Приложение бесплатное, без рекламы. Настройки, по сравнению с ByeDPIAndroid, примерно идентичны. Способ 9 (iOS, macOS) Неудобный способ. Запускаем Safari, переходим в «Дополнения» -> Experimental Features, выбираем HTTP3. Заходим на YouTube и смотрим. Неудобен способ тем, что смотреть придется в браузере. UPD от 15.08.2024: способ для тех, кто хочет «поставить и забыть». Способ 10 (Windows, macOS, Android) Этот способ может не работать на некоторых провайдерах, либо не работать вовсе! Быстрый и удобный способ. Нужна полная версия программы! Стоит дешевле чашки кофе – 50 руб/мес. Заходим на сайт adguard.com, выбираем свою систему из списка и скачиваем установщик. Для захода на сайт нужен VPN, после скачивания установщика его можно выключить. Если у Вас Windows или macOS: Устанавливаем программу, проходим быструю настройку, открываем меню «настройки» сверху окна программы. Выбираем вкладку «Антитрекинг», включаем переключатель, листаем в самый низ меню. Включаем пункт «Защита от DPI», заходим на YouTube и смотрим! Если у Вас Android: Устанавливаем приложение, проходим быструю настройку, нажимаем на щит снизу. Выбираем вкладку «Защита от трекинга», уровень защиты – пользовательский, листаем в самый низ меню. Включаем пункт «Защита от DPI», заходим в приложение YouTube и смотрим! Если у Вас нет пункта «Защита от DPI» - обновите AdGuard. UPD от 21.08.2024: про способы для ТВ тоже не забыл. Как скинуть и установить .apk на Android TV Передача файлов: Поддерживаются любые типы файлов, не только .apk. Качаем Send Files to TV из Google Play, устанавливаем на телефон и ТВ. Выбираем свой ТВ из списка и отправляем файлы! Установка приложений: Качаем FX File Explorer из Google Play на ТВ. Можно использовать любой совместимый файловый менеджер. Запускаем, находим нужный .apk, устанавливаем. Способ 11 (Android, Android TV) Способ для телефонов и ТВ. Если у Вас Android: Качаем PowerTunnel с GitHub, устанавливаем. Запускаем, нажимаем на кнопку «Connect», даем разрешение на подключение к VPN. Запускаем YouTube и смотрим! Если у Вас Android TV: Кидаем .apk на ТВ и устанавливаем. Запускаем, нажимаем на кнопку «Connect», даем разрешение на подключение к VPN. Запускаем YouTube и смотрим! Если у Вас все равно не работает YouTube – проверьте, чтобы в настройках PowerTunnel был включен плагин «LibertyTunnel» и «DNS Resolver». UPD от 24.08.2024: еще способ для ТВ. Способ 12 (только Android TV) Способ для ТВ без использования VPN. Android-телефоны, LG Web OS, Samsung Tizen – НЕ ПОДДЕРЖИВАЮТСЯ!! SmartTube не существует ни в одном магазине приложений, установка только с GitHub, будьте внимательны!! Скачиваем .apk, кидаем на телевизор, устанавливаем. Запускаем, даем нужные разрешения. Смотрим! Для обновления SmartTube зайдите в меню «О программе», не нужно его переустанавливать. SmartTube – аналог YouTube ReVanced для Android TV. Приложение режет рекламу, подойдет для просмотра через VPN. UPD от 31.08.2024: способ в два клика. Способ 13 (Для всех ОС) Быстрый способ. Будет реклама, так как это всего лишь web-прокси. Переходим на сайт, вставляем ссылку на видео. Смотрим! Внимание!! Входите в google-аккаунт через прокси на свой страх и риск!! UPD от 08.09.2024: еще один способ без рекламы. Способ 14 (Для всех ОС) Способ без рекламы. В этом способе описана только подготовка VDS. Берем VDS на любом хостинге в локации «Россия». Подключаемся под root, меняем пароль на свой командой passwd. Вас попросят ввести пароль два раза. Не ставьте простой пароль, иначе Ваш VDS взломают!! Подготавливаем систему: Если у Вас Ubuntu или Debian: apt update -y && apt upgrade -y apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" apt install -y docker-ce docker-ce-cli containerd.io docker-compose systemctl enable docker && systemctl start docker docker run hello-world Если у Вас CentOS: yum update yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install docker-ce docker-ce-cli containerd.io sudo systemctl enable docker && sudo systemctl start docker docker run hello-world Если Вам не выдало никаких ошибок, система готова к дальнейшей установке VPN. Далее все зависит от Ваших потребностей, в этом разделе есть инфа. На форуме есть клубы, где все описано подробно. Для получения доступа нужна подписка. UPD от 14.09.2024: гайд для тех, у кого перестал работать GoodbyeDPI. Восстановление работы GoodbyeDPI Если не устанавливали программу как службу (не выполняли пункт 8 или 10 из способа 3): Открываем 1_russia_blacklist.cmd в текстовом редакторе, в строке start "" goodbyedpi.exe -5 --blacklist ..\russia-blacklist.txt меняем -5 на -1 или -7, сохраняем изменения. Запускаем 1_russia_blacklist.cmd от имени администратора, проверяем работу YouTube! Если устанавливали программу как службу (выполняли пункт 8 или 10 из способа 3): Запускаем service_remove.cmd от имени администратора, перезагружаем комп. Это удалит GoodbyeDPI с нерабочей конфигурацией. Открываем service_install_russia_blacklist.cmd в текстовом редакторе, в строке sc create "GoodbyeDPI" binPath= "\"%CD%\%_arch%\goodbyedpi.exe\" -5 --blacklist \"%CD%\russia-blacklist.txt\"" start= "auto" меняем -5 на -1 или -7, сохраняем изменения. Запускаем service_install_russia_blacklist.cmd от имени администратора, перезагружаем комп, проверяем работу YouTube! UPD от 19.09.2024: новый релиз GoodbyeDPI со встроенным фиксом YouTube. Скачиваем релиз, распаковываем архив. Запускаем 1_russia_blacklist_YOUTUBE.cmd от имени администратора. Проверяем работу YouTube. Если не сработало, запускайте 1_russia_blacklist_YOUTUBE_ALT.cmd от имени администратора. UPD от 22.09.2024: еще один фикс для GoodbyeDPI. Восстановление работы GoodbyeDPI 2 Заходим на сайт, выбираем 116 цифр и один результат. Открываем в текстовом редакторе тот файл, который запускаете, например, 1_russia_blacklist.cmd, после строки "sc create "GoodbyeDPI" binPath = "%CD%\%_arch%\goodbyedpi.exe\" ставим пробел, вставляем -9 -e1 -q --fake-gen 29 --fake-from-hex ВАШИ_ЦИФРЫ_ИЗ_ГЕНЕРАТОРА и сохраняем изменения. Это все должно быть в до ключевого слова "--blacklist" Запускаем GoodbyeDPI и проверяем работу YouTube. UPD от 26.09.24: задушили ByeDPIAndroid. Восстановление работы ByeDPIAndroid Заходим на GitHub разработчика, скачиваем релиз с тегом «Latest». Не удаляя старую версию, устанавливаем новую. Запускаем ByeDPIAndroid, нажимаем на кнопку «Connect». Проверяем работу YouTube! Для дополнительных настроек нажимаем на шестеренку в правом верхнем углу, затем выбираем пункт UI editor. UPD от 15.10.2024: краткий обзор ситуации. SpoofDPI больше не работает, ждем фикса от разраба. У меня перестал работать ByeDPIAndroid и GoodbyeDPI, даже с фиксами из способов от 19.09.2024 и 22.09.2024. Все остальное работает без изменений (пока что)2 балла
-
Привет. Делал все по инструкции на самом кенетике выполняя каждый пункт. Все завелось с первого раза и заработало. Пытался zapret установить на роутер ксяоми под openwrt и чет не смог реализовать плюнул до лучших времен. Из apk под андроид хорошо работает DPI Tunnel при наличии root-прав.2 балла
-
Браузерные расширения для "ускорения YouTube" могут представлять угрозу. НЕ УСТАНАВЛИВАЙТЕ ИХ!! Почему? Объясняю: Доступ к данным НА ВСЕХ САЙТАХ – могут украсть Ваш логин, а потом начать брутфорс. Нет информации о разработчике. При включении расширения Google выдает предупреждение о подозрительной активности. Кто знает, что у расширения "под капотом"?. Много отзывов о нерабочем расширении. Если уже установили – удалите и поменяйте пароли на сайтах, не испытывайте судьбу! Предупрежден – значит вооружен2 балла
-
UPD 4 от 08.08.2024: радостная новость для владельцев Яблока! Способ 7 (iOS, macOS) Без VPN и команд. Открываем AppStore и скачиваем BluePlayer – аналог YouTube ReVanced. Приложение поддерживает все возможности YouTube Premium и Spotify, не имеет рекламы, есть Chromecast2 балла
-
UPD 3 от 07.08.2024: Способ 6 (Linux, macOS) Еще один быстрый и удобный способ. Открываем "Терминал". Если у Вас Linux (не macOS, это важно) – вводим команду для определения архитектуры: dpkg --print-architecture Если у Вас Mac на intel: curl -fsSL https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s darwin-amd64 Если у Вас Mac на Apple Silicon (M1, и т.д): curl -fsSL https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s darwin-arm64 Если у Вас Linux на amd64: curl -fsSL https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s linux-amd64 Если у Вас Linux на arm: curl -fsSL https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s linux-arm Если у Вас Linux на arm64: curl -fsSL https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s linux-arm64 Эти команды скачают и запустят скрипт установки SpoofDPI. Папка установки по умолчанию: ~/.spoof-dpi/bin Если установка успешна, вы увидите "Successfully installed SpoofDPI". Далее, вводим команду: export PATH=$PATH:~/.spoof-dpi/bin Она добавит переменную окружения для запуска SpoofDPI в любой папке. Вводим команду: spoof-dpi Если все прошло успешно, вы увидите "SPOOFDPI". Поздравляю, все работает! Если у вас Mac, и, после ввода spoof-dpi Вам выдало ошибку "bad CPU type in executable: spoof-dpi", установите Rosetta командой: softwareupdate --install-rosetta --agree-to-license После установки Rosetta повторите запуск SpoofDPI2 балла
-
О! Вот спасибо за разъяснение по настройке. А то я включил, а интернет вообще пропал на смартфоне) Вместо прокси поставил vpn и галочку в пункте Desync only HTTPS and TLS и заработало!2 балла
-
UPD 2 от 06.08.2024: @CO_PY, приветствую, спасибо за наводку! Способ 5 (только для Android) Удобный и быстрый способ. Качаем ByeDPIAndroid с GitHub, устанавливаем. Запускаем, нажимаем на кнопку «Connect», даем разрешение на подключение к VPN. Запускаем YouTube и смотрим – профит! По умолчанию прога создает self-hosted VPN и меняет IP-адрес DNS-сервера на 9.9.9.9 на случай, если провайдер спуфит DNS. В настройках рекомендую выбрать "Desync only HTTPS and TLS", дабы не ломать полезный трафик, но, если "не горит", можно не ставить. Если не работает, попробуйте поменять режим "VPN" на "Proxy" в настройках приложения, у меня заработало в стоке2 балла
-
Всем привет! Понравилась мне тема с отправкой уведомлений состояния в телеграм, и после одной ситуации, когда контейнер неожиданно не запустился, сделал для себя такую реализацию сервиса. https://github.com/DigneZzZ/monny-docker/ При установке вам необходимо будет ввести TelegramBotID и ChatID. ChatID это место куда бот будет писать сообщения. В моем случае это отдельный Канал (только для меня) где сидят мои боты и шлют уведомления при необходимости. Сервис установит автоматически все необходимые зависимости для работы Python скрипта. Чтобы посмотреть перечень доступных команд: monny help Чтобы удалить сервис из системы: monny uninstall Чтобы остановить сервис (если вдруг вам спамит слишком много, например, в случае долго рестарта): monny stop Чтобы запустить: monny start В принципе на это основной функционал заканчивается Если понравилось и хотели бы еще увидеть возможность выбирать контейнеры для мониторинга, пишите постараюсь реализовать. Установка: bash <(curl -L -s https://raw.githubusercontent.com/DigneZzZ/monny-docker/main/setup_monny.sh)2 балла
-
https://github.com/mag37/dockcheck Проверка Docker контейнеров на наличие обновлений. Скрипт может просто уведомлять в том числе и в телеграм или сразу обнавлять контейнеры.2 балла
-
Вступление, или немного о том зачем и почему В моей домашней системе за последнее время накопилось значительное число сервисов, для того что бы их использовать в какой то момент стало банально не удобно и не рационально использовать доступ по http и порту. Кроме того существует ряд сервисов которое в принципе не будут работать без использования шифрования. Первоначально в моей системе использовался реверс прокси nginx proxy manager с бесплатными duckdns адресами. Со временем я перешел на использование своего домена. Важной особенностью моего сценария использования являлось то что реверс прокси использовалось только внутри локальной\впн сети и не имело внешнего доступа на 80/443 порту в сеть. Для получения сертификата обычными средствами необходимо что бы сервер мог оставить запись на 80 порту, но такой сценарий не выполним если у вас нет белого ip или возможности пробросить порты. Сценарий со временным открытием портов для обновления так же мной был признан не самым удобным по причине того что можно банально забыть. Благо для такого есть решение под названием dns challenge. При использовании такого метода подтверждения подлинности сайта выполняется путем изменения dns записи с использованием api. Такой сервис предоставляет ряд провайдеров dns, из подходящих под мои задачи это cloudflare и duckdns. Для использования многих сервисов cloudflare таких как api и защита от ddos не обязательно покупать у них домен, достаточно просто перенести управление в cloudflare. Все бы было хорошо система работала с использованием nginx proxy manager, а для внешнего доступа к ресурсам использовалась встроенная публикация сервисов keenetic. Но в один не особо прекрасный момент использования реверс прокси я столкнулся с проблемой что перестали обновляться автоматически сертификаты. Проблема как оказалось достаточна старая и исправления к ней полноценного не было, да и сам npm как по мне казался несколько избыточным и перегруженным для моего сценария использования. Таким образом началось изучение альтернативных решений для организации реверс прокси. Две самые популярные альтернативы из доступных решений это traefik и caddy. traefik - это достаточно интересное и универсальное решение, но оно в первую очередь делает упор на динамически изменяемые системы. Очень хорошо работает с докер контейнерами путем установки настроек в метках контейнеров. Но в моем кейсе использования динамическое масштабирование не планировалось и существовало много сервисов которые были запущены без использования докера. caddy в свою очередь является очень легким в настройке сервисом с большим количеством различных модулей на все случаи жизни. Единственным минусом можно выделить отсутствие интерфейса для настройки, все настройки задаются в файле (но об этом дальше). В данной статье я не планирую проводить сравнение возможностей traefik и caddy подобных сравнений на просторах сети достаточно, для моей задачи больше подошел caddy. Все дальнейшее развертывание будет показано с использованием docker-compose. Запуск контейнеров и сборка контейнеров выполнялась в portainer, но вы можете просто создать свой docker-compose файл и запустить без использования portainer. Базовый вариант настройки Сaddy Отдельно стоит отметить что сам по себе caddy крайне легковесный но и ограниченный в функционале, значительная часть возможностей предложена в дополнительных модулях. Эти модули можно как добавлять самому при сборке докер контейнера или при запуске apt пакета так и использовать готовые сборки docker с включенными модулями. На самом деле настройка реверс прокси в Caddy это крайне простая задача. Запустим докер контейнер с использованием следующего docker-compose version: '3.8' services: caddy: image: 'slothcroissant/caddy-cloudflaredns:latest' container_name: caddy restart: unless-stopped ports: - '80:80' - '443:443' environment: ACME_AGREE: true CLOUDFLARE_API_TOKEN: "aaaaaaaaadssssssssssssssssss" CLOUDFLARE_EMAIL: "asdasdasd@gmail.com" volumes: - /docker/caddy/data:/data - /docker/caddy/config:/config - /docker/caddy/Caddyfile:/etc/caddy/Caddyfile В данном примере использован готовый caddy контейнер для получения сертификатов с использованием dns challenge cloudflare. Так же существуют готовые сборки для других провайдеров например вот тут предложена неплохая подборка самых распространенных сборок. Для получения с сертификата через dns chelenge необходимо создать api ключ на cloudflare, подробней об этом приведено тут. Теперь создадим файл конфигурации на основании которого будет работать наш сервер. Этот файл называется Caddyfile он не имеет расширения и должен располагаться по пути /docker/caddy/Caddyfile (для данного варианта docker-compose). nextcloud.mydomain.ru { tls myemail@gmail.com { dns cloudflare {env.CLOUDFLARE_API_TOKEN} } reverse_proxy 192.168.0.101:1234 } Фактически у нас есть всего две секции tls и reverse_proxy. Секция tls отвечает за получение сертификата, email можно не указывать он необходим для получения напоминаний от acme о продлении сертификатов. Секция reverse_proxy описывает сами правила переадресации, для подавляющего большинства сервисов такого варианта настройки будет достаточно, но бывают исключения например vaultwarden. vaultwarden.mydomain.ru { tls myemail@gmail.com { dns cloudflare {env.CLOUDFLARE_API_TOKEN} } reverse_proxy 192.168.0.132:10380 { header_up X-Real-IP {remote_host} } } Обычно если сервис требует особых настроек для реверс прокси в документации приводятся примеры для самых популярных решений, в том числе и caddy. Для применения изменений необходимо перезапустить докер контейнер. На этом простой вариант настройки caddy закончен, если вы не планируете использовать его для публикации в интернет то можно использовать как есть и наслаждаться. Главное не забыть правильно указать dns записи. Если в настройках доменов в cloudflare указать внутренний ip например 192.168.0.132 тогда при использовании их dns можно обойтись без перезаписи и ходить только внутри своей локальной сети по https. А теперь все становиться чуточку сложнее... настройка Caddy для публикации в интернет Для использования fail2ban нам необходимо настроить правильное и удобное логирование в caddy. Сам по себе caddy формирует логи в формате json которые в принципе достаточно удобно парсятся но с ними не очень удобно работать для fail2ban, в таком случаем нам на помощь приходит модуль transform-encoder данный модуль позволяет указать шаблон форматирования для логов. Готового решения докер контейнера caddy-dns/cloudflare и caddyserver/transform-encoder увы найти мне не удалось так что будем создавать свой докер образ. Для этого нам понадобиться следующий Dockerfile. FROM caddy:builder AS builder RUN xcaddy build \ --with github.com/caddy-dns/cloudflare \ --with github.com/caddyserver/transform-encoder \ --with github.com/abiosoft/caddy-exec FROM caddy:latest COPY --from=builder /usr/bin/caddy /usr/bin/caddy Dockerfile размещаем в той же папке где и наш docker-compose файл со следующим содержимым version: '3.9' services: caddy: image: caddy-cloudflare-transform:latest build: context: . dockerfile: ./Dockerfile container_name: caddy restart: unless-stopped cap_add: - NET_ADMIN ports: - 80:80 - 443:443 environment: ACME_AGREE: true CLOUDFLARE_API_TOKEN: "aaaaaaaaassdsadfasfasf" CLOUDFLARE_EMAIL: "myemail@gmail.com" DOMAIN: mydomain.ru volumes: - /docker/caddy/data:/data - /docker/caddy/config:/config - /docker/caddy/logs:/logs - /docker/caddy/Caddyfile:/etc/caddy/Caddyfile Или можно воспользоваться моим собранным образом размещенным в репозитории https://github.com/Deniom3/caddy-cloudflare-transform Тогда docker-compose файл будет иметь вид version: '3.9' services: caddy: image: ghcr.io/deniom3/caddy-cloudflare-transform:latest container_name: caddy restart: unless-stopped cap_add: - NET_ADMIN ports: - 80:80 - 443:443 environment: ACME_AGREE: true CLOUDFLARE_API_TOKEN: "aaaaaaaaassdsadfasfasf" CLOUDFLARE_EMAIL: "myemail@gmail.com" DOMAIN: mydomain.ru volumes: - /docker/caddy/data:/data - /docker/caddy/config:/config - /docker/caddy/logs:/logs - /docker/caddy/Caddyfile:/etc/caddy/Caddyfile Отдельно обращаю внимание на environment DOMAIN она нам нужна для более простого (и безопасного) формирования Caddyfile. Создадим Caddyfile с такой структурой: (common) { header /* { -Server } } (cloudflare) { import common tls { dns cloudflare {env.CLOUDFLARE_API_TOKEN} } } (local) { @allowed remote_ip 192.168.0.0/24 handle { respond 401 } } { log access-log { include http.log.access output file /logs/access.log { roll_keep_for 48h } format transform `{ts} {request>headers>X-Forwarded-For>[0]:request>remote_ip} {request>host} {request>method} {request>uri} {status}` { time_format "02/Jan/2006:15:04:05" } } } jackett.{env.DOMAIN} { import local import cloudflare log handle @allowed { reverse_proxy 192.168.0.134:9117 } } home-assistant.{env.DOMAIN} { import cloudflare log reverse_proxy 192.168.0.125:8123 } vaultwarden.{env.DOMAIN} { import cloudflare log reverse_proxy 192.168.0.132:10380 { header_up X-Real-IP {remote_host} } } Пройдемся немного по блокам что бы понимать для чего каждый из них нужен. Секции которые объявляются в скобках () являются импортируемым, это настройки которые мы определяем один раз и можем использовать для наших остальных настроек путем вызова через import. При этом каждый такой блок может импортировать в себя другие, тем самым создавая сложные структуры. Секция common отвечает за удаление из ответа сервера имени сервера в нашем случае Caddy, это небольшая перестраховка для того что бы злоумышленники не могли по виду сервера использовать его уязвимости. Секция cloudflare отвечает за настройки получения сертификата с использованием dns challenge. Секция local служит для ограничения доступности к опубликованному сайту. В remote_ip указываются подсети или ip для которых доступ должен быть РАЗРЕШЕН, все остальные будут блокироваться и получать ответ указанный в handle respond в данном случае 401. Эта секция позволяет нам разделить и использовать один реверс прокси для внешней публикации и внутренней локальной сети. Еще одна важная секция необходимая для работы f2b это секция описания логов и их преобразования. Переопределение настроек логирования без указания конкретных hostname применяет эту настройку на все. В данном примере файл храниться в /logs/access.log внутри контейнера который соответствует на сервере /docker/caddy/logs Логи будут храниться 48 часов. Теперь рассмотрим более подробно добавление конкретных сайтов, если нам надо использовать реверс прокси только для локальной сети используем import local и запись как на примере с jackett, при этом домен можно подставлять путем автозамены как в примере, так как мы его передавали в переменные окружения при запуске контейнера. Если нам надо что бы наш реверс прокси пускал не только с ограниченного списка сетей то используем запись как в примере home-assistant, тут у нас нет секции local и простая запись reverse_proxy без проверки допустимых сетей. Если для сайта необходимо включить fail2ban обязательно указываем что должны вестись логи путем добавления записи log. На этом основная настройка закончена, прокидываем 443 порт с роутера на наш сервер через переадресацию портов и наслаждаемся нашествием китайских ботов. Кыш ботнет, или настройка f2b в докере для caddy Для своей работы f2b использует логи которые предоставляют другие сервисы, на предыдущем этапе мы настроили логи caddy для их использования с f2b теперь запустим сам docker контейнер с f2b. version: "3.9" services: fail2ban: image: crazymax/fail2ban:latest container_name: fail2ban network_mode: host cap_add: - NET_ADMIN - NET_RAW environment: F2B_LOG_LEVEL: INFO F2B_LOG_TARGET: STDOUT F2B_DB_PURGE_AGE: 1d volumes: - /docker/fail2ban/data:/data - /docker/caddy/logs/access.log:/docker/caddy/logs/access.log:ro restart: unless-stopped Обязательно даем право на чтение файла логов доступа caddy - /docker/caddy/logs/access.log:/docker/caddy/logs/access.log:ro Если данного файла еще нет то может возникнуть ошибка в работе так как docker создаст вместо файла папку с именем access.log Для исправления необходимо зайти на несколько сайтов через реверс прокси и проверить что логи создаются. Теперь настроим параметры работы f2b В папке /docker/fail2ban/data/filter.d размещаем файл caddy-custom.conf со следующими настройками. При такой настройке все обращения которые получили ответ 401 будут попадать в бан лист. # data/filter.d/caddy-custom.conf [Definition] # catch all lines that terminate with an unauthorized error failregex = <HOST> \S+ \S+ \S+ (401)$ ignoreregex = В папке /docker/fail2ban/data/jail.d файл caddy.conf [caddy] backend = auto enabled = true chain = FORWARD protocol = tcp port = http,https filter = caddy-custom maxretry = 3 bantime = 86400 findtime = 43200 logpath = /docker/caddy/logs/access.log ignoreip = 192.168.0.0/24 Запись ignoreip служит для того что бы наша локальная сеть в случае каких то ошибок с нашей стороны не улетела в бан. Перезапускаем контейнер и наслаждаемся спокойной жизнью. Но это не точно.... Подсказки и заметки на полях Некогда не удаляет файл логов при работе caddy, в некоторых случаях система может повести себя крайне не адекватно и файл больше не создастся. Если это необходимо перед удалением обязательно останавливать контейнер. Ротация логов настраивается отдельно в Caddyfile Для того что бы разбанить кого то в f2b при использовании в докере нам необходимо для стандартных команд добавлять команды по обращению внутрь контейнера: Выводим статус fail2ban docker exec -it fail2ban fail2ban-client status Выводим статус конкретной цепочки (имя цепочки берётся из Jail list предыдущей команды) docker exec -it fail2ban fail2ban-client status ИМЯ_ИЗ_JAIL_LIST Разблокируем требуемый IP-адрес из соответствующей цепочки docker exec -it fail2ban fail2ban-client set ИМЯ_ИЗ_JAIL_LIST unbanip IP_ДЛЯ_РАЗБЛОКИРОВКИ Для случая с использованием caddy команда разбана будет выглядеть так docker exec -it fail2ban fail2ban-client set caddy unbanip IP_ДЛЯ_РАЗБЛОКИРОВКИ Спасибо за внимание2 балла
-
Введение В этой статье мы рассмотрим, как настроить автоматическое резервное копирование данных с использованием Rclone и Cloudflare R2. Мы создадим bash-скрипт, который будет создавать архив, загружать его в Cloudflare R2 и отправлять уведомления через Telegram. Также добавим этот скрипт в crontab для регулярного выполнения каждые 4 часа. Все это будет создавать архивы нашего мэйн сервера Marzban. Что такое Rclone? Rclone – это клиент командной строки для обеспечения работы и синхронизации файлов и директорий с облачными хранилищами. Облачный провайдер поддерживает множество, включая Amazon S3, Google Drive, Dropbox, и, конечно, Cloudflare R2. Rclone используется для резервного копирования файлов, синхронизации файлов между различными облачными и локальными хранилищами. Различные функции Rclone включают: Synchronization – синхронизация файлов между локальными хранилищами и облачными провайдерами. Copy – копирование файлов между различными папками облачного хранилища. Шифрование – шифрование файлов. Automator – работа по расписанию с использованием скриптов и crontab. Поддержка облачных провайдеров: Amazon S3, Google Drive, Dropbox, OneDrive, Cloudflare R2 и других. Что такое Cloudflare R2? Cloudflare R2 – это хранилище объектов, предоставляемое облачной службой безопасности Cloudflare. Оно предназначено для хранения больших объемов данных с минимальными затратами и высокой производительностью. R2 предоставляет доступ к данным через API, совместимый с S3, что позволяет использовать такие инструменты, как Rclone, для управления файлами. Преимущества Cloudflare R2: Низкие затраты: отсутствие платы за исходящий трафик. Высокая производительность: быстрая доставка контента благодаря глобальной сети Cloudflare. Совместимость с S3: возможность использования существующих инструментов и скриптов для работы с данными. 10ГБ пространство доступно на каждом аккаунте (в сумме всех бакетов) Настройка Cloudflare R2 К сожалению, первым делом, даже чтобы воспользоваться бесплатно, вам нужно будет привязать банковскую карту к своему аккаунту CF. РФ карты не принимает. НО без проблем принимает карты от Cashinout, сервис который я упоминал в этой статье: Вы можете сделать хитро. Оформить карту в Cashinout, пройти верификацию в CF, а затем удалить свою карту (деньги находящиеся на ней вернутся на ваш счет аккаунта Cashinout) Для начала работы с Cloudflare R2 выполните следующие шаги: Создайте аккаунт Cloudflare: Зарегистрируйтесь на сайте Cloudflare и войдите в свой аккаунт. (этот шаг я пропускаю, понимая что у вас он уже есть) Создайте R2 хранилище: В панели управления Cloudflare перейдите в раздел R2. Создайте новый бакет, указав его имя и настройки. Создайте API токен: Перейдите в раздел API Tokens. Нажмите кнопку Create Token. Выберите Введите имя и укажите параметры так как на скриншоте Нажмите Create Token и сохраните ваш токен. (можете пока просто не закрывать окно) Установка и настройка Rclone Установка и настройка Rclone Установите Rclone: curl https://rclone.org/install.sh | sudo bash Настройте Rclone: rclone config Следуйте инструкциям для создания нового удаленного подключения: n) New remote name> s3cf Type of storage to configure. Enter a string value. Press Enter for the default (""). Storage> s3 AWS Access Key ID> YOUR_CLOUDFLARE_ACCESS_KEY AWS Secret Access Key> YOUR_CLOUDFLARE_SECRET_KEY Region to connect to. Enter a string value. Press Enter for the default (""). region> Endpoint for S3 API. Optional. Use an empty string for the default endpoint. Enter a string value. Press Enter for the default (""). endpoint> https://<account-id>.r2.cloudflarestorage.com AWS Access Key ID> YOUR_CLOUDFLARE_ACCESS_KEY AWS Secret Access Key> YOUR_CLOUDFLARE_SECRET_KEY Эти параметры мы получаем из нашего окна с API ключами CF. Когда нужно будет указать в последнем этапе endpoint, вы можете взять их из настроек бакета. openode (из моего примера) вводить не нужно! Готово! Чтобы проверить подключение, вы можете ввести команду: rclone ls s3cf:openode В данном случае s3cf - Это название конфига которое вы создавали на первом шаге rclone config А openode - Это имя бакета которое вы создавали в CF. Создание и настройка bash-скрипта Создайте файл скрипта backup_script.sh в папке /root/: nano /root/backup_script.sh Вставьте следующий код: #!/bin/bash # Переменные для Telegram TELEGRAM_BOT_TOKEN="YOUR_TELEGRAM_BOT_TOKEN" TELEGRAM_CHAT_ID="YOUR_TELEGRAM_CHAT_ID" # Папки для архивации SRC_DIRS=("/opt/marzban" "/var/lib/marzban") # Папка для хранения архива DEST_DIR="/root" # Имя архива с датой и временем DATE=$(date +'%Y-%m-%d_%H-%M-%S') ARCHIVE_NAME="OPENODE_backup_$DATE.zip" ARCHIVE_PATH="$DEST_DIR/$ARCHIVE_NAME" # Создание архива zip -r "$ARCHIVE_PATH" "${SRC_DIRS[@]}" # Целевая папка в Cloudflare R2 TARGET_DIR="s3cf:openode/" # Функция для отправки уведомления в Telegram send_telegram_message() { MESSAGE=$1 curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" -d chat_id="${TELEGRAM_CHAT_ID}" -d text="${MESSAGE}" } # Загрузка архива в Cloudflare R2 и отправка уведомления if rclone copy "$ARCHIVE_PATH" "$TARGET_DIR"; then send_telegram_message "Архив $ARCHIVE_NAME успешно загружен в Cloudflare R2." # Удаление локального архива после копирования rm "$ARCHIVE_PATH" else send_telegram_message "Ошибка при загрузке архива $ARCHIVE_NAME в Cloudflare R2." fi # Ротация архивов в Cloudflare R2 (оставить только за последние 7 дней) rclone delete --min-age 7d "$TARGET_DIR" Сохраняем. Сделайте скрипт исполняемым: chmod +x /root/backup_script.sh Можем попробовать запустить: ./backup_script.sh Если все прошло хорошо, и уведомления получены в телеграм, то можно настроить crontab: crontab -e Вставляем в пустую строку: 0 */4 * * * /root/backup_script.sh >/dev/null 2>&1 Готово! Каждые 4 часа будут собираться архивы и приходить уведомления.2 балла
-
Вступление Это четвертая часть о мониторинге домашней системы с использованием influxdb и grafana первая часть про общую настройку и вторая часть про мониторинг proxmox, третья часть про мониторинг роутеров кинетик. Теперь заключительная часть про мониторинг openwrt. Продолжая обсуждение мониторинга состояния системы, необходимо уделить внимание важному аспекту – мониторингу состояния роутеров. Они являются одними из ключевых и критически важных элементов в вашей системе. В данной публикации я рассмотрю вопрос мониторинга состояния роутеров под управление системы openwrt с использованием пакета collectd. Настройка выполнялась на базе версий openwrt 22.03 и 23.05 Глобально у нас есть несколько вариантов настройки сбора статистики с роутеров: Сбор с помощью collectd и передача через telegraf установленный на роутере Сбор с помощью collectd и передача через telegraf установленный на отдельном сервере Сбор и отправка данных через telegraf Первый и третий вариант требуют установки на каждый роутер достаточно крупного пакета telegraf (урезанная версия весит 12 Mb), а место на многих роутерах очень ограничено. По этой причине я выбрал вариант 2. В общей суме нам потребуется около 1.5-2Мб памяти на роутере для пакетов статистики и одна установка telegraf для агрегации всех данных с нескольких роутеров. Настройка сбора статистики на роутере В первую очередь нам необходимо установить пакеты сбора статистики и collectd а так же модуля для них. Это можно сделать через графический интерфейс, или подключившись по ssh. Команды установки: opkg update opkg install luci-app-statistics collectd collectd-mod-cpu collectd-mod-conntrack collectd-mod-df collectd-mod-dhcpleases collectd-mod-interface collectd-mod-iwinfo collectd-mod-load collectd-mod-memory collectd-mod-network collectd-mod-uptime collectd-mod-rrdtool /etc/init.d/luci_statistics enable /etc/init.d/collectd enable После установки повторно заходим в интерфейс роутера в новый раздел меню статистика – настройки. В основных настройках обязательно указываем уникальное имя хоста (под этим именем данные будут собираться в системе influxdb) Нам необходимо включить все компоненты сбора статистики. Все настройки плагинов можно оставлять в режиме по умолчанию. При открытии окна настроек плагина может сбиваться состояние настроек и полей. Переходим к настройке плагинов вывода, перед настройкой плагинов вывода обязательно примените настройки. Выключаем плагин RRDTool, он отвечает за хранение статистики на устройстве для вывода в виде графиков. И переходим к настройке плагина network. Нам необходимо заполнить только параметры интерфейса telegraf, который будет принимать данные collectd. В моем случае это 192.168.0.137. Сам telegraf может находиться на любом устройстве сети не зависимо от роутеров и Influxdb. Настройка сбора данных в telegraf Для сбора информации с роутеров будем использовать вариант запуска программы telegraf в роли прокси ретранслятора, на вход будет поступать информация от роутеров, а на выходе формироваться запись для передачи в influxdb. Но перед запуском докер контейнера telegraf нам необходимо забрать с роутера файл для сопоставления наборов данных collectd. По умолчанию файл размещен по пути /usr/share/collectd/types.db Скачиваем его себе на сервер где будет запускаться telegraf, в моем примере это /docker/telegraf-openwrt/types.db Переходим к настройке telegraf. Заходим в influxBD и создаем новую корзину openwrt и конфигурацию telegraf. Нам нужен источник данных socket listener Заменяем шаблонный конфиг, и даем понятное название # Generic socket listener capable of handling multiple socket types. [[inputs.socket_listener]] ## URL to listen on # service_address = "tcp://:8094" # service_address = "tcp://127.0.0.1:http" # service_address = "tcp4://:8094" # service_address = "tcp6://:8094" # service_address = "tcp6://[2001:db8::1]:8094" service_address = "udp://0.0.0.0:8094" # service_address = "udp4://:8094" # service_address = "udp6://:8094" # service_address = "unix:///tmp/telegraf.sock" # service_address = "unixgram:///tmp/telegraf.sock" ## Change the file mode bits on unix sockets. These permissions may not be ## respected by some platforms, to safely restrict write permissions it is best ## to place the socket into a directory that has previously been created ## with the desired permissions. ## ex: socket_mode = "777" # socket_mode = "" ## Maximum number of concurrent connections. ## Only applies to stream sockets (e.g. TCP). ## 0 (default) is unlimited. # max_connections = 1024 ## Read timeout. ## Only applies to stream sockets (e.g. TCP). ## 0 (default) is unlimited. # read_timeout = "30s" ## Optional TLS configuration. ## Only applies to stream sockets (e.g. TCP). # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" ## Enables client authentication if set. # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] ## Maximum socket buffer size (in bytes when no unit specified). ## For stream sockets, once the buffer fills up, the sender will start backing up. ## For datagram sockets, once the buffer fills up, metrics will start dropping. ## Defaults to the OS default. # read_buffer_size = "64KiB" ## Period between keep alive probes. ## Only applies to TCP sockets. ## 0 disables keep alive probes. ## Defaults to the OS configuration. # keep_alive_period = "5m" ## Data format to consume. ## Each data format has its own unique set of configuration options, read ## more about them here: ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md data_format = "collectd" collectd_typesdb = ["/usr/share/collectd/types.db"] ## Content encoding for message payloads, can be set to "gzip" to or ## "identity" to apply no encoding. # content_encoding = "identity" Копируем полученный токен, он нам понадобиться для модификации конфигурации. Host изменять не надо, устанавливаем только токен в место параметра. Более подробно этот момент разбирался в первой части. Скачиваем файл конфигурации и размещаем на сервере рядом с types.db Переходим к запуску докер контейнер telegraf со следующим конфигурационным файлом version: "3" services: telegraf-openwrt: image: telegraf:latest container_name: telegraf-openwrt environment: - TZ=Europe/Moscow volumes: - /docker/telegraf-openwrt/telegraf.conf:/etc/telegraf/telegraf.conf:ro - /docker/telegraf-openwrt/types.db:/usr/share/collectd/types.db ports: - "8094:8094/udp" Отдельно стоит обратить внимание что обмен данными идет именно по протоколу udp, если у вас что-то не работает и данные не появляются проверяйте в первую очередь фаервол. Проверяем что данные появились в базе Подключение Grafana Работа с Grafana уже является стандартной и подробно разбирать я ее не буду, приведу пример как настроено у меня. Создан API токен на чтение корзины openwrt, и выполнено подключение в режиме Flux. В моем примере я использовал шаблон https://grafana.com/grafana/dashboards/18565-openwrt-collectd-flux/ В результате имеем такой дашборд Заключение Это последняя в ближайшей перспективе публикация на тему мониторинга спасибо всем кто ознакомился с этим материалом. Это далеко не все что стоит осветить на тему мониторинга, как минимум необходимо разобрать тему уведомлений по событиям и пересылку в другие коллекторы данных, но пока я не готов погружаться в эту тему. Но в любом случае буду признателен за советы и комментарии по теме. Отдельно акцентирую внимание я не являюсь профессиональным системным администратором, я только самоучка который решил погрузить в тему умного дома и домашних серверов. Так что мои решения могут быть не самые оптимальные и эффективные но они работают и покрывают поставленные задачи. Я всегда рад обсудить более эффективные варианты и возможно даже что то скорректировать в своей системе. Спасибо за внимание, меня можно достаточно часто найти в телеграмм чате сообщества готов по возможности ответить на вопросы. Всем удачи, и надежной работы вашим системам.2 балла
-
1 балл
-
1 балл
-
1 балл
-
1 балл
-
Вступление, или от простых бэкапов к отдельной системе Proxmox VE имеет встроенную поддержку создания резервных копий и снимков виртуальных машин, однако базовая реализация подвержена определенным ограничениям. Одной из таких проблем, с которой я столкнулся, является следующая: В моей схеме домашней инфраструктуры резервные копии виртуальных машин создавались каждую ночь в 4 часа утра. Полученные архивы сохранялись на жестком диске, подключенном к тому же мини-ПК. Это позволяло хранить до 7 копий виртуальных машин на диске, что было приемлемо, пока я не развернул отдельный контейнер с Nextcloud. Для меня важным стало резервное копирование жесткого диска, на котором хранятся пользовательские файлы Nextcloud. Это привело к увеличению суммарного размера ежедневной резервной копии с 5 ГБ до 30 ГБ и более. Такая ситуация оказалась неприятной и требовала поиска решения. Кроме того, я передавал полученные резервные копии из Nextcloud на основной компьютер для дополнительного резервного копирования, так как я не хотел рисковать потерей данных в случае отказа жесткого диска. Однако передача такого объема данных ежедневно по сети вызывала определенные неудобства, особенно учитывая тенденцию к увеличению объема данных. Попытка обсудить эту проблему в профильных чатах привела меня к изучению нового инструмента - Proxmox Backup Server (PBS). Зачем это все и что нам это дает? Основное отличие PBS заключается в том, что он не хранит полные копии бэкапов, а осуществляет запись только изменений в файлах. Этот процесс часто описывается термином 'инкрементальное резервное копирование' или 'дифференциальное резервное копирование'. Также имеется возможность настройки синхронизации с удаленным хранилищем, используя NFS. PBS автоматически проверяет целостность бэкапов, предоставляя также ряд других полезных функций. В моем случае, я хранил бэкапы за 3 дня (после добавления Nextcloud пришлось сократить историю с 7 до 3 дней), что в сумме занимало около 90-110 Гб на жестких дисках сервера и основного компьютера. Размер каждой виртуальной машины в архиве составлял от 5 до 10 Гб, а Nextcloud занимал около 20 Гб. После перехода на использование PBS, я теперь храню 30 резервных копий каждой виртуальной машины, занимающих примерно 65 Гб. Стоит отметить, что эти значения ситуативны и зависят от степени изменений данных. Если в вашем случае много изменений в больших файлах, то и объемы будут увеличиваться соответственно. Например, если вы решите создавать резервные копии фильмов (хотя зачем это нужно - другой вопрос). Фактически, PBS создает полную копию на первом этапе, а затем сохраняет только изменения по сравнению с предыдущей версией, что позволяет создавать некую 'машина времени' для данных. Особенности использования, или не все так радужно как хотелось бы... В отличие от бэкапов, создаваемых в виде архива, в данном случае мы получаем служебные файлы, которые кроме Proxmox никто прочитать не сможет. Это может быть серьезной проблемой, если надо вручную что-то вытащить, но всегда можно открыть и скачать архив через веб-интерфейс сервиса. Также для душевного спокойствия я оставил формирование классических бэкапов Proxmox в архив, но только раз в неделю, которые Nextcloud перекладывает на основной компьютер, а я уже руками забираю на внешний жесткий диск. Еще одной проблемой является то, что PBS не может делать синхронизацию через Samba для переноса бэкапов на тот же компьютер под Windows. Сам PBS поддерживает только NFS, который Microsoft не предоставляет на не серверных версиях Windows. Перенести файлы в ручном режиме или через WebDAV тоже не особо поможет, так как они являются скрытыми и частично зашифрованными. Для решения этой проблемы я испробовал много разных способов: от создания NFS сторонним софтом и в WSL до запуска отдельной виртуальной машины. Но самым оптимальным у меня получилось решение по запуску через Docker, о котором я расскажу отдельно. Также сам PBS можно поставить несколькими способами. Рекомендуемым вариантом является развертывание отдельной машины с образом ISO PBS, альтернативой может быть установка в Debian как пакет. Не рекомендуемым, но допустимым является установка в PVE, не рекомендуется из-за того, что данные могут быть потеряны, если возникнут проблемы с хостом. Еще один не очевидный, не заявленный и точно не рекомендуемый (но кого это остановит ) способ - это установка как Docker-контейнер. Основная часть, или хватит лирики В моем случае у меня был мини-ПК с жестким диском, на котором хранились бэкапы, так что вариант с установкой в PVE мне показался достаточно оптимальным, так как не требовал отдельной железки и вообще это домашний тестовый стенд (ака подопытный кролик). С этим делом все достаточно просто, можем обратиться к официальной инструкции: [https://pbs.proxmox.com/docs/installation.html#install-proxmox-backup-server-on-proxmox-ve] Но я вынес сюда основные шаги, на самом деле их будет всего 2. Подключаемся по SSH к хосту Proxmox и приступаем. 1. Добавляем репозиторий с PBS в источники для PVE nano /etc/apt/sources.list И добавляем запись deb http://download.proxmox.com/debian/pbs bookworm pbs-no-subscription Внимание!!! Я предполагаю, что лишние репозитории у вас были заранее выключены и используется бесплатная версия. Для этого можно воспользоваться скриптом для настройки Proxmox (применять после чистой установки, иначе на свой страх может ломать источники и бог знает что еще) bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)" Все скрипты: [https://tteck.github.io/Proxmox/] 2. Обновляем список пакетов и устанавливаем PBS apt update apt install proxmox-backup-server Собственно на этом все, у нас есть PBS на нашем основном хосте, заходим на него по адресу: [https://<ip-or-dns-name>:8007] Нас встречает стандартный интерфейс proxmox и полное непонимание что с этим всем делать, но где наши не пропадали велики методом тыка идем в раздел хранилище данных, и создаем новое хранилище данных. Фактически мы указываем путь, где будут лежать наши файлы бэкапов в разбиении на служебные файлы proxmox. После инициализации получаем обзорную информацию о нашем диске, тут можно оценить и прогноз по заполнению и фактор дедукции (то на сколько наши бэкапы повторяют себя) а также посмотреть статусы по регламентным заданиям. Тут же настроим задание проверки резервных копий на целостность. Следующим шагом необходимо настроить права для работы с полученным хранилищем. Идем в радел управление доступом и создаем нового пользователя: На вкладке разрешения настраиваем доступ к самому хранилищу, я в общем виде выдаю права администратора так как не вижу угрозы для своей системы, но данный вопрос можно подробно почитать в справке. Добавляем примерно так: В итоге должно получиться В интерфейсе хранилища данных так же должны быть такие записи !!! Внимание !!! Дополнительный раздел и не обязательные действия. Если у вас есть свой домен и отдельный пунктик на предупреждения браузера о само подписанных сертификатах можно выпустить новый сертификат с помощью dns chelenge если или закинуть свой сертификат. Это надо если не используете прокси сервер или для обеспечения стабильности когда npm лежит. Данная инструкция так же актуальна для Proxmox VE. Переходим в раздел сертификаты, вкладка учетные записи: Создаем новую учетную запись, и новую запись модуля. На вкладке сертификаты добавляем новую запись ACME и выполняем запрос сертификата Данные действия обязательно делать до подключения так как получение сертификата изменяет подпись вашего сервера PBS. Подключение PBS к proxmox VE, или когда это уже закончиться… Заходим в веб интерфейс proxmox VE, идем в раздел хранилаща и добавляем наш PBS В моем случае настройки выглядят так: Сервер указываем IP вашего хоста, отдельно обращаю внимание что соединение происходит по 8007 порту, отдельностоит обратить внимание при настройки прокси сервера. Настройки по хранению резервных копий делать не надо за это будет отвечать сам PBS. Отдельно надо отметить поле отпечаток, он нужен для установки ssl соединения между нашими системами. Что бы его получить возвращаемся в интерфейс PBS и на вкладке понель мониторинга нажимаем показать отпечаток. После завершения настройки у вас появиться новое хранилище в вашем интерфейсе Proxmox VE Настроим резервное копирование. Переходим в раздел корня – «Резервное копирование» и создаем новую запись. Дополнительных настроек не надо. Отдельно надо отметить, что вариант сжатия мы не выбираем за это, отвечает сам PBS. Так же не маловажная особенность по режимам, которая, может быть, и при обычном создании бэкапов, но при использовании PBS она возникает гарантировано. Если выбирать режим «Снимок», которые делает бэкапы без остановки виртуальных машин, в процессе бэкапа создается копия виртуальной машины со всеми подключенными (и указанными для бэкапа) дисками. Эта копия создается в директории /var основного хоста, и если в процессе не хватит места, то возникнет ошибка типа такой: ERROR: Backup of VM 101 failed - command 'rsync --stats -h -X -A --numeric-ids -aH --delete --no-whole-file --sparse --one-file-system --relative '--exclude=/tmp/?*' '--exclude=/var/tmp/?*' '--exclude=/var/run/?*.pid' /proc/1632/root//./ /proc/1632/root//./mnt/nextcloud /var/tmp/vzdumptmp128654_101' failed: exit code 11 Для исправления ее есть несколько способов я использовал два: 1. Та виртуалка которая не помещается во временные файлы бэкапиться в режиме «Остановка» 2. Увеличение пространства lvm root для того что бы поместились данные. При этом не надо что бы туда влазил весь выделенный диск, достаточно что бы в свободное пространство помещались все сохраняемые данные. Так же есть способы с переопределением директории /var но данные методы мне показались запутанными и пока для моей ситуации не востребованы. Так же у меня осталось регламентное копирование в архивы раз в неделю для переноса на внешний диск как я и писал в начале статьи. Фактически на этом настройка PBS закончена, вы можете создавать более правильные и оптимальные бэкапы. В отдельном материале я расскажу как настроить синхронизацию PBS с компьютером для создание дополнительного хранилища бэкапов. Всем спасибо за внимание, желаю вам удачных бэкапов которы не когда вам не понадобяться.1 балл
-
DWG - UI Обсуждение DWG » | DWG-CLI » | DWG-UI » | DWG-DARK » | DWG [multi] » Информация носит ознакомительный характер. Пожалуйста не нарушайте действующего законодательства вашей страны. Сборка DWG-UI включает в себя: Веб интерфейс для управления клиентами Wireguard - WG Easy. Контейнер c Unbound предоставляет собственный DNS сервер с кэшированием DNS и дополнительными параметрами конфиденциальности. Контейнер c AdGuard Home (более современный аналог чем PiHole) используется для блокировки рекламы, аналитических трекеров и редактирования списка используемых DNS серверов к которым обращается Unbound. Имеет очень полезную функцию параллельных запросов, DNS которой нет в PiHole. Контейнер с WireGuard используется непосредственно для запуска серверной части Wireguard VPN Основные репозитории с обновлениями на GitHub: GitHub - DigneZzZ/dwg: dwg-universal GitHub - DigneZzZ/dwg-ui: Combination Wireguard + Adguard Home + Unbound (DoH include) Требования: Чистый пустой сервер. Первым делом нам нужно арендовать хороший и быстрый сервер. Берем какой вам подходит лучше по скорости и получаем бонус 15% (если пополнить в первые 24часа регистрации) на пополнение баланса: https://aeza.net/?ref=377137 Замерить скорости можно здесь: Aéza (aeza.net) Поддерживаемые операционные системы (где проверена работоспособность): Ubuntu 20.04, 22.04, 23.10, Debian 11, 12, Centos 8,9 Скрипт устанавливает все автоматически. Все комментарии по скрипту внутри в комментариях. Команда установки: apt update && apt install curl sudo git -y && curl -Of https://raw.githubusercontent.com/DigneZzZ/dwg-ui/main/setup.sh && chmod +x setup.sh && ./setup.sh Что установится: Сначала установится Git, чтобы можно было скопировать мой репозиторий Docker - последняя версия Docker-compose - последняя версия Wg-easy - интерактивный режим введения пароля для веб AdGuard Home - интерактивный режим создания пользователя и пароля (можно оставить стандартным) Unbound - все в стоке apache2-utils - необходим для генерации хэш-паролей ssh.sh - скрипт для смены порта SSH подключения ufw.sh - скрипт для установки UFW Firewall. Напомнит установить ufw-docker и сам закроет доступ извне! ВНИМАНИЕ! Запускать только после того как создадите для себя клиента в WireGUARD!!! Адреса веб-интерфейсов: WG-Easy web-ui: yo.ur.ip.xx:51821 #вместо yo.ur.ip.xx введите IP своего сервера, пароль введите тот что присвоили при установке Доступ в web-ui из сети WG: http://10.2.0.3:51821 AdGuard HOME: http://10.2.0.100/ Логин: admin Пароль: admin # Скрипт для смены пароля AGH bash <(wget -qO- https://raw.githubusercontent.com/DigneZzZ/dwg/main/change.sh)1 балл
-
Приветствую! Зарегистрировал в прошлом году осенью, на KZ карту. Данные указал KZ реального адреса, как есть. В РФ сервис работает! Поддержка оперативная! Отличный хостинг! Спасибо за инструкцию!1 балл
-
тут я писал про списки для ютуба.1 балл
-
нужно в правила роутинга на сервере в директ добавить: { "outboundTag": "DIRECT", "domain": [ "full:cp.cloudflare.com", "domain:msftconnecttest.com", "domain:msftncsi.com", "domain:connectivitycheck.gstatic.com", "domain:captive.apple.com", "full:detectportal.firefox.com", "domain:networkcheck.kde.org", "full:*.gstatic.com" ], "type": "field" },1 балл
-
Всем привет! Как обещал уже давно, выкладываю статью по установке и настройке самостоятельного форка Marzban'a - MARZNESHIN Это первая статья в Русском сегменте с полноценной инструкцией по установке. Две статьи по настройке и запуску Marzneshin с обратным проксированием через Caddy: И по установке и подключении ноды Marznode к Marzneshin: Статьи доступны по подписке к клубам: https://openode.xyz/subscriptions/1 балл
-
Привет, сообщество! У меня для вас хорошие новости! Теперь на VPS Insider доступны новые способы оплаты, чтобы вам было удобнее оформить подписку на эксклюзивные обзоры и секретные предложения. Варианты оплаты: Рубли: через сервис ссылка (учтите, что возможны трудности с оплатой, так как некоторые банки блокируют подобные транзакции). Криптовалюта: ссылка (доступны TON, USDT, TRX). Telegram Звезды: оплата напрямую через сервис Telegram ссылка. Оставайтесь на связи и не пропустите наши обновления!1 балл
-
Если беру - то делаю бенч, если не беру - то просто пишу каждому свое ) ну DO это большой выбор стран. Но все забывают, что в рамках каждой страны есть очень классные варианты. И иногда с более интересными предложениями по трафику например. А скорость 10гбс не везде нужна. В любом случае почти для всех требуется зарубежная карта, но без проблем принимают они и виртуальные.1 балл
-
Вы пытаетесь максимально замаскировать свой VPN или proxy? Тогда вам наверняка необходимо убрать определение туннеля (двусторонний пинг). Перейдём к ознакомлению: В гайде повествуется об отключении определения туннеля на OC Linux и Windows. Запускаем ssh, переходим на сервер и логинимся под root пользователем Переходим к редактированию настроек ufw c помощью nano: nano /etc/ufw/before.rules Добавляем новую строку и сохраняем результат: # ok icmp codes -A ufw-before-input -p icmp --icmp-type destination-unreachable -j DROP -A ufw-before-input -p icmp --icmp-type source-quench -j DROP -A ufw-before-input -p icmp --icmp-type time-exceeded -j DROP -A ufw-before-input -p icmp --icmp-type parameter-problem -j DROP -A ufw-before-input -p icmp --icmp-type echo-request -j DROP 4. Перезапускаем фаервол ufw ufw disable && ufw enable 5. Сервер больше не должен отправлять ICMP трафик, а значит вам удалось скрыть двусторонний пинг!1 балл
-
Лайк за инсталятор. На 3 ке не открывается adguard. Запустился на2ке, долго не мог понять почему не обновляются списки черные, у всех листов по 0. настройки---настройки DNS— Upstream DNS-Серверы, там по умолчанию одна сылка https, ругается на нее, на днс других тоже ругается, вбил просто IP cloudflare и еще какой то аналогичный все заработало. Какой то косяк с https ссылками1 балл
-
речь про мобильных провайдеров там многое не работает домашние провайдеры почти ничего не блочат в 90% случаев1 балл
-
Ищете легкие способы? Вам сюда. OpenWRT Я ставлю все на локальный диск от root. Гайд может не работать на Вашей версии OpenWRT или на устройстве в целом. Настоятельно рекомендую сделать бэкап конфига. Предполагается, что Вы знаете, что делаете!! Нужно: Собственно, само устройство с OpenWRT. Подключение к инету. PuTTY или любой другой SSH-клиент на Вашем устройстве. Пароль root. Что делаем: Подключаемся по SSH и обновляем пакеты: opkg upgrade затем opkg list-upgradable | cut -f 1 -d ' ' | xargs -r opkg upgrade Устанавливаем Entware: wget -O - http://entware-3x.zyxmon.org/binaries/armv7/installer/install_std.sh | sh Добавляем переменные окружения: echo ". /etc/profile" >> /root/.profile && export PATH=$PATH:/opt/bin && export PATH=$PATH:/opt/sbin Добавляем псевдонимы для opkg, так как сейчас их в системе два. Первый - в /bin/opkg, второй - в /opt/bin/opkg, псевдоним первого - opkg, второго – opkg echo "alias opkg=\"/bin/opkg\"" >> /root/.profile && echo "alias opkg2=\"/opt/bin/opkg\"" >> /root/.profile Затем перезагружаемся reboot После перезагрузки OpenWRT нужно прописать opkg update, иначе будет ошибка. Устанавливаем необходимые пакеты: opkg install bind-dig cron dnsmasq-full ipset iptables shadowsocks-libev-ss-redir shadowsocks-libev-config git git-http nmap ncat ca-bundle Заходим в домашнюю папку и клонируем репозиторий: cd ~ && git clone https://github.com/bol-van/zapret.git Переходим в папку и запускаем установку: cd zapret && ash install_bin.sh && ash install_easy.sh Соглашаемся на копирование, вводим 1, y, y, y, потом 1, n, y, y, 3, y, 1. Если Вам не выдало никаких ошибок - OpenWRT настроен на обход ограничений! UPD от 30.08.2024: как добавить домены для обхода? Открываем файл: vi /opt/zapret/ipset/zapret-hosts-user.txt Если у Вас нет такого файла, значит, hostlist не включен, и нужно переконфигурировать zapret: ash /opt/zapret/install_easy.sh Если Вы не меняли стандартную настройку, вводите так же, как на скрине. Если меняли, повторите ее, включив hostlist. Стираем nonexistent.domain и вводим нужный. Каждый домен вводится с новой строки. Не забудьте про пустую строку в конце файла, не убирайте ее! Перезагрузите систему, и готово!1 балл
-
Вообще с приложение Adguard и выставлением большей части фильтров, страницы начинают грузиться очень медленно. Тоже надо иметь ввиду )1 балл
-
@TrustMe Я постараюсь) По секрету скажу, у меня есть интересная идея, заслуживающая внимания. Из-за тупежа службы доставки обещать пока ничего не могу, но, надеюсь как можно скорее приступить к реализации1 балл
-
Да, я выше написал что всё хорошо, проблема на моей стороне в win11 которая не шлет dns запросы куда нужно1 балл
-
1 балл
-
Всем привет! А можно пояснение к этой проге для андроид девайсов? Собственно тоже не реклама, в профильном чате увидел ссылку, а как правильно пользоваться не понял...Вот1 балл
-
UPD от 06.08.2024: на Android можно скачать YouTube ReVanced и смотреть в нем, приложение режет рекламу, поэтому подойдет для просмотра через VPN. Ссылка на скачивание с 4pda (не реклама), root не требуется. В стоке работает не у всех, лично у меня – нет1 балл
-
Wayback Machine и Архивы Интернета. Принцип работы всех Интернет Архивов схожий: кто-то (любой пользователь) указывает страницу для сохранения. Интернет Архив скачивает её, в том числе текст, изображения и стили оформления, а затем сохраняет. По запросу сохранённые страницу могут быть просмотрены из Интернет Архива, при этом не имеет значения, если исходная страница изменилась или сайт в данный момент недоступен или вовсе перестал существовать. Многие Интернет Архивы хранят несколько версий одной и той же страницы, делая её снимок в разное время. Благодаря этому можно проследить историю изменения сайта или веб-страницы в течение всех лет существования. В этой статье будет показано, как находить удалённую или изменённую информацию, как использовать Интернет Архивы для восстановления сайтов, отдельных страниц или файлов, а также некоторые другие случае использования. Wayback Machine — это название одного из популярного веб архива сайтов. Иногда Wayback Machine используется как синоним «Интернет Архив». Примеры сайтов веб-архивов: https://web.archive.org/ http://archive.md/ (также использует домены http://archive.ph/ и http://archive.today/) http://web-arhive.ru/ web.archive.org Этот сервис веб архива ещё известен как Wayback Machine. Имеет разные дополнительные функции, чаще всего используется инструментами по восстановлению сайтов и информации. Для сохранения страницы в архив перейдите по адресу https://archive.org/web/ введите адрес интересующей вас страницы и нажмите кнопку «SAVE PAGE». Для просмотра доступных сохранённых версий веб-страницы, перейдите по адресу https://archive.org/web/, введите адрес интересующей вас страницы или домен веб-сайта и нажмите «BROWSE HISTORY»: В самом верху написано, сколько всего снимком страницы сделано, дата первого и последнего снимка. Затем идёт шкала времени на которой можно выбрать интересующий год, при выборе года, будет обновляться календарь. Обратите внимание, что календарь показывает не количество изменений на сайте, а количество раз, когда был сделан архив страницы. Точки на календаре означают разные события, разные цвета несут разный смысл о веб захвате. Голубой означает, что при архивации страницы от веб-сервера был получен код ответа 2nn (всё хорошо); зелёный означает, что архиватор получил статус 3nn (перенаправление); оранжевый означает, что получен статус 4nn (ошибка на стороне клиента, например, страница не найдена), а красный означает, что при архивации получена ошибка 5nn (проблемы на сервере). Вероятно, чаще всего вас должны интересовать голубые и зелёные точки и ссылки. При клике на выбранное время, будет открыта ссылка, например, http://web.archive.org/web/20160803222240/https://hackware.ru/ и вам будет показано, как выглядела страница в то время: Используя эту миниатюру вы сможете переходить к следующему снимку страницы, либо перепрыгнуть к нужной дате: Лучший способ увидеть все файлы, которые были архивированы для определённого сайта, это открыть ссылку вида http://web.archive.org/*/www.yoursite.com/*, например, http://web.archive.org/*/hackware.ru/ Кроме календаря доступна следующие страницы: Collections — коллекции. Доступны как дополнительные функции для зарегистрированных пользователей и по подписке Changes Summary Site Map Changes "Changes" — это инструмент, который вы можете использовать для идентификации и отображения изменений в содержимом заархивированных URL. Начать вы можете с того, что выберите два различных дня какого-то URL. Для этого кликните на соответствующие точки и нажмите кнопку Compare. В результате будут показаны два варианта страницы. Жёлтый цвет показывает удалённый контент, а голубой цвет показывает добавленный контент. Summary В этой вкладке статистика о количестве изменений MIME-типов: Site Map Как следует из название, здесь показывается диаграмма карты сайта, используя которую вы можете перейти к архиву интересующей вас страницы. Поиск по Интернет архиву. Если вместо адреса страницы вы введёте что-то другое, то будет выполнен поиск по архивированным сайтам: Показ страницы на определённую дату Кроме использования календаря для перехода к нужной дате, вы можете просмотреть страницу на нужную дату используя ссылку следующего вида: http://web.archive.org/web/ГГГГММДДЧЧММСС/АДРЕС_СТРАНИЦЫ/ Обратите внимание, что в строке ГГГГММДДЧЧММСС можно пропустить любое количество конечных цифр. Если на нужную дату не найдена архивная копия, то будет показана версия на ближайшую имеющуюся дату. archive.md Адреса данного Архива Интернета: http://archive.md http://archive.ph/ http://archive.today/ На главной странице говорящие за себя поля: Архивировать страницу, которая сейчас онлайн Искать сохранённые страницы Для поиска по сохранённым страницам можно как указывать конкретный URL, так и домены, например: microsoft.com покажет снимки с хоста microsoft.com *.microsoft.com покажет снимки с хоста microsoft.com и всех его субдоменов (например, www.microsoft.com) http://twitter.com/burgerkingfor покажет архив данного url (поиск чувствителен к регистру) http://twitter.com/burg* поиск архивных url начинающихся с http://twitter.com/burg Данный сервис сохраняет следующие части страницы: Текстовое содержимое веб страницы Изображения Содержимое фреймов Контент и изображения загруженные или сгенерированные с помощью Javascript на сайтах Web 2.0 Скриншоты размером 1024×768 пикселей. Не сохраняются следующие части веб-страниц: Flash и загружаемый им контент Видео и звуки PDF RSS и другие XML-страницы сохраняются ненадёжно. Большинство из них не сохраняются, или сохраняются как пустые страницы. Архивируемая страница и все изображения должны быть менее 50 Мегабайт. Для каждой архивированной страницы создаётся ссылка вида http://archive.is/XXXXX, где XXXXX это уникальный идентификатор страницы. Также к любой сохранённой странице можно получить доступ следующим образом: http://archive.is/2013/http://www.google.de/ — самый новый снимок в 2013 году. http://archive.is/201301/http://www.google.de/ — самый новый снимок в январе 2013. http://archive.is/20130101/http://www.google.de/ — самый новый снимок в течение дня 1 января 2013. Дату можно продолжить далее, указав часы, минуты и секунды: http://archive.is/2013010103/http://www.google.de/ http://archive.is/201301010313/http://www.google.de/ http://archive.is/20130101031355/http://www.google.de/ Для улучшения читаемости, год, месяц, день, часы, минуты и секунды могут быть разделены точками, тире или двоеточиями: http://archive.is/2013-04-17/http://blog.bo.lt/ http://archive.is/2013.04.17-12:08:20/http://blog.bo.lt/ Также возможно обратиться ко всем снимкам указанного URL: http://archive.is/http://www.google.de/ Все сохранённые страницы домена: http://archive.is/www.google.de Все сохранённые страницы всех субдоменов http://archive.is/*.google.de Чтобы обратиться к самой последней версии страницы в архиве или к самой старой, поддерживаются адреса вида: http://archive.is/newest/http://reddit.com/ http://archive.is/oldest/http://reddit.com/ Чтобы обратиться к определённой части длинной страницы имеется две опции: добавить хэштег (#) с позицией прокрутки в качество которого число между 0 (вершина страницы) и 100 (низ страницы). Например, http://archive.md/dva4n#95% выбрать текст на страницы и получить URL с хэштегом, указывающим на этот раздел. Например, http://archive.is/FWVL#selection-1493.0-1493.53 В доменах поддерживаются национальные символы: http://archive.is/www.maroñas.com.uy http://archive.is/*.测试 Обратите внимание, что при создании архивной копии страницы архивируемому сайту отправляется IP адрес человека, создающего снимок страницы. Это делается через заголовок X-Forwarded-For для правильного определения вашего региона и показа соответствующего содержимого. web-arhive.ru Архив интернет (Web archive) — это бесплатный сервис по поиску архивных копий сайтов. С помощью данного сервиса вы можете проверить внешний вид и содержимое страницы в сети интернет на определённую дату. На момент написания, этот сервис, вроде бы, нормально не работает («Database Exception (#2002)»). Если у вас есть по нему какие-то новости, то пишите их в комментариях. Поиск сразу по всем Веб-архивам Может так случиться, что интересующая страница или файл отсутствует в веб архиве. В этом случае можно попытаться найти интересующую сохранённую страницу в другом Архиве Интернета. Специально для этого я сделал довольно простой сервис, который для введённого адреса даёт ссылки на снимки страницы в рассмотренных трёх архивах. Адрес сервиса: https://suip.biz/ru/?act=web-arhive Что делать, если удалённая страница не сохранена ни в одном из архивов? Архивы Интернета сохраняют страницы только если какой-то пользователь сделал на это запрос — они не имеют функции обходчиков и ищут новые страницы и ссылки. По этой причине возможно, что интересующая вас страница оказалась удалено до того, как была сохранена в каком-либо веб-архиве. Тем не менее можно воспользоваться услугами поисковых движков, которые активно ищут новые ссылки и оперативно сохраняют новые страницы. Для показа страницы из кэша Google нужно в поиске Гугла ввести 1 cache:URL Например: 1 cache:https://hackware.ru/?p=6045 Если ввести подобный запрос в поиск Google, то сразу будет открыта страница из кэша. Для просмотра текстовой версии можно использовать ссылку вида: http://webcache.googleusercontent.com/search?q=cache:URL&strip=1&vwsrc=0 Для просмотра исходного кода веб страницы из кэша Google используйте ссылку вида: http://webcache.googleusercontent.com/search?q=cache:URL&strip=0&vwsrc=1 Например, текстовый вид: http://webcache.googleusercontent.com/search?q=cache:https://hackware.ru/?p=6045&strip=1&vwsrc=0 Исходный код: http://webcache.googleusercontent.com/search?q=cache:https://hackware.ru/?p=6045&strip=0&vwsrc=1 Как полностью скачать сайт из веб-архива Если вы хотите восстановить удалённый сайт, то вам поможет программа Wayback Machine Downloader. Программа загрузит последнюю версию каждого файла, присутствующего в Архиве Интернета Wayback Machine, и сохранить его в папку вида ./websites/example.com/. Она также пересоздаст структуру директорий и автоматически создаст страницы index.html чтобы скаченный сайт без каких либо изменений можно было бы поместить на веб-сервер Apache или Nginx. Об установке программы и дополнительных опциях смотрите на странице https://kali.tools/?p=5211 Пример скачивания полной копии сайта suip.biz из веб-архива: 1. wayback_machine_downloader https://suip.biz Структура скаченных файлов: Локальная копия сайта, обратите внимание на провайдера Интернет услуг: Как скачать все изменения страницы из веб-архива Если вас интересует не весь сайт, а определённая страница, но при этом вам нужно проследить все изменения на ней, то в этом случае используйте программу Waybackpack. К примеру для скачивания всех копий главной страницы сайта suip.biz, начиная с даты (—to-date 2017), эти страницы должны быть помещены в папку (-d /home/mial/test), при этом программа должна следовать HTTP редиректам (—follow-redirects): waybackpack suip.biz -d ./suip.biz-copy --to-date 2017 --follow-redirects Структура директорий: Чтобы для указанного сайта (hackware.ru) вывести список всех доступных копий в веб-архиве (—list): waybackpack hackware.ru --list Как узнать все страницы сайта, которые сохранены в веб-архиве Для получения ссылок, которые хранятся в Архиве Интернета, используйте программу waybackurls. Эта программа извлекает все URL указанного домена, о которых знает Wayback Machine. Это можно использовать для быстрого составления карты сайта. Чтобы получить список всех страниц о которых знает Wayback Machine для домена suip.biz: echo suip.biz | waybackurls Заключение Предыдущие три программы рассмотрены совсем кратко. Дополнительную информацию об их установке и об имеющихся опциях вы сможете найти по ссылкам на карточки этих программ. Ещё парочка программ, которые работают с архивом интернета: https://github.com/relrelb/wayback-downloader https://github.com/erlange/wbm-dl1 балл
-
Всем привет! Сегодня стали появляться сообщения с такой ошибкой: Ошибка связана с ограничением в отношении РФ. Решение: 1. через конфиг докера (как зеркало docker.io) Ищем файл daemon.json: LINUX regular: /etc/docker/daemon.json LINUX rootless: ~/.config/docker/daemon.json WINDOWS: C:\ProgramData\docker\config\daemon.json Вносим корректировки: { "registry-mirrors": [ "https://mirror.gcr.io", "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com", "https://hub.openode.xyz" ] } 2. Явное указание адреса через зеркало В самом докере, или в docker-compose, когда вы указываете image: вы можете указать вместо классического library/alipine:latest, тоже самое, но с адресом из списка выше: hub.openode.xyz.io/library/alipine:latest Детальная страница: https://hub.openode.xyz/1 балл
-
На Ubuntu 24.04 LTS не получилось с первого раза запустить все по мануалу. Видимо проблема в разных докерах версиях или еще что то помогла команда из пунтка 4 docker-compose --env-file config/config.env up --build -d только в ней нужно убрать дефис между docker и compose. docker compose --env-file config/config.env up --build -d и тогда все запустится. На старых версиях ubuntu таких проблем не было.1 балл
-
А что мне нужно сделать что бы одобрили пост? ЧТо нужно запостить такое что бы его одобрили, я пришел прочитать инструкцию, и сохранил ее в закладках1 балл
-
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROP nano /etc/sysctl.conf net.ipv4.icmp_echo_ignore_all = 11 балл
-
Можно) Но лучше сперва сделать второго пользователя, а затем отключить root)1 балл
-
после применения этой статьи, перестало вообще чо работать да же к ssh не могу подключиться, сайты не грузиться да же удаление строк # ok icmp codes не помогает1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00