🔝 ТОП постов за прошедший месяц. Все самые популярные публикации по месяцам можно почитать со соответствующему хэштэгу #топ. Отдельно можно посмотреть ТОП за прошлые года: 2023 и 2024.
Пользуясь случаем, хочу попросить проголосовать за мой канал, так как это открывает некоторые дополнительные возможности по настройке: https://xn--r1a.website/boost/srv_admin.
📌 Больше всего пересылок:
◽️Статья про кластер на базе Proxmox VE (474)
◽️Набор правил iptables для защиты от небольшого DDOS (390)
◽️Добавление новых дисков в сервер (375)
📌 Больше всего комментариев:
◽️Примеры вранья ИИ (136)
◽️Странные сетевые ошибки на сервере (94)
◽️Подключение к старому железу с Java (90)
📌 Больше всего реакций:
◽️Статья про кластер на базе Proxmox VE (382)
◽️Добавление новых дисков в сервер (237)
◽️Bash-трюк для grep вывода из stderr (231)
◽️Проблемы с сетевухами Realtek в Linux (197)
📌 Больше всего просмотров:
◽️Подборка видео на тему IT (12544)
◽️Набор правил iptables для защиты от небольшого DDOS (11007)
◽️Ограничения на отправку почты в Postfix (10920)
#топ
Пользуясь случаем, хочу попросить проголосовать за мой канал, так как это открывает некоторые дополнительные возможности по настройке: https://xn--r1a.website/boost/srv_admin.
📌 Больше всего пересылок:
◽️Статья про кластер на базе Proxmox VE (474)
◽️Набор правил iptables для защиты от небольшого DDOS (390)
◽️Добавление новых дисков в сервер (375)
📌 Больше всего комментариев:
◽️Примеры вранья ИИ (136)
◽️Странные сетевые ошибки на сервере (94)
◽️Подключение к старому железу с Java (90)
📌 Больше всего реакций:
◽️Статья про кластер на базе Proxmox VE (382)
◽️Добавление новых дисков в сервер (237)
◽️Bash-трюк для grep вывода из stderr (231)
◽️Проблемы с сетевухами Realtek в Linux (197)
📌 Больше всего просмотров:
◽️Подборка видео на тему IT (12544)
◽️Набор правил iptables для защиты от небольшого DDOS (11007)
◽️Ограничения на отправку почты в Postfix (10920)
#топ
Telegram
ServerAdmin.ru
🎄🔝 Под конец года имеет смысл подвести некоторые итоги. В повседневной жизни я не привык это делать. Обычно только доходы/расходы анализирую. А вот в разрезе канала было интересно посмотреть итоги.
Я подготовил ТОП публикаций за прошедший год. Это было…
Я подготовил ТОП публикаций за прошедший год. Это было…
👍35👎2
Уже не первый раз сталкиваюсь с ситуацией, что получаешь арендную VPS, а там по умолчанию уже настроены сетевые интерфейсы и ipv4, и ipv6. Делаешь обновление системы через apt, он подключается по ipv6 и ничего не качает, пишет, что no longer has a Release file. Столкнулся вчера лично с репозиторием от Яндекса:
В рунете он популярен. Я и сам всегда его использую. Не знаю, кто тут виноват, сам провайдер или Яндекс (позже выяснилось, что Яндекс, подробности в конце). Не вижу смысла разбираться и тратить время. В данном случае проще отключить ipv6. Это можно сделать разными способами. Можно конкретно apt заставить работать через ipv4. У него есть параметр для этого:
Постоянно так писать не будешь, можно добавить в конфигурацию, создав файл
Я лично поступил проще. Отключил ipv6 на уровне системы. Добавил в
И применил их:
Настройки ipv6 на сетевом интерфейсе сразу пропали, apt успешно заработал по ipv4.
Более радикальный способ отключения через GRUB, но тогда придётся обновлять загрузчик, пересобирать initramfs. Плюс, понадобится перезагрузка. Для этого в его конфиг
После этого нужно обновить загрузчик. В зависимости от системы выглядеть это может по-разному. В Debian можно так:
Заметил ещё такую особенность. До того, как отключил ipv6, заметил, что apt работает то по ipv4, то по ipv6. Можно было несколько раз его запустить и получить желаемый результат. Не знаю, с чем это может быть связано. Возможно первый резолв доменного имени идёт на DNS запись AAAA, а если подключение неудачно, то потом на A. Но не уверен, что это так. Просто догадки.
Уже после написания заметки решил повнимательнее разобраться, что реально происходит в apt при обращении по ipv6 и ipv4. Для этого сделал два отдельных запроса по разным протоколам:
Первый нормально отрабатывает и загружает файл InRelease. А во втором случае репозиторий Яндекса отвечает:
То есть DNS запись для mirror.yandex.ru есть:
Но Nginx, который раздаёт контент, не настроен для работы по ipv6. Не знаю, зачем так сделали. Если не настроили Nginx, зачем настроили ipv6? 🤷♂️ Может какие-то временные проблемы.
☝️В целом, с ipv6 такое бывает, поэтому если не используете, лучше сразу отключить.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux #network #ipv6
http://mirror.yandex.ru/debian bookworm mainВ рунете он популярен. Я и сам всегда его использую. Не знаю, кто тут виноват, сам провайдер или Яндекс (позже выяснилось, что Яндекс, подробности в конце). Не вижу смысла разбираться и тратить время. В данном случае проще отключить ipv6. Это можно сделать разными способами. Можно конкретно apt заставить работать через ipv4. У него есть параметр для этого:
# apt -o Acquire::ForceIPv4=true upgradeПостоянно так писать не будешь, можно добавить в конфигурацию, создав файл
/etc/apt/apt.conf.d/disable-ipv6 следующего содержания:Acquire::ForceIPv4 "true";Я лично поступил проще. Отключил ipv6 на уровне системы. Добавил в
/etc/sysctl.conf пару параметров:net.ipv6.conf.all.disable_ipv6 = 1net.ipv6.conf.default.disable_ipv6 = 1И применил их:
# sysctl -pНастройки ipv6 на сетевом интерфейсе сразу пропали, apt успешно заработал по ipv4.
Более радикальный способ отключения через GRUB, но тогда придётся обновлять загрузчик, пересобирать initramfs. Плюс, понадобится перезагрузка. Для этого в его конфиг
/etc/default/grub, конкретно в параметр GRUB_CMDLINE_LINUX, нужно добавить значение ipv6.disable=1. Если там уже указаны другие значения, то перечислены они должны быть через пробел. Примерно так:GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet ipv6.disable=1"После этого нужно обновить загрузчик. В зависимости от системы выглядеть это может по-разному. В Debian можно так:
# dpkg-reconfigure grub-pcЗаметил ещё такую особенность. До того, как отключил ipv6, заметил, что apt работает то по ipv4, то по ipv6. Можно было несколько раз его запустить и получить желаемый результат. Не знаю, с чем это может быть связано. Возможно первый резолв доменного имени идёт на DNS запись AAAA, а если подключение неудачно, то потом на A. Но не уверен, что это так. Просто догадки.
Уже после написания заметки решил повнимательнее разобраться, что реально происходит в apt при обращении по ipv6 и ipv4. Для этого сделал два отдельных запроса по разным протоколам:
# apt -o Debug::Acquire::http=true -o Acquire::ForceIPv4=true update# apt -o Debug::Acquire::http=true -o Acquire::ForceIPv6=true updateПервый нормально отрабатывает и загружает файл InRelease. А во втором случае репозиторий Яндекса отвечает:
Answer for: http://mirror.yandex.ru/debian/dists/bookworm/InReleaseHTTP/1.1 404 Not FoundServer: nginx/1.24.0 (Ubuntu)............................................................Err:2 http://mirror.yandex.ru/debian bookworm Release 404 Not Found [IP: 2a02:6b8::183 80]То есть DNS запись для mirror.yandex.ru есть:
# dig +short mirror.yandex.ru AAAA2a02:6b8::183Но Nginx, который раздаёт контент, не настроен для работы по ipv6. Не знаю, зачем так сделали. Если не настроили Nginx, зачем настроили ipv6? 🤷♂️ Может какие-то временные проблемы.
☝️В целом, с ipv6 такое бывает, поэтому если не используете, лучше сразу отключить.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux #network #ipv6
3👍191👎8
Существует известный бесплатный чат сервер Mattermost. Я когда-то давно его устанавливал и администрировал. Написал статью по мотивам. Но с тех пор прошло много времени (8 лет). Решил ещё раз на него посмотреть и оценить.
Разворачивается он просто. Можно быстро в Docker запустить. Сам разработчик рекомендует использовать версию в Docker именно для тестов. Для прода я бы вял Ubuntu и развернул из пакетов. Разработчик рекомендует разворачивать в Kubernetes, если он у вас есть. Он позиционирует свой продукт как полностью готовый для интеграции в современную инфраструктуру разработки и поддержки приложений.
Я взял вот эту инструкцию, подготовил доменное имя и DNS записи для него и всё сделал по шагам:
◽️склонировал репозиторий
◽️получил сертификаты
◽️настроил .env, указав имя домена и путь к сертификатам
◽️запустил docker compose
Всё завелось без проблем и приключений. Работать в Mattermost можно тремя способами:
▪️Браузер
▪️Десктопное приложение
▪️Мобильное приложение
Все три выглядят плюс-минус одинаково, так как по сути являются обёрткой к веб версии. Я хорошо знаком с Rocket.Chat, поэтому дальше буду сравнивать с ним. Вообще на первый взгляд они внешне сильно похожи. Главное окно программы и список сообщений в чатах выглядят схоже.
Mattermost выглядит более аккуратно, перевод на русский язык лучше. Со стороны клиента я вообще не увидел нареканий, а в админке встречались непереведённые настройки.
Для мобильного приложения Android доступны push уведомления, если их включить в админке сервера. Причём я нигде не нашёл информации насчёт ограничений. Указано лишь, что он предоставляется в тестовых целях без гарантии доставки. Не знаю, что у него с надёжностью, но во время моих тестов он работал нормально, все пуши приходили. Также можно поднять свой собственный push сервер. Есть отдельная инструкция для этого. У Rocket.Chat в бесплатной версии есть месячный лимит на push уведомления, но какой он - хз. Раньше был то ли 1000, то ли 10000 пушей. Сейчас все чаты поскрывали сравнения бесплатных версий и точные ограничения, так что трудно сравнивать.
В Mattermost по умолчанию сразу же были настроены звонки между абонентами в том числе с демонстрацией экрана. По крайней мере это заявлено и можно пробовать. Я попробовал. Демонстрация не заработала ни в какой комбинации клиентов. Вроде всё работает, но вместо картинки - чёрный экран. В Rocket.Chat из коробки этого вообще нет. Надо настраивать отдельно Jitsi и интегрировать.
В плане функциональность у Rocket.Chat в бесплатной версии намного больше возможностей. Например, есть поддержка аутентификации с помощью SAML, LDAP, OAuth2, а у MM только email/пароль. Есть какие-то костыли для LDAP, но я не знаю, насколько хорошо они работают. У меня в комментариях к старой статье постоянно просят помочь её настроить.
То же самое с возможностями по управлению пользователями. В MM банально нельзя через админку создать пользователя самому. Надо ему отправить ссылку для регистрации. В Rocket без проблем. Зашёл и сделал учётку. У него же есть полноценный RBAC, можно настраивать какие хочешь роли и распределять права. Можно автоматически раздавать права доступа в каналы. В MM такого нет в бесплатной версии. Но правда там есть удобное разделение на команды с ручным управлением пользователями.
Тут можно много сравнивать. Подведу некоторый итог. В целом мне Mattermost внешне и в плане управления понравился больше. Он какой-то более добротный, целостный, с хорошо структурированной админкой. В Rocket спустя несколько лет я всё равно теряюсь и забываю, где что настраивал. Но при этом в сумме у MM возможностей меньше в бесплатной версии.
Так что если вам хватает возможностей Mattermost, используйте его. А если нужна функциональность Rocket, переходите на него. Но хорошо подумайте. У Rocket поддержка релизов максимум 6 месяцев. Придётся постоянно его обновлять. Иногда бывают проблемы. База у него Mongo против Postgre у MM.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#chat
Разворачивается он просто. Можно быстро в Docker запустить. Сам разработчик рекомендует использовать версию в Docker именно для тестов. Для прода я бы вял Ubuntu и развернул из пакетов. Разработчик рекомендует разворачивать в Kubernetes, если он у вас есть. Он позиционирует свой продукт как полностью готовый для интеграции в современную инфраструктуру разработки и поддержки приложений.
Я взял вот эту инструкцию, подготовил доменное имя и DNS записи для него и всё сделал по шагам:
◽️склонировал репозиторий
◽️получил сертификаты
◽️настроил .env, указав имя домена и путь к сертификатам
◽️запустил docker compose
Всё завелось без проблем и приключений. Работать в Mattermost можно тремя способами:
▪️Браузер
▪️Десктопное приложение
▪️Мобильное приложение
Все три выглядят плюс-минус одинаково, так как по сути являются обёрткой к веб версии. Я хорошо знаком с Rocket.Chat, поэтому дальше буду сравнивать с ним. Вообще на первый взгляд они внешне сильно похожи. Главное окно программы и список сообщений в чатах выглядят схоже.
Mattermost выглядит более аккуратно, перевод на русский язык лучше. Со стороны клиента я вообще не увидел нареканий, а в админке встречались непереведённые настройки.
Для мобильного приложения Android доступны push уведомления, если их включить в админке сервера. Причём я нигде не нашёл информации насчёт ограничений. Указано лишь, что он предоставляется в тестовых целях без гарантии доставки. Не знаю, что у него с надёжностью, но во время моих тестов он работал нормально, все пуши приходили. Также можно поднять свой собственный push сервер. Есть отдельная инструкция для этого. У Rocket.Chat в бесплатной версии есть месячный лимит на push уведомления, но какой он - хз. Раньше был то ли 1000, то ли 10000 пушей. Сейчас все чаты поскрывали сравнения бесплатных версий и точные ограничения, так что трудно сравнивать.
В Mattermost по умолчанию сразу же были настроены звонки между абонентами в том числе с демонстрацией экрана. По крайней мере это заявлено и можно пробовать. Я попробовал. Демонстрация не заработала ни в какой комбинации клиентов. Вроде всё работает, но вместо картинки - чёрный экран. В Rocket.Chat из коробки этого вообще нет. Надо настраивать отдельно Jitsi и интегрировать.
В плане функциональность у Rocket.Chat в бесплатной версии намного больше возможностей. Например, есть поддержка аутентификации с помощью SAML, LDAP, OAuth2, а у MM только email/пароль. Есть какие-то костыли для LDAP, но я не знаю, насколько хорошо они работают. У меня в комментариях к старой статье постоянно просят помочь её настроить.
То же самое с возможностями по управлению пользователями. В MM банально нельзя через админку создать пользователя самому. Надо ему отправить ссылку для регистрации. В Rocket без проблем. Зашёл и сделал учётку. У него же есть полноценный RBAC, можно настраивать какие хочешь роли и распределять права. Можно автоматически раздавать права доступа в каналы. В MM такого нет в бесплатной версии. Но правда там есть удобное разделение на команды с ручным управлением пользователями.
Тут можно много сравнивать. Подведу некоторый итог. В целом мне Mattermost внешне и в плане управления понравился больше. Он какой-то более добротный, целостный, с хорошо структурированной админкой. В Rocket спустя несколько лет я всё равно теряюсь и забываю, где что настраивал. Но при этом в сумме у MM возможностей меньше в бесплатной версии.
Так что если вам хватает возможностей Mattermost, используйте его. А если нужна функциональность Rocket, переходите на него. Но хорошо подумайте. У Rocket поддержка релизов максимум 6 месяцев. Придётся постоянно его обновлять. Иногда бывают проблемы. База у него Mongo против Postgre у MM.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#chat
👍148👎4
Для тестирования скорости загрузки сайта существует старый и известный в узких кругах инструмент WebPageTest. Упоминал уже не раз о нём, потому что регулярно пользуюсь, но отдаю себе отчёт, что он не очень популярен. На днях ставил себе с нуля свежую версию и потратил пол дня, пока всё запустил на своей виртуалке. Проект развивается в плане кодовой базы и возможностей, но конкретно Private Instances, которые можно развернуть у себя и использовать без ограничения, ставятся с костылями, так как для них не обновляют документацию и Docker файлы.
В очередной раз всё развернул и сразу зафиксирую, чтобы не забыть. Так как в прошлый раз решал ровно те же проблемы, но не записал сразу, потом забыл. Пришлось опять разбираться.
Проект состоит из серверной части и агентов, которые могут быть развёрнуты в разных локациях. Репозитории:
⇨ https://github.com/catchpoint/WebPageTest
⇨ https://github.com/catchpoint/WebPageTest.agent
В первом есть
Клонируем репозиторий сервера:
В
После этого собираем. Можно не трогать настройки по умолчанию.
После сборки запустится серверная часть на 80-м порту. Можно идти браузером по IP адресу сервера. Состояние сервера можно посмотреть так: http://10.20.1.21/install/ Там должно быть всё зелёное. И видно, что есть одна локация Test Locations и нет подключенного агента. Это настройка по умолчанию, она задаётся в файле
Идём на машину, где будет запускаться агент. Клонируем репозиторий:
В корне лежит Dockerfile. Откройте его и измените следующую строку:
На
Отдельно npm ставить не надо, он входит в состав nodejs. Сборка будет валиться с ошибкой, если это не исправить. Собираем агента. Я сразу указал ему часовой пояс. Можно и другие параметры задать:
Если сборка прошла без ошибок, то можно запускать самого агента:
10.20.1.21 - IP адрес сервера. Через пару минут по ссылке http://10.20.1.21/install/ вы должны увидеть, что агент подключился. В логе сервера это будет видно по запросам на /work/getwork.php от IP адреса агента.
Теперь можно выполнять тесты сайтов с помощью этого агента. Мне это нужно было, чтобы протестировать последние изменения в Angie. Авторы указали, что повысили стабильность работы с протоколом HTTP/3. Напомню, что когда я включил в Angie протокол HTTP/3, заметил, что параметр TTFB увеличился. В тестах это стабильно воспроизводилось.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#webpagetest
В очередной раз всё развернул и сразу зафиксирую, чтобы не забыть. Так как в прошлый раз решал ровно те же проблемы, но не записал сразу, потом забыл. Пришлось опять разбираться.
Проект состоит из серверной части и агентов, которые могут быть развёрнуты в разных локациях. Репозитории:
⇨ https://github.com/catchpoint/WebPageTest
⇨ https://github.com/catchpoint/WebPageTest.agent
В первом есть
docker-compose.yml, который включает в себя php-бэкенд, веб-интерфейс и агент. Контейнеры собираются по месту из представленных докерфайлов в папке docker/local. Если взять этот проект и запустить, то не соберётся wptagent. В нём есть привязки к названию репозитория, где он раньше был, но имя репозитория поменяли, а тут ничего не поправили. Проще собрать агента отдельно, а тут исключить его из сборки. К тому же агент будет запускаться не только на этой машине, так что разнести их не только географически, но и логически - разумно.Клонируем репозиторий сервера:
# git clone https://github.com/catchpoint/WebPageTestВ
docker-compose.yml комментируем всё, что относится к agent. Это в самом конце секция, после web и php. Собранный веб сервер будет много всего писать в директорию www/ в разные вложенные папки. Для простоты назначим ей права 0777:# chmod -R 0777 www/После этого собираем. Можно не трогать настройки по умолчанию.
# docker compose upПосле сборки запустится серверная часть на 80-м порту. Можно идти браузером по IP адресу сервера. Состояние сервера можно посмотреть так: http://10.20.1.21/install/ Там должно быть всё зелёное. И видно, что есть одна локация Test Locations и нет подключенного агента. Это настройка по умолчанию, она задаётся в файле
docker/local/wptconfig/locations.ini. Там только один тестовый location с ключом доступа 123456789. Если будете строить распределённую сеть агентов, то нужно будет добавлять туда новые локации и подключать агентов в соответствии с названиями и ключами.Идём на машину, где будет запускаться агент. Клонируем репозиторий:
# git clone https://github.com/catchpoint/WebPageTest.agentВ корне лежит Dockerfile. Откройте его и измените следующую строку:
RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - && \ apt-get install nodejs npm -yНа
RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - && \ apt-get install nodejs -yОтдельно npm ставить не надо, он входит в состав nodejs. Сборка будет валиться с ошибкой, если это не исправить. Собираем агента. Я сразу указал ему часовой пояс. Можно и другие параметры задать:
# docker build --tag wptagent --build-arg TIMEZONE=MSK .Если сборка прошла без ошибок, то можно запускать самого агента:
# modprobe ifb numifbs=1# docker run -d -e SERVER_URL="http://10.20.1.21/work/" -e LOCATION="Test" -e NAME="Test" -e KEY="123456789" --cap-add=NET_ADMIN --init --name wptagent wptagent10.20.1.21 - IP адрес сервера. Через пару минут по ссылке http://10.20.1.21/install/ вы должны увидеть, что агент подключился. В логе сервера это будет видно по запросам на /work/getwork.php от IP адреса агента.
Теперь можно выполнять тесты сайтов с помощью этого агента. Мне это нужно было, чтобы протестировать последние изменения в Angie. Авторы указали, что повысили стабильность работы с протоколом HTTP/3. Напомню, что когда я включил в Angie протокол HTTP/3, заметил, что параметр TTFB увеличился. В тестах это стабильно воспроизводилось.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#webpagetest
👍66👎2
В репозиториях Debian живёт полезная утилита debootstrap, с помощью которой можно собрать работающую систему в каталоге в уже запущенной ОС. Либо взять уже готовую. Применений у этой технологии может быть много.
Например, можно создать диск в оперативной памяти, установить туда систему через debootstrap, сделать туда chroot, туда же для надёжности можно установить openssh-server и подключиться напрямую. И уже из этой системы делать с работающей всё, что угодно. Можно полностью очистить жёсткий диск перед окончанием аренды виртуалки. Можно поверх работающей системы установить совершенно другую, которую не поддерживает панель управления хостера.
Покажу на практике, как это работает. Ставим debootstrap и сразу с его помощью скачиваем образ системы Debian 12 в каталог /mnt/debootstrap:
Монтируем туда из работающей системы оборудование:
И заходим туда:
Мы оказываемся в чистой минимальной системе на базе Debinan 12 Bookworm. Можем делать в ней всё, что угодно. Зададим пароль root, установим некоторый софт:
Разрешим подключаться пользователю root по ssh сразу внутрь изоляции:
Закрываем, сохраняем, перезапускаем openssh сервер:
Выходим из chroot:
Теперь туда можно подключиться напрямую по SSH, как на любой другой сервер:
Вы оказались в вашей новой системе. Можете там делать, что угодно.
Теперь представим, что вам нужно гарантированно очистить содержимое дисков работающей системы. Для этого создаём в оперативной памяти раздел на 2GB. Можно и меньше, если памяти совсем мало, так как минимальный образ для debootstrap меньше 1GB:
Копируем туда подготовленную ранее систему:
Монтируем оборудование и подключаемся:
Запускаем ssh-сервер и подключаемся напрямую:
Теперь можем делать с системой всё, что угодно. Например, полностью очистить содержимое диска, в том числе корневого раздела основной системы. Смотрим список разделов:
У меня один диск и три раздела: sda1, sda2, sda5. Полностью очищаем все из них. После этого восстановить информацию будет невозможно:
Всё, систем надёжно убита. Можно так делать после того, как отказались от аренды. Особенно если у вас там какие-то впны были настроены или использовались другие учётные данные, которые могли остаться где-то в системе.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux
Например, можно создать диск в оперативной памяти, установить туда систему через debootstrap, сделать туда chroot, туда же для надёжности можно установить openssh-server и подключиться напрямую. И уже из этой системы делать с работающей всё, что угодно. Можно полностью очистить жёсткий диск перед окончанием аренды виртуалки. Можно поверх работающей системы установить совершенно другую, которую не поддерживает панель управления хостера.
Покажу на практике, как это работает. Ставим debootstrap и сразу с его помощью скачиваем образ системы Debian 12 в каталог /mnt/debootstrap:
# apt install debootstrap# mkdir /mnt/debootstrap# debootstrap bookworm /mnt/debootstrap http://deb.debian.org/debianМонтируем туда из работающей системы оборудование:
# mount --bind /dev /mnt/debootstrap/dev# mount --bind /dev/pts /mnt/debootstrap/dev/pts# mount --bind /proc /mnt/debootstrap/proc# mount --bind /sys /mnt/debootstrap/sysИ заходим туда:
# chroot /mnt/debootstrapМы оказываемся в чистой минимальной системе на базе Debinan 12 Bookworm. Можем делать в ней всё, что угодно. Зададим пароль root, установим некоторый софт:
# passwd# apt install tmux openssh-serverРазрешим подключаться пользователю root по ssh сразу внутрь изоляции:
# nano /etc/ssh/sshd_configPort 222PermitRootLogin yesЗакрываем, сохраняем, перезапускаем openssh сервер:
# /etc/init.d/ssh restartВыходим из chroot:
# exitТеперь туда можно подключиться напрямую по SSH, как на любой другой сервер:
$ ssh -p 222 root@10.20.1.9Вы оказались в вашей новой системе. Можете там делать, что угодно.
Теперь представим, что вам нужно гарантированно очистить содержимое дисков работающей системы. Для этого создаём в оперативной памяти раздел на 2GB. Можно и меньше, если памяти совсем мало, так как минимальный образ для debootstrap меньше 1GB:
# mkdir /mnt/chroot# mount -t tmpfs -o size=2G tmpfs /mnt/chrootКопируем туда подготовленную ранее систему:
# cp -R /mnt/debootstrap/* /mnt/chrootМонтируем оборудование и подключаемся:
# mount --bind /dev /mnt/chroot/dev# mount --bind /dev/pts /mnt/chroot/dev/pts# mount --bind /proc /mnt/chroot/proc# mount --bind /sys /mnt/chroot/sys# chroot /mnt/chrootЗапускаем ssh-сервер и подключаемся напрямую:
# /etc/init.d/ssh start# exit$ ssh -p 222 root@10.20.1.9Теперь можем делать с системой всё, что угодно. Например, полностью очистить содержимое диска, в том числе корневого раздела основной системы. Смотрим список разделов:
# fdisk -lУ меня один диск и три раздела: sda1, sda2, sda5. Полностью очищаем все из них. После этого восстановить информацию будет невозможно:
# shred -u -z -v /dev/sda{1,2,5}Всё, систем надёжно убита. Можно так делать после того, как отказались от аренды. Особенно если у вас там какие-то впны были настроены или использовались другие учётные данные, которые могли остаться где-то в системе.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux
7👍221👎1
Ко мне прилетела задача по обновлению сервера Zabbix 5.0 на Centos 7 на что-то более свежее и поддерживаемое. В идеале на Zabbix 7.0. Напомню, что система Centos 7 уже год как EOL. Zabbix 5 – последняя версия сервера, которую можно было установить на эту систему.
Большой нужды в плане функциональности обновляться нет. Мониторинг работает нормально и каких-то кардинальных изменений в нём не предвидится. Но вечно сидеть на старых версиях нельзя, так что принято решение обновиться.
Я не раз делал такие миграции. Самый надёжный способ – просто перенести вручную с Centos 7 на Debian или любую другую современную систему. Это гарантированно рабочий вариант, но нужно повозиться, ничего не забыть, не потерять, всё перенастроить. Довольно хлопотно.
Решил пойти по более простому в плане организационных моментов, но более сложном в плане технических – сделать обновление системы на Rocky Linux 8, потом на Rocky Linux 9. Сразу скажу, что у меня получилось, хотя не очень верил в успешный результат. Был чисто спортивный интерес попробовать, получится или нет.
Точную инструкцию по обновлению не написать, потому что всё очень индивидуально. Расскажу по шагам, как действовал я.
1️⃣ Для подобного рода обновлений есть один инструмент - leapp. Его и используют все форки Centos и RHEL для обновлений между релизами. Я взял за основу вот эту статью. Буквально несколько первых команд из неё пригодились.
2️⃣ Процедура подготовки к обновлению показала, что мешают обновиться пара драйверов - floppy и pata_acpi. Отключил их, прошёл основные проверки. Было много некритичных замечаний, проигнорировал их.
3️⃣ В процессе обновления было несколько ошибок из-за несовместимости пакетов и зависимостей. В системе подключено много внешних репозиториев в различными версиями php, python, версиями nginx и т.д. Всё отключил. На все ошибки зависимостей в пакетах реагировал просто - удалял проблемные пакеты. Система в итоге обновилась и превратилась в Rocky Linux 8.
4️⃣ В процессе обновления пакеты с Zabbix и MariaDB были удалены. Все данные и конфиги остались. Установил заново СУБД, проблем не возникло, запустилась.
5️⃣ Подключил репозиторий с Zabbix 6, установил необходимые пакеты, вернул старые конфиги. Сервер запустился, выполнил обновление своей базы данных и штатно заработал.
6️⃣ Дальше я вручную проверил все настройки веб сервера, php, поправил где, что нужно было. Запустил все службы. Зашёл в веб интерфейс и убедился, что мониторинг нормально работает.
В целом не сказать, что много времени потерял. Часа за 2 управился. Но это при том, что я хорошо понимаю, как всё это работает. Сразу по месту исправлял все ошибки. Особо не ковырялся и не соображал, как тут что работает. Следующий этап - обновиться на Rocky 9 и Zabbix 7. Спешки особо нет, так как текущие системы пока на поддержке. Можно подождать уже до выхода Zabbix 8. С учётом того, что 7.4 уже готова, дальше будет релиз новой ветки.
Если большого опыта работы с Zabbix Server и веб сервером нет, лучше потратить больше времени, но сделать аккуратную миграцию на новый сервер. Конкретно с Zabbix это выглядит так:
1️⃣ Ставите новую систему, настраиваете. Устанавливаете там ту же самую версию Zabbix Server. Для небольшой экономии времени можно сразу установить на один релиз выше, то есть не 5, как у меня, а сразу 6. Тоже должно сработать, но для надёжности я бы сначала ту же версию установил.
2️⃣ Со старого сервера переносите все конфиги Zabbix, останавливаете его, снимаете дамп базы данных, переносите его на новый сервер, восстанавливаете.
3️⃣ Запускаете Zabbix на новом сервере, убеждаетесь, что он нормально работает. После этого уже штатно обновляете его на новом сервере на следующий релиз. Прыгать через релиз я бы не рекомендовал, хотя видел отзывы, что так тоже получается обновиться.
Обновления форков RHEL с релиза на релиз вполне рабочие. Я не раз такое проворачивал. Хотя и считается, что обновлений между ними нет. На деле обновляются примерно так же, как и Debian с Ubuntu.
#centos #zabbix
Большой нужды в плане функциональности обновляться нет. Мониторинг работает нормально и каких-то кардинальных изменений в нём не предвидится. Но вечно сидеть на старых версиях нельзя, так что принято решение обновиться.
Я не раз делал такие миграции. Самый надёжный способ – просто перенести вручную с Centos 7 на Debian или любую другую современную систему. Это гарантированно рабочий вариант, но нужно повозиться, ничего не забыть, не потерять, всё перенастроить. Довольно хлопотно.
Решил пойти по более простому в плане организационных моментов, но более сложном в плане технических – сделать обновление системы на Rocky Linux 8, потом на Rocky Linux 9. Сразу скажу, что у меня получилось, хотя не очень верил в успешный результат. Был чисто спортивный интерес попробовать, получится или нет.
Точную инструкцию по обновлению не написать, потому что всё очень индивидуально. Расскажу по шагам, как действовал я.
В целом не сказать, что много времени потерял. Часа за 2 управился. Но это при том, что я хорошо понимаю, как всё это работает. Сразу по месту исправлял все ошибки. Особо не ковырялся и не соображал, как тут что работает. Следующий этап - обновиться на Rocky 9 и Zabbix 7. Спешки особо нет, так как текущие системы пока на поддержке. Можно подождать уже до выхода Zabbix 8. С учётом того, что 7.4 уже готова, дальше будет релиз новой ветки.
Если большого опыта работы с Zabbix Server и веб сервером нет, лучше потратить больше времени, но сделать аккуратную миграцию на новый сервер. Конкретно с Zabbix это выглядит так:
Обновления форков RHEL с релиза на релиз вполне рабочие. Я не раз такое проворачивал. Хотя и считается, что обновлений между ними нет. На деле обновляются примерно так же, как и Debian с Ubuntu.
#centos #zabbix
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍108👎2
⇨ Kasmweb - потоковая передача рабочих столов
Обзор необычного проекта, который предоставляет как сервис доступ через браузер к рабочим столам систем, конкретных приложений или только браузеров. Для передачи картинки у них своя реализация протокола VNC - KasmVNC. Работает всё на базе Docker. Выглядит необычно, но у бесплатной версии серьёзные ограничения, так что использовать получится только для себя или нескольких человек.
⇨ Что должен уметь DevOps Middle — ответы топ-компаний
Полезное информационное видео, если вы хотите понимать, что происходит в отрасли и какие компетенции желательно поддерживать. Показаны прямые записи и ответы представителей компании. То есть это не чьё-то мнение и исследование.
⇨ Установка XPEnology на Aoostar WTR Pro
Автор подробно рассказывает про теорию и практику установки XPEnology на примере одного из NAS. Проект классный, я лет 15 уже его использую дома на HP Microserver. Просто и удобно.
⇨ ProxMox Cluster + Shared Storage. Центральное хранилище для proxmox кластера и высокая доступность
Наглядный пример добавления общего хранилища в кластер на базе NFS. Это примерно то же самое, что я делал в своей статье по кластеру, только использовал iSCSI, а не NFS. Теоретически по NFS должно работать медленнее чисто из-за архитектуры (по iSCSI виртуалка получает блочное устройство под диск, а при NFS просто использует сетевой диск, чтобы положить туда свой qcow2 или raw образ), но лично я тестов не проводил.
⇨ Dual Boot Windows 11 and Fedora 42 - Complete Tutorial
Для меня не особо актуальная информация, но было интересно посмотреть. Автор взял новый неттоп с Windows 11 и одним разделом на весь диск. Отрезал от диска кусок, поставил туда Fedora в параллельную загрузку с Windows. Теперь можно пользоваться любой системой по выбору. Установщик у Fedora крутой. Всё сделал автоматически.
⇨ Миграция из Nginx в Angie
Переезд в режиме реального времени с Nginx на Angie.
⇨ Директива location в Angie
Хорошая база с теорией и практикой по настройке location в Angie. Там уже есть хоть и небольшие, но отличия от Nginx, так что потихоньку от последнего отвыкаем. У Angie больше возможностей и гибче настройки.
⇨ Часть 6. Построение инфраструктуры на ALT Linux 11. Групповые политики.
Продолжение серии роликов про построение инфраструктуры на базе ALT. В видео в том числе идёт речь о создании групповых политик для Windows и Linux.
⇨ Tech project management and documentation in Notion
Автор показал, как ведёт свои рабочие и личные заметки в Notion. Там есть некоторые привязки к функциональности именно Notion в виде встраивания и интеграции с некоторыми сервисами. Но в целом информация универсальная. Будет полезна тем, кто тоже заботится о том, чтобы аккуратно всё записывать в структурированную текстовую базу.
⇨ Настройка Middlewares в обратном прокси Traefik
Вообще не слышал ранее термин Middlewares в контексте обратных прокси. Было интересно посмотреть и познакомиться. По сути это просто насыщение проходящих запросов новыми данными. Чаще всего это какие-то заголовки.
#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Kasmweb - потоковая передача рабочих столов
Kasmweb - потоковая передача рабочих столов, браузеров и приложений непосредственно в браузер.
Винда, Линукс и отдельные приложения по запросу из любого места.
Рассмотрел платформенный менеджер с возможностью горизонтального масштабирования, а также…
Винда, Линукс и отдельные приложения по запросу из любого места.
Рассмотрел платформенный менеджер с возможностью горизонтального масштабирования, а также…
👍35👎2
Перебираю потихоньку дома своё старое хозяйство, так как нахожусь в состоянии переезда из квартиры в дом. Знакомый когда-то давно просто отдал свой компьютер, когда купил себе новый. Мне понравился корпус, так как в нём много мест под диски, поэтому забрал. Вроде обычный системник, но туда штатно устанавливаются без проблем 10 дисков.
Воткнул туда железный контроллер и просто много лет набивал старыми ненужными дисками, а комп использовал для тестов, иногда включая. Там стоял Proxmox. Собирал на нём всякие рейды, причём с очень замысловатыми комбинациями. Например, у меня было 4 диска: 2 по 500 ГБ, и 2 по 1 ТБ. Я делал RAID10 из двух дисков по 500 ГБ и двух половинок дисков по 1 ТБ, и тут же RAID1 из оставшихся половинок дисков от 1 ТБ. И это отлично работало. Было просто любопытно так сделать. Не знал, что такое поддерживают железные контроллеры. Думал, это только софтовые с разделами работают.
Вытащил все эти диски вместе с контроллером. Реально во всём этом уже нет смысла. Для тестового сервера достаточно купить пару SSD дисков или вообще один большой. Собственно, мне и хватало на все мои задачи одного SSD. В новом месте уже всё с нуля будут подбирать, компактное и тихое (когда лишние деньги появятся 😔).
Кстати, у меня недавно была тема про вентиляторы, которую очень живо обсуждали. Она оказалось полезной, я для себя пометочки сделал. Расскажу, как в итоге решил проблему. У меня в системнике работали 5 вентиляторов. Они в целом исправны, но стали более шумными, нежели новые. Я просто взял и выбрал из них 2 самых тихих. Один оставил на вдув спереди снизу, где харды стоят, и один на выдув за кулером процессора. Всё остальное просто вынул и убрал. Стало тихо. И никакого нагрева всё равно нет. На компе только браузером пользуются.
NAS ещё разобрал, там один вентилятор. Его весь почистил, а вентилятор смазал силиконовым маслом. Стало потише. Посмотрим, насколько хватит этого масла. Есть мнение, что это путь в один конец, так как теперь он соберёт ещё больше пыли и в итоге встанет. NAS у меня, кстати, работает на базе HP Proliant N54L Microserver. Очень старенькая машинка, но задачи свои выполняет. Там стоят 5 дисков: 4 в паре зеркал, и один сам по себе.
Вроде и хочется что-то современнее купить, но зачем? Только хлопоты лишние и расход денег. Телевизоры с него отлично видео берут, производительности для гигабитной сети хватает, если что-то копируешь, бэкапишь. Объёмов тоже хватает, там диски по 3 ТБ. Так что прогресс вроде идёт, но для базовых домашних задач вполне хватает железа 10-15 летней давности. Если не играешь в игры, то обновлять компьютеры нет смысла. До сих пор старые платформы можно добить памятью и дисками, и они успешно решают задачи.
#железо #разное
Воткнул туда железный контроллер и просто много лет набивал старыми ненужными дисками, а комп использовал для тестов, иногда включая. Там стоял Proxmox. Собирал на нём всякие рейды, причём с очень замысловатыми комбинациями. Например, у меня было 4 диска: 2 по 500 ГБ, и 2 по 1 ТБ. Я делал RAID10 из двух дисков по 500 ГБ и двух половинок дисков по 1 ТБ, и тут же RAID1 из оставшихся половинок дисков от 1 ТБ. И это отлично работало. Было просто любопытно так сделать. Не знал, что такое поддерживают железные контроллеры. Думал, это только софтовые с разделами работают.
Вытащил все эти диски вместе с контроллером. Реально во всём этом уже нет смысла. Для тестового сервера достаточно купить пару SSD дисков или вообще один большой. Собственно, мне и хватало на все мои задачи одного SSD. В новом месте уже всё с нуля будут подбирать, компактное и тихое (когда лишние деньги появятся 😔).
Кстати, у меня недавно была тема про вентиляторы, которую очень живо обсуждали. Она оказалось полезной, я для себя пометочки сделал. Расскажу, как в итоге решил проблему. У меня в системнике работали 5 вентиляторов. Они в целом исправны, но стали более шумными, нежели новые. Я просто взял и выбрал из них 2 самых тихих. Один оставил на вдув спереди снизу, где харды стоят, и один на выдув за кулером процессора. Всё остальное просто вынул и убрал. Стало тихо. И никакого нагрева всё равно нет. На компе только браузером пользуются.
NAS ещё разобрал, там один вентилятор. Его весь почистил, а вентилятор смазал силиконовым маслом. Стало потише. Посмотрим, насколько хватит этого масла. Есть мнение, что это путь в один конец, так как теперь он соберёт ещё больше пыли и в итоге встанет. NAS у меня, кстати, работает на базе HP Proliant N54L Microserver. Очень старенькая машинка, но задачи свои выполняет. Там стоят 5 дисков: 4 в паре зеркал, и один сам по себе.
Вроде и хочется что-то современнее купить, но зачем? Только хлопоты лишние и расход денег. Телевизоры с него отлично видео берут, производительности для гигабитной сети хватает, если что-то копируешь, бэкапишь. Объёмов тоже хватает, там диски по 3 ТБ. Так что прогресс вроде идёт, но для базовых домашних задач вполне хватает железа 10-15 летней давности. Если не играешь в игры, то обновлять компьютеры нет смысла. До сих пор старые платформы можно добить памятью и дисками, и они успешно решают задачи.
#железо #разное
1👍166👎3
Почти всегда, когда надо скопировать файлы с сервера на сервер, использую либо scp, либо rsync. Первый для одиночных файлов, второй для директорий. На прошлой неделе нужно было с одного старого сервера перенести выборочно кучу разрозненных файлов на другой. Вспомнил про возможность Midnight Commander, где одной из панелей с обзором файлов может выступать удалённый сервер. Это очень удобно как раз для моей задачи. Я очень редко этим пользуюсь. Даже не знаю, почему. Нет такой привычки. Хотя объективно это удобнее, чем ходить по каталогам и запускать rsync, вспоминая его ключи, особенно если надо использовать нестандартный порт SSH.
MC поддерживает два разных протокола для передачи - SFTP (SSH File Transfer Protocol) или FISH (Files transferred over Shell protocol). Последний в разделе меню называется как Shell link. По названию не совсем понятно, что это такое. На первый взгляд кажется, что в контексте передачи файлов это одно и то же. Но на деле нет. И я как раз столкнулся лично с различиями.
Сервер, с которого я подключался, был старее того, куда надо было копировать. Там вроде бы Debian 11 стоял, я копировал на 12-й. К сожалению, не могу уточнить, сервер удалён уже, а сразу не было времени подробно разбираться. Сначала использовал sftp и ни в какую не мог подключиться. Постоянно в логе принимающего севера были ошибки в auth.log на тему то ли использовавшихся шифров, то ли формата сертификата. Сразу не записал, только пометил себе сделать об этом заметку.
При этом я спокойно подключался из консоли по ssh к удалённому серверу с тем же сертификатом или паролем. Попробовал в MC подключение по Shell link и сразу подключился. Перекинул файлы и разбираться уже не стал. Позже пробовал с разными серверами использовать разные протоколы - везде работали оба.
В целом, разница понятна, так как протоколы передачи совершенно разные. Лучше использовать более привычный и распространённый sftp, если он разрешён и настроен на принимающем сервере. Это не всегда бывает так. Как и обратная ситуация. Может быть разрешён sftp, но запрещён обычный shell. А подключению по fish как раз нужен хотя бы sh на принимающей стороне. Так что если не подключается один протокол, пробуйте другой.
☝️ Отдельно отмечу такую фишку MC. Вы можете в левой панели открыть один удалённый сервер, а в правой - другой. И не настраивая прямого соединения между этими серверами перекинуть файлы, выступая со своим MC как посредник.
Настраиваются такие подключения так: нажимаем F9 -> Right или Left, то есть выбираем нужную нам панель, потом раздел меню Shell link или SFTP link. Формат подключения типичный для ssh -
На подобные заметки постоянно приходят комментаторы и начинают рассказывать, что использовать панельные менеджеры - плохая практика, надо работать в консоли, это быстрее, удобнее и т.д. Давайте воздержимся от этих бессмысленных споров. Пусть каждый работает так, как ему удобно. Мне удобно работать с MC, я к нему привык. И mcedit его люблю.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux #terminal #mc
MC поддерживает два разных протокола для передачи - SFTP (SSH File Transfer Protocol) или FISH (Files transferred over Shell protocol). Последний в разделе меню называется как Shell link. По названию не совсем понятно, что это такое. На первый взгляд кажется, что в контексте передачи файлов это одно и то же. Но на деле нет. И я как раз столкнулся лично с различиями.
Сервер, с которого я подключался, был старее того, куда надо было копировать. Там вроде бы Debian 11 стоял, я копировал на 12-й. К сожалению, не могу уточнить, сервер удалён уже, а сразу не было времени подробно разбираться. Сначала использовал sftp и ни в какую не мог подключиться. Постоянно в логе принимающего севера были ошибки в auth.log на тему то ли использовавшихся шифров, то ли формата сертификата. Сразу не записал, только пометил себе сделать об этом заметку.
При этом я спокойно подключался из консоли по ssh к удалённому серверу с тем же сертификатом или паролем. Попробовал в MC подключение по Shell link и сразу подключился. Перекинул файлы и разбираться уже не стал. Позже пробовал с разными серверами использовать разные протоколы - везде работали оба.
В целом, разница понятна, так как протоколы передачи совершенно разные. Лучше использовать более привычный и распространённый sftp, если он разрешён и настроен на принимающем сервере. Это не всегда бывает так. Как и обратная ситуация. Может быть разрешён sftp, но запрещён обычный shell. А подключению по fish как раз нужен хотя бы sh на принимающей стороне. Так что если не подключается один протокол, пробуйте другой.
☝️ Отдельно отмечу такую фишку MC. Вы можете в левой панели открыть один удалённый сервер, а в правой - другой. И не настраивая прямого соединения между этими серверами перекинуть файлы, выступая со своим MC как посредник.
Настраиваются такие подключения так: нажимаем F9 -> Right или Left, то есть выбираем нужную нам панель, потом раздел меню Shell link или SFTP link. Формат подключения типичный для ssh -
root@10.20.1.23/mnt/backup. Если аутентификация по ключу настроена, то сразу подключитесь. Если нет - выскочит окно для ввода пароля. Если надо задать пароль или использовать нестандартный порт, то по F1 открывается подсказка, там показаны все варианты.На подобные заметки постоянно приходят комментаторы и начинают рассказывать, что использовать панельные менеджеры - плохая практика, надо работать в консоли, это быстрее, удобнее и т.д. Давайте воздержимся от этих бессмысленных споров. Пусть каждый работает так, как ему удобно. Мне удобно работать с MC, я к нему привык. И mcedit его люблю.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux #terminal #mc
4👍274👎3
Если вам приходится обслуживать сайты, работающие на php, то расскажу про небольшую настройку, которая по умолчанию отключена, но в некоторых случаях её имеет смысл включить. Речь пойдёт про логирование использования функции mail(), с помощью которой можно отправлять email сообщения.
Хорошо, если веб приложение умеет использовать сторонние SMTP сервера для отправки почты, а не прямую отправку через встроенную функцию. Но это не всегда так. Другая сторона медали - если сайт или хостинг взломают, то часто начинают слать спам через php напрямую. Это самое популярное использование взломанного каким-нибудь ботом сайта через публичную уязвимость. Через него либо сразу спам начинают слать, либо ддосить кого-нибудь, реже - майнить. Майнинг сразу видно по возросшей нагрузке. А вот почту можно и не заметить.
Я обычно в таких случаях ставлю для локальной отправки postfix и слежу за его логом. Если вы с почтовыми серверами не особо знакомы, а вам нужен просто список отправленных писем, где одно письмо - одна строчка, то с логированием сдрествами php будет проще всего. К тому же этот лог в том числе покажет, какой конкретно скрипт сделал отправку, что в логе почтового сервера не увидеть, там этой информации в принципе нет.
Идём в настройки php, в файл
Можно направить вывод в какой-то текстовый файл вместо syslog, но могут возникнуть нюансы с доступом, если, к примеру, у вас используется php-fpm и для каждого сайта запускается пул под своим отдельным пользователем. Использовать syslog как единое централизованное хранилище - более универсальное решение. Но тут уже вам решать, как удобнее, в зависимости от ваших настроек. Можно и из syslog сложить все записи в отдельный файл, отфильтровав их по вхождению фразы mail().
Для этого рисуем конфиг для rsyslog в файле
Перезапускаем rsyslog:
И перезапускаем службу php в зависимости от того, в каком виде она используется. Отдельно отмечу, что, к примеру, в Debian файл php.ini для модуля Apache, для php-fpm, для запуска консольных скриптов через cli свой. Не перепутайте, куда будете вносить правки. Либо вносите сразу во все. Лучше создать отдельный файл, вместо правки общего. То есть для php-fpm кладём настройку примерно сюда:
Принудительно проверить работу можно простейшим скриптом такого содержания:
Запускаем скрипт:
В файле
Видим скрипт
Не забудьте настроить ротацию этого файла, если будете хранить лог в отдельном файле. Добавьте примерно такой конфиг для logrotate в файле
Я обычно складываю все старые логи в отдельную директорию. Не забудьте её создать, если скопируете этот конфиг. Если будете логировать не по дням, а по размеру файла, то не забудьте настроить запуск logrotate чаще, чем раз в сутки. И так же туда надо будет добавить вместо daily дополнительные параметры:
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#webserver #php
Хорошо, если веб приложение умеет использовать сторонние SMTP сервера для отправки почты, а не прямую отправку через встроенную функцию. Но это не всегда так. Другая сторона медали - если сайт или хостинг взломают, то часто начинают слать спам через php напрямую. Это самое популярное использование взломанного каким-нибудь ботом сайта через публичную уязвимость. Через него либо сразу спам начинают слать, либо ддосить кого-нибудь, реже - майнить. Майнинг сразу видно по возросшей нагрузке. А вот почту можно и не заметить.
Я обычно в таких случаях ставлю для локальной отправки postfix и слежу за его логом. Если вы с почтовыми серверами не особо знакомы, а вам нужен просто список отправленных писем, где одно письмо - одна строчка, то с логированием сдрествами php будет проще всего. К тому же этот лог в том числе покажет, какой конкретно скрипт сделал отправку, что в логе почтового сервера не увидеть, там этой информации в принципе нет.
Идём в настройки php, в файл
php.ini и раскомментируем там строку:mail.log = syslogМожно направить вывод в какой-то текстовый файл вместо syslog, но могут возникнуть нюансы с доступом, если, к примеру, у вас используется php-fpm и для каждого сайта запускается пул под своим отдельным пользователем. Использовать syslog как единое централизованное хранилище - более универсальное решение. Но тут уже вам решать, как удобнее, в зависимости от ваших настроек. Можно и из syslog сложить все записи в отдельный файл, отфильтровав их по вхождению фразы mail().
Для этого рисуем конфиг для rsyslog в файле
/etc/rsyslog.d/php-mail.conf::msg, contains, "mail()" /var/log/mail-php.log& stopПерезапускаем rsyslog:
# systemctl restart rsyslogИ перезапускаем службу php в зависимости от того, в каком виде она используется. Отдельно отмечу, что, к примеру, в Debian файл php.ini для модуля Apache, для php-fpm, для запуска консольных скриптов через cli свой. Не перепутайте, куда будете вносить правки. Либо вносите сразу во все. Лучше создать отдельный файл, вместо правки общего. То есть для php-fpm кладём настройку примерно сюда:
/etc/php/8.2/fpm/conf.d/mail-log.conf.Принудительно проверить работу можно простейшим скриптом такого содержания:
<?php$to = "user@example.com";$subject = "Привет от PHP!";$message = "Это тестовое письмо, отправленное через PHP скрипт.";mail($to, $subject, $message);?>Запускаем скрипт:
# php mail.phpВ файле
/var/log/mail-php.log наблюдаем запись:2025-06-09T00:07:09.607068+03:00 debian12-vm php: mail() on [/root/mail.php:5]: To: user@example.com -- Headers: -- Subject: Привет от PHP!Видим скрипт
/root/mail.php и конкретную строку 5, где сработала функция mail(). Это может очень пригодится при отладке неправомерных отправлений с сервера.Не забудьте настроить ротацию этого файла, если будете хранить лог в отдельном файле. Добавьте примерно такой конфиг для logrotate в файле
/etc/logrotate.d/mail-php:/var/log/mail-php.log { rotate 30 daily missingok notifempty compress olddir /var/log/old}Я обычно складываю все старые логи в отдельную директорию. Не забудьте её создать, если скопируете этот конфиг. Если будете логировать не по дням, а по размеру файла, то не забудьте настроить запуск logrotate чаще, чем раз в сутки. И так же туда надо будет добавить вместо daily дополнительные параметры:
size=50M dateext dateformat -%Y-%m-%d_%H-%s❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#webserver #php
👍87👎2
Раз уж начал вчера тему про MC (Midnight Commander), разовью её и перечислю основную функциональность этого файлового менеджера, которой лично я постоянно пользуюсь. Может кто-то найдёт для себя что-то новое.
1️⃣ Закладки. Комбинация Ctrl-\. Практически всегда начинаю работу в MC с открытия закладок. У меня там стандартно есть
2️⃣ Поиск файла. Комбинация Ctrl-s. После выбора закладки и перехода в нужный каталог сразу же запускаю поиск по файлу и начинаю его набирать. Например, перехожу в
3️⃣ Подсветка синтаксиса. Комбинация в mcedit Ctrl-s. После открытия файла включаю или отключаю подсветку синтаксиса, в зависимости то того, что хочу сделать. Если это огромный лог файл, то из-за подсветки будет тормозить просмотр, лучше сразу убрать её. Для того, чтобы стандартная подсветка для sh скриптов действовала на все файлы, даже без расширения, делаю вот так:
Копирую подсветку sh на все неопознанные файлы. Обычно это различные конфиги или логи и там как раз sh подсветка будет актуальной.
4️⃣ Cвернуть окно. Комбинация Ctrl-o. Обычно всегда сворачиваю MC, а не закрываю. Так и работаю, перемещаясь то в консоль, то в MC. Использовать его консоль для выполнения команд не люблю.
5️⃣ Создание, копирование или переименование файла. Комбинации Shift-F4, Shift-F5 и Shift-F6. Можно сделать копию файла с другим именем. Удобно, если руками правишь конфиги. Тут же копируешь старый с добавлением
6️⃣ Обновить содержимое каталога. Комбинация Ctrl-r. Не так давно узнал случайно про эту комбинацию. Пользуюсь постоянно. До этого выходил и возвращался в каталог для обновления списка файлов.
7️⃣ Выбор или отмена выбора. На цифровой панели + или -. Выбрать файлы по маске или отменить выбор. Если цифровой панели нет, то Shift-+ (шифт и потом плюс). Чаще всего приходится выбирать все файлы, для этого используется маска *, либо сразу комбинация Shift-*. Она выделяет все файлы в каталоге.
8️⃣ Расширенный Chown. Комбинации клавиш для него нет. Нажимаю F9 ⇨ File ⇨ A. Открывается Advanced chown. Я работаю в нём вместо отдельных chmod и chown.
9️⃣ Поменять местами панели. Комбинация Сtrl-u.
🔟 Посмотреть размер каталога. Комбинация Ctrl-space. Если каталоги жирные, подсчёт идёт долго, то я сразу по списку каталогов иду, не отпуская Ctrl, нажимая пробел. После каждого нажатия происходит автоматический переход на новый каталог. Так всё прокликав можно быстро либо очень большой каталог найти, либо пустой. Либо можно сначала выделить все каталоги и нажать Ctrl-space.
⏸️ Подстановка имени в консоль. Комбинация Esc-enter. Переходим к файлу, подставляем его имя в консоль, сворачиваем MC и потом в консоли работаем с выбранным файлом.
Есть ещё куча всяких комбинаций клавиш, но я даже не вспомню их, так что не использую, не считая однокнопочных, типа копирования или перемещения файлов. А эти уже на автомате вылетают. Так что когда мне кто-то говорит, что в консоли удобнее и быстрее, мне этого не понять. Что-то может и удобнее, а что-то явно нет.
Ещё некоторые моменты. Чтобы быстро получить путь каталога в буфер обмена, в котором я нахожусь в MC, сворачиваю его, пишу
MC можно запустить с разными темами. Бывает актуально, если какой-то цвет совсем нечитаем в текущей гамме. Можно чёрно-белый режим открыть, или какую-то тему выбрать:
Последняя вообще прикольная тема. Я иногда её на постоянку ставлю для выделения сервера. Обычно на какие-то свои.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux #termianl #mc
/etc и /var/log, а дальше уже в зависимости от назначения сервера - каталог с бэкапами, каталог веб сервера, вольюмы контейнеров и т.д./var/log, нажимаю поиск и начинаю набирать syslog. Сразу же попадаю на нужный файл, набрав только sy.# cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntaxКопирую подсветку sh на все неопознанные файлы. Обычно это различные конфиги или логи и там как раз sh подсветка будет актуальной.
.old. Либо переименовываешь текущий конфиг, чтобы отключить его. Например, добавляя к site.conf расширение .disabled. Я обычно так отключаю конфиги, не удаляю.🔟 Посмотреть размер каталога. Комбинация Ctrl-space. Если каталоги жирные, подсчёт идёт долго, то я сразу по списку каталогов иду, не отпуская Ctrl, нажимая пробел. После каждого нажатия происходит автоматический переход на новый каталог. Так всё прокликав можно быстро либо очень большой каталог найти, либо пустой. Либо можно сначала выделить все каталоги и нажать Ctrl-space.
⏸️ Подстановка имени в консоль. Комбинация Esc-enter. Переходим к файлу, подставляем его имя в консоль, сворачиваем MC и потом в консоли работаем с выбранным файлом.
Есть ещё куча всяких комбинаций клавиш, но я даже не вспомню их, так что не использую, не считая однокнопочных, типа копирования или перемещения файлов. А эти уже на автомате вылетают. Так что когда мне кто-то говорит, что в консоли удобнее и быстрее, мне этого не понять. Что-то может и удобнее, а что-то явно нет.
Ещё некоторые моменты. Чтобы быстро получить путь каталога в буфер обмена, в котором я нахожусь в MC, сворачиваю его, пишу
pwd и выделяю.MC можно запустить с разными темами. Бывает актуально, если какой-то цвет совсем нечитаем в текущей гамме. Можно чёрно-белый режим открыть, или какую-то тему выбрать:
# mc -b# mc -S darkfarПоследняя вообще прикольная тема. Я иногда её на постоянку ставлю для выделения сервера. Обычно на какие-то свои.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux #termianl #mc
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍302👎4
Я давно уже завёл привычку записывать название моделей и основные характеристики различной техники, которую покупаю: дата покупки, стоимость, инструкция, расходники. Текстовую информацию храню в отдельных заметках в Joplin, фотки и чеки в фотографиях, в отдельной папке для этого дела.
Такой формат хранения не очень удобен. Давно подумывал как-то всё это организовать в более наглядном и удобном для поиска виде. На прошлой неделе попался видеообзор как раз такого рода продукта - DumbAssets. Показался интересным софт. Он как раз написан для таких же целей - хранить информацию о личной технике, либо компьютерном оборудовании. То есть в каких-то простых случаях можно и для работы использовать.
Развернул эту штуку у себя и попробовал:
Софт очень простой. Аутентификации нет, но веб морду можно закрыть четырёхзначным пинкодом. В программу можно добавлять устройства, указывать их основные характеристики, в том числе гарантийный срок и регулярные регламентные обслуживания.
Визуально выглядит неплохо, но как-то совсем простовато по возможностям. Даже тип валюты поменять нельзя. Для выстраивания структуры есть только тэги.
Может кто-то знает ещё подобный софт, только более продвинутый? Понятно, что эту функциональность обычно навешивают на полноценное ПО для инвентаризации и учёта оборудования, типа Glpi, Snipe-IT, Ralph и т.д. Но может есть что-то более простое и удобное именно для целей учёта оборудования, без всего остального в виде перемещений, договоров, лицензий, складов и т.д.
Больше интересно это для личного использования. Занести туда автомобиль, всю технику, в том числе с дачи. Там и расходники, и фильтра, и масла и т.д. Всё это периодически менять, чистить, проверять надо. Я характеристики своих компов, ноутов, мониторов, смартфонов тоже в текстовом виде держу, чтобы понимать, что у меня есть в наличии и что надо в перспективе обновлять. В большой семье нетривиальная задача всё держать в порядке и учёте. У меня только в семье в управлении 5 ноутов, 2 системных блока, 4 монитора, 6 смартфонов. Про инструмент вообще молчу, там позиций 20-25 будет. Уже даже и не помню, что у меня есть и где лежит. Надо всё записывать.
⇨ 🌐 Сайт / Исходники / Видеообзор / Демо
#управление
Такой формат хранения не очень удобен. Давно подумывал как-то всё это организовать в более наглядном и удобном для поиска виде. На прошлой неделе попался видеообзор как раз такого рода продукта - DumbAssets. Показался интересным софт. Он как раз написан для таких же целей - хранить информацию о личной технике, либо компьютерном оборудовании. То есть в каких-то простых случаях можно и для работы использовать.
Развернул эту штуку у себя и попробовал:
# docker run -p 3000:3000 -v $(pwd)/data:/app/data dumbwareio/dumbassets:latestСофт очень простой. Аутентификации нет, но веб морду можно закрыть четырёхзначным пинкодом. В программу можно добавлять устройства, указывать их основные характеристики, в том числе гарантийный срок и регулярные регламентные обслуживания.
Визуально выглядит неплохо, но как-то совсем простовато по возможностям. Даже тип валюты поменять нельзя. Для выстраивания структуры есть только тэги.
Может кто-то знает ещё подобный софт, только более продвинутый? Понятно, что эту функциональность обычно навешивают на полноценное ПО для инвентаризации и учёта оборудования, типа Glpi, Snipe-IT, Ralph и т.д. Но может есть что-то более простое и удобное именно для целей учёта оборудования, без всего остального в виде перемещений, договоров, лицензий, складов и т.д.
Больше интересно это для личного использования. Занести туда автомобиль, всю технику, в том числе с дачи. Там и расходники, и фильтра, и масла и т.д. Всё это периодически менять, чистить, проверять надо. Я характеристики своих компов, ноутов, мониторов, смартфонов тоже в текстовом виде держу, чтобы понимать, что у меня есть в наличии и что надо в перспективе обновлять. В большой семье нетривиальная задача всё держать в порядке и учёте. У меня только в семье в управлении 5 ноутов, 2 системных блока, 4 монитора, 6 смартфонов. Про инструмент вообще молчу, там позиций 20-25 будет. Уже даже и не помню, что у меня есть и где лежит. Надо всё записывать.
⇨ 🌐 Сайт / Исходники / Видеообзор / Демо
#управление
👍86👎7
Когда гуглишь какие-то ошибки по Linux и сопутствующему ПО, очень часто попадаешь на сайт access.redhat.com, где есть решения. Но проблема в том, что без подписки ты не можешь посмотреть ответ, только текст ошибки. Это раздражает и расстраивает.
Раньше это не представляло большой проблемы, так как достаточно бесплатной подписки Red Hat Developer Subscription for Individuals. Я даже статью делал о том, как её получить. Не пользовался никакими возможностями этой подписки, кроме доступа к порталу со статьями.
Проблема в том, что подписку надо продлевать каждый год. После 2022 года из-за экспортных ограничений, которые ввело правительство США, сделать это стало невозможно. А если быть точным, то как раньше стало невозможно, но в целом возможно и я расскажу, как это сделать.
У меня уже была учётка в RedHat, поэтому расскажу, как сделать с уже существующей. Если будете делать новую, то сразу вводите те данные, что я расскажу.
Я включил VPN из США, залогинился в учётную запись и поменял адрес с телефоном. Просто открыл карту США и вбил первый попавшийся адрес с номером телефона. Мне пришло подтверждение моего почтового адреса на email. Подтвердил его. Без этого меня не пускали в новый ЛК, ссылаясь на ограничения.
После этого пошёл по адресу developers.redhat.com/register, но не стал регистрировать, а вместо этого справа вверху нажал Login и зашёл под своей учёткой. У меня открылась форма регистрации с уже заполненными из профиля полями. И в конце не был отмечен чекбокс I have read and agree to the Red Hat Developer Subscriptions for Individuals. Отметил его и завершил регистрацию.
Собственно, всё. После этого в личном кабинете у меня появилась свежая подписка Red Hat Developer Subscription for Individuals. Далее я прошёл в их новую консоль для управления всем и вся console.redhat.com. Там уже не помню, что конкретно сделал, но подписка активировалась и добавилась ещё одна - Red Hat Beta Access.
Сначала доступ к материалам не открылся. Я расстроился. Несколько раз выходил и заходил снова в учётку, чистил кэш и куки. Почему-то ничего не помогало. В итоге открыл браузер в инкогнито, ещё раз залогинился и все материалы открылись.
С этой подпиской вам дают 16 лицензий на использование ОС RHEL. Мне и даром это не нужно. Подписку сделал исключительно, чтобы в гугле в результатах поиска иметь возможность прочитать материал. Несмотря на все ИИ, материалы с access.redhat.com представляют определённую ценность. Не раз там находил решения своих проблем, поэтому всегда старался настроить подписку.
Нигде не видел информации о том, как получить сейчас эту подписку. Интуитивно сделал всё сам, пробуя разные варианты. За пару часов разобрался.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux
Раньше это не представляло большой проблемы, так как достаточно бесплатной подписки Red Hat Developer Subscription for Individuals. Я даже статью делал о том, как её получить. Не пользовался никакими возможностями этой подписки, кроме доступа к порталу со статьями.
Проблема в том, что подписку надо продлевать каждый год. После 2022 года из-за экспортных ограничений, которые ввело правительство США, сделать это стало невозможно. А если быть точным, то как раньше стало невозможно, но в целом возможно и я расскажу, как это сделать.
У меня уже была учётка в RedHat, поэтому расскажу, как сделать с уже существующей. Если будете делать новую, то сразу вводите те данные, что я расскажу.
Я включил VPN из США, залогинился в учётную запись и поменял адрес с телефоном. Просто открыл карту США и вбил первый попавшийся адрес с номером телефона. Мне пришло подтверждение моего почтового адреса на email. Подтвердил его. Без этого меня не пускали в новый ЛК, ссылаясь на ограничения.
После этого пошёл по адресу developers.redhat.com/register, но не стал регистрировать, а вместо этого справа вверху нажал Login и зашёл под своей учёткой. У меня открылась форма регистрации с уже заполненными из профиля полями. И в конце не был отмечен чекбокс I have read and agree to the Red Hat Developer Subscriptions for Individuals. Отметил его и завершил регистрацию.
Собственно, всё. После этого в личном кабинете у меня появилась свежая подписка Red Hat Developer Subscription for Individuals. Далее я прошёл в их новую консоль для управления всем и вся console.redhat.com. Там уже не помню, что конкретно сделал, но подписка активировалась и добавилась ещё одна - Red Hat Beta Access.
Сначала доступ к материалам не открылся. Я расстроился. Несколько раз выходил и заходил снова в учётку, чистил кэш и куки. Почему-то ничего не помогало. В итоге открыл браузер в инкогнито, ещё раз залогинился и все материалы открылись.
С этой подпиской вам дают 16 лицензий на использование ОС RHEL. Мне и даром это не нужно. Подписку сделал исключительно, чтобы в гугле в результатах поиска иметь возможность прочитать материал. Несмотря на все ИИ, материалы с access.redhat.com представляют определённую ценность. Не раз там находил решения своих проблем, поэтому всегда старался настроить подписку.
Нигде не видел информации о том, как получить сейчас эту подписку. Интуитивно сделал всё сам, пробуя разные варианты. За пару часов разобрался.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#linux
👍175👎5
Существует известный сервис Ngrok для публикации веб приложений без прямого доступа к ним из интернета. Сервис выступает условно как публичный обратный прокси для вашего проекта. У него есть аналоги - localtunnel и Cloudflare Argo Tunnel. На днях в Яндексе вбил Ngrok, хотел освежить о нём информацию, и тут же первой строкой мне выскочила реклама аналогичного российского сервиса cloudpub. У него есть бесплатный тарифный план, так что решил попробовать.
Кратко поясню, как эти сервисы работают. Допустим, вы запускаете где-то у себя в локальном окружении какой-то веб сервер, например Nginx. Для него нет никаких пробросов портов, он никак не опубликован в интернет. А вы хотите, чтобы из интернета кто-то на него попадал. Например, это ваш личный Proxmox, у вас серый IP от провайдера, вы не хотите настраивать VPN, но хотите попадать в веб интерфейс откуда угодно.
Для этого вы регистрируетесь в сервисе, скачиваете к себе на сервер их клиент, запускаете его. И дальше через личный кабинет настраиваете публикацию вашего локального веб сервиса, куда вы поставили этого клиента. Получаете какой-то URL на временном домене или подключаете свой. И по этому урлу заходите через интернет на свой сервис. Плюс, этот сервис обычно поддерживает дополнительную функциональность в виде TLS сертификатов, дополнительной аутентификации и т.д. Всё это довольно удобно и пользуется спросом как в корпоративном сегменте, так и у продвинутых домашних пользователей.
В cloudpub всё примерно так же. Зарегистрировался на сайте, достаточно только email. Телефон или что-то ещё не нужно. В личном кабинете сразу же открывается инструкция, как пользоваться:
1️⃣ Скачиваешь на машину клиент. Поддерживаются клиенты под Windows, Linux, macOS, либо универсальный в Docker. Есть как с GUI, так и полностью консольные.
2️⃣ Распаковываешь клиент, проходишь аутентификацию:
3️⃣ Публикуешь веб сервис, который тут крутится:
Получаешь ссылку на случайный поддомен на базе cloudpub.ru.
4️⃣ В личном кабинете видно эту публикацию. Её можно изменить: поменять поддомен, включить дополнительную аутентификацию, добавить какие-то заголовки к HTTP запросам.
Это я описал работу бесплатного тарифного плана, который автоматом подключается после регистрации. В целом всё просто и удобно. Нигде не столкнулся с какими-то проблемами. Отмечу, что сервис мне незнаком, увидел впервые. Автора или компанию, которая его поддерживает, тоже не знаю. Используйте на свой страх и риск. Код клиента, кстати, открыт. Сделан на базе rathole.
Сразу предупрежу, не надо писать, что это реклама и т.д. У меня никто не заказывал никакую рекламу. Первый раз увидел сервис и попробовал. Почему-то когда я обозреваю какие-то иностранные сервисы, никто не пишет, что это реклама. Стоит написать про что-то отечественное, так сразу появляются претензии, что я что-то рекламирую. Вся заказная реклама публикуется с маркировкой в соответствии с законом о рекламе. Без исключений. Всё, что без отметок, это моя личная инициатива. За всё время ведения канала не было ни одного исключения.
#webserver #отечественное
Кратко поясню, как эти сервисы работают. Допустим, вы запускаете где-то у себя в локальном окружении какой-то веб сервер, например Nginx. Для него нет никаких пробросов портов, он никак не опубликован в интернет. А вы хотите, чтобы из интернета кто-то на него попадал. Например, это ваш личный Proxmox, у вас серый IP от провайдера, вы не хотите настраивать VPN, но хотите попадать в веб интерфейс откуда угодно.
Для этого вы регистрируетесь в сервисе, скачиваете к себе на сервер их клиент, запускаете его. И дальше через личный кабинет настраиваете публикацию вашего локального веб сервиса, куда вы поставили этого клиента. Получаете какой-то URL на временном домене или подключаете свой. И по этому урлу заходите через интернет на свой сервис. Плюс, этот сервис обычно поддерживает дополнительную функциональность в виде TLS сертификатов, дополнительной аутентификации и т.д. Всё это довольно удобно и пользуется спросом как в корпоративном сегменте, так и у продвинутых домашних пользователей.
В cloudpub всё примерно так же. Зарегистрировался на сайте, достаточно только email. Телефон или что-то ещё не нужно. В личном кабинете сразу же открывается инструкция, как пользоваться:
1️⃣ Скачиваешь на машину клиент. Поддерживаются клиенты под Windows, Linux, macOS, либо универсальный в Docker. Есть как с GUI, так и полностью консольные.
# wget https://cloudpub.ru/download/stable/clo-1.7.0-stable-linux-x86_64.tar.gz2️⃣ Распаковываешь клиент, проходишь аутентификацию:
# tar xzvf clo-1.7.0-stable-linux-x86_64.tar.gz # ./clo login3️⃣ Публикуешь веб сервис, который тут крутится:
# ./clo publish http 80Получаешь ссылку на случайный поддомен на базе cloudpub.ru.
4️⃣ В личном кабинете видно эту публикацию. Её можно изменить: поменять поддомен, включить дополнительную аутентификацию, добавить какие-то заголовки к HTTP запросам.
Это я описал работу бесплатного тарифного плана, который автоматом подключается после регистрации. В целом всё просто и удобно. Нигде не столкнулся с какими-то проблемами. Отмечу, что сервис мне незнаком, увидел впервые. Автора или компанию, которая его поддерживает, тоже не знаю. Используйте на свой страх и риск. Код клиента, кстати, открыт. Сделан на базе rathole.
Сразу предупрежу, не надо писать, что это реклама и т.д. У меня никто не заказывал никакую рекламу. Первый раз увидел сервис и попробовал. Почему-то когда я обозреваю какие-то иностранные сервисы, никто не пишет, что это реклама. Стоит написать про что-то отечественное, так сразу появляются претензии, что я что-то рекламирую. Вся заказная реклама публикуется с маркировкой в соответствии с законом о рекламе. Без исключений. Всё, что без отметок, это моя личная инициатива. За всё время ведения канала не было ни одного исключения.
#webserver #отечественное
👍145👎7