LinuxCamp | DevOps
Обо мне: C/C++/Linux эксперт. Говорим про разработку, Linux, DevOps, сети и администрирование. Админ (реклама): @XoDefender Чат: @linuxcamp_chat Менеджер: @Spiral_Yuri Биржа: https://telega.in/c/linuxcamp_tg РКН: https://clck.ru/3RWA3C
نمایش بیشتر📈 تحلیل کانال تلگرام LinuxCamp | DevOps
کانال LinuxCamp | DevOps (@linuxcamp_tg) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 13 959 مشترک است و جایگاه 9 131 را در دسته فناوری و برنامهها و رتبه 47 183 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 13 959 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 06 ژوئیه, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -98 و در ۲۴ ساعت گذشته برابر -3 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 27.85% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 10.66% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 3 888 بازدید دریافت میکند. در اولین روز معمولاً 1 489 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 23 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند linuxcamp, ядро, linux, диск, docker تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Обо мне: C/C++/Linux эксперт. Говорим про разработку, Linux, DevOps, сети и администрирование.
Админ (реклама): @XoDefender
Чат: @linuxcamp_chat
Менеджер: @Spiral_Yuri
Биржа: https://telega.in/c/linuxcamp_tg
РКН: https://clck.ru/3RWA3C”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 07 ژوئیه, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
sudo apt install jq
С yq важно не путать версию на Go с устаревшей на Python, у них разные возможности. Быстрее всего взять готовый бинарник с официального репозитория:
sudo wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/local/bin/yq
sudo chmod +x /usr/local/bin/yq
Как использовать?
jq читает данные из файла или из пайпа, что удобно, когда работаешь с api. Например, чтобы вытащить значение поля name из json:
jq '.name' config.json
Если внутри массив, можно пройти по каждому элементу и взять только нужные значения. Такой приём часто используют для вытаскивания id:
jq '.[].id' data.jsonyq делает то же самое с yaml и к тому же понимает json. Если нужно узнать, какой образ используется в docker-compose.yml:
yq '.services.app.image' docker-compose.ymlМенять файлы тоже просто, добавляем -i и задаём новое значение, например, меняем порт:
yq -i '.services.app.ports[0] = "8080:80"' docker-compose.ymlПолезно помнить, что оба инструмента можно комбинировать с grep, awk и другими утилитами, а yq умеет работать с вложенными yaml-файлами, что упрощает правку сложных конфигов kubernetes. Вывод: С помомью jq и yq можно автоматизировать множество рутинных задач: от чтения конфигов в ci/cd до быстрой правки параметров без открытия редактора. Такой подход экономит время и позволяет обрабатывать данные прямо в командной строке, без лишних инструментов. LinuxCamp | #utils
«Открываю терминал — и зависаю...»
«Смотрю туториалы, но в голове каша»
«Хочу примеры, которые реально встречаются в работе»Знакомо? Этот курс — для вас. Что в нём ценного: ☑️ Практики больше, чем теории — будете работать, а не просто слушать ☑️ От первого запуска Linux до самостоятельного администрирования серверов ☑️ Разберём ошибки, чтобы больше их не повторять ☑️ В конце — уверенная работа в Linux и сертификат в портфолио
«Когда открыл курс, понял, за что плачу. Это система, с практикой, поддержкой и глубоким погружением. На ***пике за 3 000₽ — даже рядом не стояло»Кому подойдёт? 👉 Новичкам, которые боятся командной строки 👉 Самоучкам, у которых в голове хаос 👉 Тем, кому не хватает практики и уверенности 👉 Тем, кто хочет стартовать в DevOps ❗️За 58 часов теории и 41 час практики вы наведёте порядок в знаниях. Посмотрите пример занятий на сайте курса «Администрирование Linux» и присоединяйтесь к нам 25 августа 📌
Сори за перезалив 🗣LinuxCamp | #services
sudo install -m 0755 -d /usr/local/bin
curl -L https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-linux-amd64 -o /tmp/ctop
sudo install -m 0755 /tmp/ctop /usr/local/bin/ctop
ctop -v
Использование:
Чтобы просмотреть ресурсы всех контейнеров на локальном хосте, достаточно выполнить одну команду:
ctopВ интерфейсе можно переключаться между контейнерами стрелками, останавливать или перезапускать их, а также открывать логи прямо оттуда. Если нужно подключиться к удалённому Docker, можно указать адрес перед запуском:
DOCKER_HOST=tcp://remote-host:2375 ctop
Для тех, кто не хочет ставить бинарник на хост, есть запуск из контейнера:
docker run --rm -ti \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
quay.io/vektorlab/ctop:latest
Чем отличается от docker stats:
docker stats тоже показывает ресурсы, но только в виде списка с метриками. В ctop всё представлено в виде интерактивной таблицы с сортировкой, поиском, фильтрацией и возможностью управлять контейнерами прямо из интерфейса.
Это удобнее, когда нужно не просто увидеть цифры, а быстро действовать, не выходя из одной программы.
Вывод:
С помощью ctop можно в пару команд получить наглядную картину по всем контейнерам, переключаться между хостами и при необходимости управлять ими прямо из терминала. Такой способ полезен как при мониторинге и отладке, так и при повседневной работе с Docker.
LinuxCamp | #utils #devops #docker #bymaga
sudo apt install fail2ban
По умолчанию fail2ban готов к работе сразу после установки. Чтобы убедиться, что он запущен и будет стартовать автоматически при перезагрузке системы, можно выполнить:
sudo systemctl enable --now fail2ban
Базовая настройка:
Основные параметры fail2ban находятся в конфигурационном файле. Чтобы его изменить, сначала создайте копию стандартного файла, так безопаснее и проще для управления:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Затем отредактируйте файл:
sudo nano /etc/fail2ban/jail.local
В самом верху задаются базовые настройки: сколько времени держать IP заблокированным (bantime), за какой промежуток времени подсчитывать неудачные попытки (findtime), и после скольких попыток банить (maxretry). Например:
[DEFAULT] ignoreip = 127.0.0.1 bantime = 3600 findtime = 600 maxretry = 5Здесь fail2ban будет банить IP на 1 час (3600 секунд), если за последние 10 минут (600 секунд) с него было 5 неудачных попыток входа. Отдельно включается защита SSH:
[sshd] enabled = true port = ssh logpath = %(sshd_log)sПосле внесения изменений нужно перезапустить fail2ban, чтобы они вступили в силу:
sudo systemctl restart fail2ban
Для проверки текущего состояния защиты SSH используется:
sudo fail2ban-client status sshd
Эта команда покажет, сколько IP-адресов сейчас заблокировано и сколько всего попыток было зафиксировано.
Вывод:
Использовать fail2ban рекомендуется вместе с другими подходами к защите сервера: строгой авторизацией только по ключам, изменением стандартного порта SSH, ограничением доступа с помощью firewall и регулярными обновлениями системы.
LinuxCamp | #utils
sudo apt install nethogs
Использование:
Запустить её можно вообще без параметров:
sudo nethogs
В этом случае она попытается определить интерфейс автоматически. Часто этого достаточно. Если ты точно знаешь, через какой интерфейс идёт трафик, чаще всего это eth0, но может быть ens18, enp0s3, wlan0, зависит от системы и типа подключения, то можешь указать его явно:
sudo nethogs eth0
После запуска ты увидишь список процессов, которые что-то скачивают или отдают. Указывается имя процесса, путь до исполняемого файла, пользователь, и скорость входящего/исходящего трафика.
Всё обновляется в реальном времени, можно наблюдать за сетевой активностью прямо на лету. Если не уверен, какой интерфейс использовать, глянь список всех с помощью команды:
ip aКоманда покажет список всех интерфейсов. Обычно нужный - это тот, где есть IP-адрес из подсети (например, 192.168.*.* или 10.*.*.*), и видно state UP. Вывод: Так можно удобно на сервере быстро понять, кто шумит. Или локально, если подозреваешь, что какая-то программа активно лезет в интернет. nethogs не показывает домены, IP-адреса или порты, а только процессы и их скорость. Но для локальной отладки этого обычно хватает с головой. LinuxCamp | #utils
docker run -p 8080:80 …
Или в docker-compose у тебя:
ports:
- "8080:80"
То Docker сам открывает порт всему интернету (0.0.0.0), даже если в ufw status его нет. Это значит, что любой человек из сети может достучаться до твоего контейнера и ufw это не остановит - Docker обходит его фильтры.
Как правильно защитить контейнер:
Лучше всего конечно вообще не открывать порт наружу, если в этом нет нужды. Безопасный вариант (локальный доступ):
docker run -p 127.0.0.1:8080:80 …
либо в docker-compose.yml:
ports:
- "127.0.0.1:8080:80"
Так сервис будет доступен только внутри сервера. Подходит для проксирования через nginx, который проксирует наружу, скрытых API и внутренних утилит, ssh-туннелей или VPN.
Вариант с открытым портом контейнера:
Если все-таки нужно по какой-то причине поднять контейнер на 0.0.0.0, то лучше закрыть эти порты с помощью правил. Docker поддерживает специальную цепочку DOCKER-USER, где ты можешь сам прописать фильтры:
# Разрешаем уже установленные соединения
sudo iptables -I DOCKER-USER -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Разрешаем только нужный порт (например, 8080)
sudo iptables -I DOCKER-USER -p tcp --dport 8080 -j ACCEPT
# Всё остальное режем
sudo iptables -A DOCKER-USER -j DROP
Важно: правила читаются сверху вниз, поэтому разрешающие вставляем перед правилом DROP.
Проверка:
ss -lntp | grep 8080 # Слушает ли портЕсли вывод пуст - порт больше не слушает «снаружи». Вывод: Docker по умолчанию открывает всё наружу, даже если UFW говорит, что порты закрыты. Если не нужен внешний доступ, не публикуй порты или публикуй на 127.0.0.1. Если доступ нужен - используй DOCKER-USER, чтобы жёстко ограничить доступ к нужным портам. LinuxCamp | #devops #docker #bymaga
sudo apt install autossh
Быстрый старт:
Достаточно заменить привычную команду ssh -L на autossh, добавив пару опций. Например, вместо:
ssh -L 5432:localhost:5432 user@111.111.111.111
Пишем:
autossh -M 0 -fN -L 5432:localhost:5432 user@111.111.111.111
Параметры тут важны. Флаг "-fN" означает запуск в фоне без запуска удалённой команды. Флаг "-M 0" отключает echo-порт, чтобы не мешал, — вместо него autossh будет использовать настройки keep-alive из SSH-конфига.
Надёжность через keep-alive:
Чтобы autossh действительно знал, когда туннель умер, нужно включить keep-alive. Добавьте в "~/.ssh/config":
Host * ServerAliveInterval 30 ServerAliveCountMax 3Теперь SSH будет каждые 30 секунд отправлять пинг на сервер. Если три пинга подряд не получат ответа, соединение считается мёртвым - и autossh запустит его заново. Примеры из практики: Обратный туннель (если сервер стоит за NAT или роутером):
autossh -M 0 -fN -R 2222:localhost:22 user@111.111.111.111
На VPS теперь можно выполнить ssh -p 2222 localhost — и попасть внутрь домашнего сервера, как будто он сам подключился. SOCKS-прокси с автопереподключением:
autossh -M 0 -fN -D 1080 user@111.111.111.111
Выставляете localhost:1080 в браузере - и получаете надёжный прокси, который не развалится при первой же потере Wi-Fi.
Автозапуск с systemd:
Если туннель нужен всегда (например, при старте сервера) — стоит обернуть autossh в systemd-сервис:
# /etc/systemd/system/db-tunnel.service
[Unit]
Description=Persistent SSH tunnel to prod DB
After=network-online.target
Wants=network-online.target
[Service]
User=deploy
ExecStart=/usr/bin/autossh -M 0 -N -L 5432:localhost:5432 deploy@db-host
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
Активировать можно одной командой:
sudo systemctl enable --now db-tunnel.service
Теперь туннель поднимется при загрузке сервера и будет перезапущен, если вдруг упадёт.
Вывод:
autossh незаметный, но жизненно важный инструмент. Просто заменяешь ssh на autossh, и туннель больше не рвётся. Настроил один раз - и забыл, что раньше ты делал это вручную.
LinuxCamp | #utils
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
