Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.Основные компоненты:
— Hooks: точки в сетевом стеке, через которые проходят пакеты (PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING).
— iptables/nftables: инструменты управления правилами фильтрации и перенаправления трафика.
— Connection Tracking: механизм, позволяющий отслеживать состояние соединений и применять stateful-фильтрацию.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥4
parallel ssh (pssh)
Когда десятки серверов, pssh экономит кучу времени. Вместо ручного обхода выполняем команды сразу везде.
Файл hosts.txt:
Базовые примеры:
Можно запускать скрипты:
А ещё есть pscp для копирования:
Когда десятки серверов, pssh экономит кучу времени. Вместо ручного обхода выполняем команды сразу везде.
Файл hosts.txt:
server1
server2
server3
Базовые примеры:
pssh -h hosts.txt -i "uptime" # посмотреть аптайм всех серверов
pssh -h hosts.txt -i "df -h /" # проверить свободное место на /
pssh -h hosts.txt -i "systemctl status nginx" # проверить nginx
Можно запускать скрипты:
pssh -h hosts.txt -i "bash /tmp/cleanup.sh"
А ещё есть pscp для копирования:
pscp -h hosts.txt local.conf /etc/myapp/config.conf
👍22❤6
screen vs tmux: зачем и в чём разница
Когда вы работаете по SSH и связь внезапно обрывается — все запущенные процессы (сборка, миграция БД, обновление пакетов) падают вместе с сессией.
Чтобы этого избежать, придумали терминальные мультиплексоры — программы, которые запускают «виртуальный терминал» внутри текущего, и процессы продолжают работать даже при отключении.
Два самых популярных инструмента: screen и tmux.
screen — классика Linux
Появился ещё в 1987 году. До сих пор предустановлен на множестве серверов.
Основные команды:
Особенности:
⏺ Работает почти везде «из коробки».
⏺ Очень лёгкий и простой.
⏺ Поддерживает разделение окна, но не очень удобно.
tmux — современный и функциональный
Разработан в 2007 году как альтернатива screen. Сейчас стал «дефолтным выбором» для большинства админов и девопсов.
Основные команды:
Фишки:
⏺ Красивый и настраиваемый статусбар.
⏺ Удобное разделение экрана на панели:
• Ctrl+b " — горизонтально
• Ctrl+b % — вертикально
⏺ Поддержка скриптов и плагинов.
⏺ Легко кастомизировать под свои привычки.
Когда вы работаете по SSH и связь внезапно обрывается — все запущенные процессы (сборка, миграция БД, обновление пакетов) падают вместе с сессией.
Чтобы этого избежать, придумали терминальные мультиплексоры — программы, которые запускают «виртуальный терминал» внутри текущего, и процессы продолжают работать даже при отключении.
Два самых популярных инструмента: screen и tmux.
screen — классика Linux
Появился ещё в 1987 году. До сих пор предустановлен на множестве серверов.
Основные команды:
screen # новая сессия
screen -S mywork # сессия с именем
screen -ls # список активных
screen -r mywork # восстановить сессию
Ctrl+a d # отцепиться
Особенности:
tmux — современный и функциональный
Разработан в 2007 году как альтернатива screen. Сейчас стал «дефолтным выбором» для большинства админов и девопсов.
Основные команды:
tmux new -s mywork # создать сессию
tmux ls # список
tmux attach -t mywork # вернуться
tmux detach # выйтил
Фишки:
• Ctrl+b " — горизонтально
• Ctrl+b % — вертикально
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥7❤3
Что делает команда ss -tulnp?
Anonymous Quiz
10%
Показывает таблицу маршрутов
87%
Отображает сетевые соединения и процессы, их использующие
2%
Меняет MTU
1%
Проверяет DNS
😁12❤2
Сравнение инструментов для анализа дисков: du, ncdu, dust
Обычные ls -lh или du дают базовую информацию, но не всегда позволяют удобно ориентироваться в больших структурах.
На помощь приходят несколько инструментов: du, ncdu и dust. Каждый имеет свои особенности и сценарии использования.
1️⃣ du
Классическая команда Linux для анализа дискового пространства. Позволяет узнать размер каталогов и файлов:
Минус — только текстовый вывод без удобной сортировки и навигации, сложнее работать с большим деревом каталогов.
2️⃣ ncdu
Интерактивный аналог du. Показывает древовидную структуру и позволяет перемещаться по каталогам, удалять или перемещать файлы прямо из интерфейса:
Идеально подходит для серверов с ограниченным SSD и для быстрой очистки логов или временных файлов.
3️⃣ dust
Современная альтернатива du, с более наглядным CLI-выводом. Показывает графики размеров папок и сортирует их по занимаемому пространству:
Когда на сервере заканчивается место, важно быстро понять, какие файлы и каталоги занимают его больше всего.
Обычные ls -lh или du дают базовую информацию, но не всегда позволяют удобно ориентироваться в больших структурах.
На помощь приходят несколько инструментов: du, ncdu и dust. Каждый имеет свои особенности и сценарии использования.
Классическая команда Linux для анализа дискового пространства. Позволяет узнать размер каталогов и файлов:
du -sh /var/log/*
Минус — только текстовый вывод без удобной сортировки и навигации, сложнее работать с большим деревом каталогов.
Интерактивный аналог du. Показывает древовидную структуру и позволяет перемещаться по каталогам, удалять или перемещать файлы прямо из интерфейса:
ncdu /var/log
Идеально подходит для серверов с ограниченным SSD и для быстрой очистки логов или временных файлов.
Современная альтернатива du, с более наглядным CLI-выводом. Показывает графики размеров папок и сортирует их по занимаемому пространству:
dust /home
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤4
Выпуск Wine 10.16
3 октября 2025 года вышла экспериментальная версия Wine 10.16 — открытой реализации Win32 API для Linux, macOS и BSD.
Подтверждена стабильная работа более 5 тыс. приложений для Windows, ещё 4 тыс. требуют дополнительных настроек.
Основные изменения:
⏺ Полная поддержка драйвера ntsync для повышения производительности игр через Wine (/dev/ntsync в ядре Linux 6.14).
⏺ Запуск 16-разрядных приложений в режиме WoW64.
⏺ Начальная поддержка объектов D3DKMT для низкоуровневого доступа к графике.
⏺ Генерация и установка файлов WinMD для API WinRT.
⏺ Исправлены баги в приложениях (Lotus Word Pro, Profi Cash, iTunes) и играх (S.T.A.L.K.E.R., Metro 2033, GTA: Vice City, Project CARS и др.).
3 октября 2025 года вышла экспериментальная версия Wine 10.16 — открытой реализации Win32 API для Linux, macOS и BSD.
С момента Wine 10.0 команда проекта обработала 34 отчёта об ошибках и внесла 364 исправления, большая часть работы выполнена 30 контрибуторами.
Подтверждена стабильная работа более 5 тыс. приложений для Windows, ещё 4 тыс. требуют дополнительных настроек.
Основные изменения:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤7
Аварийный режим загрузки (Emergency Mode)
Когда Linux-система не отвечает на обычные команды и даже комбинации Alt + SysRq не помогают, полезно знать про аварийный режим загрузки.
Это минимальная среда, позволяющая восстановить систему, исправить ошибки конфигурации или смонтировать проблемные файловые системы.
Как загрузиться в аварийном режиме:
1️⃣ Перезагрузите систему.
2️⃣ На экране загрузчика GRUB выберите нужное ядро и нажмите e для редактирования параметров.
3️⃣ Найдите строку, начинающуюся с linux и добавьте в конец:
4️⃣ Нажмите Ctrl+X или F10, чтобы загрузиться с изменёнными параметрами.
5️⃣ Система загрузится в однопользовательском режиме с минимальным окружением, предоставив root-доступ без запроса пароля (или с запросом, в зависимости от дистрибутива).
Что можно делать в Emergency Mode:
• Монтировать файловые системы вручную:
• Исправлять ошибки в /etc/fstab или конфигурационных файлах.
• Восстанавливать повреждённые пакеты или ядро.
• Проверять логи через journalctl или dmesg.
После исправления ошибок перезагрузите систему обычным образом:
Когда Linux-система не отвечает на обычные команды и даже комбинации Alt + SysRq не помогают, полезно знать про аварийный режим загрузки.
Это минимальная среда, позволяющая восстановить систему, исправить ошибки конфигурации или смонтировать проблемные файловые системы.
Как загрузиться в аварийном режиме:
systemd.unit=emergency.target
Что можно делать в Emergency Mode:
• Монтировать файловые системы вручную:
mount -o remount,rw /
• Исправлять ошибки в /etc/fstab или конфигурационных файлах.
• Восстанавливать повреждённые пакеты или ядро.
• Проверять логи через journalctl или dmesg.
После исправления ошибок перезагрузите систему обычным образом:
systemctl reboot
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤3
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.Это важно для систем с низкой задержкой, где нужно быстро реагировать на события. Включение preemption позволяет уменьшить время отклика приложений и улучшить интерактивность, но может немного снизить общую пропускную способность из-за увеличения накладных расходов на переключение контекста.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍6
Проверка и исправление прав на файлы с ACL
Цель тут убедиться, что файлы и папки имеют корректные права, особенно на веб-серверах или в проектах с несколькими пользователями.
ACL (Access Control List) позволяет задавать детализированный контроль доступа, выходящий за рамки стандартных chmod/chown.
Проверка прав с ACL:
На выходе вы увидите, кто и с каким доступом может читать, писать или выполнять файлы и папки. Это особенно полезно, когда несколько пользователей работают с одним каталогом и нужны гибкие права.
Установка или исправление прав для пользователя:
Здесь мы даём пользователю deploy полный доступ (чтение, запись, выполнение) к папке /var/www/html.
Добавление группы с ограниченными правами:
Группа developers получает права на чтение и выполнение, но не на запись.
Удаление ACL:
Удаляет все ACL, оставляя только стандартные права Unix (rwx для владельца, группы и остальных).
Цель тут убедиться, что файлы и папки имеют корректные права, особенно на веб-серверах или в проектах с несколькими пользователями.
ACL (Access Control List) позволяет задавать детализированный контроль доступа, выходящий за рамки стандартных chmod/chown.
Проверка прав с ACL:
getfacl /var/www/html
На выходе вы увидите, кто и с каким доступом может читать, писать или выполнять файлы и папки. Это особенно полезно, когда несколько пользователей работают с одним каталогом и нужны гибкие права.
Установка или исправление прав для пользователя:
setfacl -m u:deploy:rwx /var/www/html
Здесь мы даём пользователю deploy полный доступ (чтение, запись, выполнение) к папке /var/www/html.
Добавление группы с ограниченными правами:
setfacl -m g:developers:rx /var/www/html
Группа developers получает права на чтение и выполнение, но не на запись.
Удаление ACL:
setfacl -b /var/www/html
Удаляет все ACL, оставляя только стандартные права Unix (rwx для владельца, группы и остальных).
👍11❤4🔥1
Очистка неиспользуемых Docker-ресурсов
На серверах с активными контейнерами Docker быстро накапливаются старые образы, остановленные контейнеры, тома и сети.
Это может съедать дисковое пространство и замедлять работу новых контейнеров. Важно периодически проверять и очищать «мусор».
1️⃣ Просмотр dangling-образов
Dangling-образы — это старые образы без тегов, которые больше не используются:
Вывод покажет ID и размер каждого «зависшего» образа.
2️⃣ Очистка ненужных ресурсов
Docker умеет автоматически удалять все неиспользуемые объекты:
• -a — удаляет все неиспользуемые образы, не только dangling.
• --volumes — удаляет неиспользуемые тома.
3️⃣ Проверка освобожденного места
После очистки полезно проверить, сколько дискового пространства вернулось:
Вы увидите, сколько занято образами, контейнерами, томами и кэшем сборки.
На серверах с активными контейнерами Docker быстро накапливаются старые образы, остановленные контейнеры, тома и сети.
Это может съедать дисковое пространство и замедлять работу новых контейнеров. Важно периодически проверять и очищать «мусор».
Dangling-образы — это старые образы без тегов, которые больше не используются:
docker images -f "dangling=true"
Вывод покажет ID и размер каждого «зависшего» образа.
Docker умеет автоматически удалять все неиспользуемые объекты:
docker system prune -a --volumes
• -a — удаляет все неиспользуемые образы, не только dangling.
• --volumes — удаляет неиспользуемые тома.
После очистки полезно проверить, сколько дискового пространства вернулось:
docker system df
Вы увидите, сколько занято образами, контейнерами, томами и кэшем сборки.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍5
Ошибка Microsoft Defender вызвала ложные предупреждения о BIOS
Microsoft устраняет баг в Defender for Endpoint, из-за которого BIOS некоторых устройств, в частности Dell, ошибочно помечался как устаревший.
Ранее инженеры исправили черный экран на macOS после обновлений 29 сентября и ложные срабатывания антиспам-систем в Teams и Exchange Online.
⏺ Летом компания добавила в Defender для Office 365 автоматическое обнаружение и блокировку атак с использованием email-бомб, без ручной настройки — сообщения автоматически отправляются в «Спам».
Microsoft устраняет баг в Defender for Endpoint, из-за которого BIOS некоторых устройств, в частности Dell, ошибочно помечался как устаревший.
Исправление уже готовится к развёртыванию, но Microsoft пока не раскрывает регионы и число затронутых клиентов.
Ранее инженеры исправили черный экран на macOS после обновлений 29 сентября и ложные срабатывания антиспам-систем в Teams и Exchange Online.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤2
Управление swap в Linux без ребута
На серверах с высокой нагрузкой или ограниченной памятью иногда нужно добавить или убрать swap, изменить его приоритет или проверить использование — без перезагрузки системы.
1️⃣ Просмотр текущих swap-разделов и файлов
Вывод показывает, какие swap-файлы или swap-разделы активны, их размер и приоритет.
2️⃣ Включение swap-файла
Если нужно добавить новый swap-файл без перезагрузки:
• fallocate -l 2G — создаёт файл размером 2 ГБ
• mkswap — форматирует файл как swap
• swapon — активирует swap
3️⃣ Выключение swap
Чтобы временно отключить swap (например, для теста или очистки):
• -a — отключает все swap-разделы и файлы, указанные в /etc/fstab.
4️⃣ Изменение приоритета swap
Swap-файлы могут иметь разный приоритет (priority), что влияет на порядок их использования:
Более высокий приоритет означает, что swap будет использоваться раньше других.
5️⃣ Проверка использования swap
Показывает, сколько памяти занято и сколько swap используется.
На серверах с высокой нагрузкой или ограниченной памятью иногда нужно добавить или убрать swap, изменить его приоритет или проверить использование — без перезагрузки системы.
swapon --show
Вывод показывает, какие swap-файлы или swap-разделы активны, их размер и приоритет.
Если нужно добавить новый swap-файл без перезагрузки:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
• fallocate -l 2G — создаёт файл размером 2 ГБ
• mkswap — форматирует файл как swap
• swapon — активирует swap
Чтобы временно отключить swap (например, для теста или очистки):
sudo swapoff -a
• -a — отключает все swap-разделы и файлы, указанные в /etc/fstab.
Swap-файлы могут иметь разный приоритет (priority), что влияет на порядок их использования:
sudo swapon --show=NAME,PRIO
sudo swapon /swapfile -p 100
Более высокий приоритет означает, что swap будет использоваться раньше других.
free -h
Показывает, сколько памяти занято и сколько swap используется.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤3
Почему на продовом сервере нежелательно использовать swap на SSD при интенсивных нагрузках?
Anonymous Quiz
2%
Swap повышает производительность SSD
85%
Swap вызывает ускоренное изнашивание SSD из-за частых операций записи
5%
Swap не работает на SSD
8%
Swap отключает TRIM
❤9😁3🔥2👨💻1
Быстрая диагностика и устранение проблем с BIND (named)
BIND — один из самых распространённых DNS-серверов в Linux-средах. Он отвечает за трансляцию имён в IP и обратно, поддерживает зону прямого и обратного разрешения, DNSSEC и многое другое.
1️⃣ Проверяем статус сервиса
Если сервис не запущен — запустите его:
Если он падает — смотрим логи.
2️⃣ Логи BIND — первое место для поиска проблем
В зависимости от дистрибутива логи могут быть в /var/log/messages, /var/log/syslog или /var/log/named/named.log.
Чтобы быстро смотреть последние ошибки:
или
Обращайте внимание на ошибки синтаксиса, проблемы с зонами, отказ в доступе.
3️⃣ Проверка конфигурации BIND
Перед перезапуском всегда проверяйте конфигурацию:
Если команда не выводит ошибок — конфиг валидный.
4️⃣ Проверка файлов зон
Ошибки в зонах — частая причина проблем.
Проверяем файл зоны (например, zonefile.db):
Если есть ошибки — будут показаны с подробностями.
5️⃣ Тестируем DNS-запросы локально
Если ответ корректный — BIND работает локально.
6️⃣ Проверяем права и доступ к файлам
BIND должен иметь права читать зоны и конфиги:
Если проблемы с правами — исправьте:
7️⃣ Перезапуск BIND с выводом ошибок
Если сервис упал — посмотрите последние ошибки в журнале.
8️⃣ Обновление записей зоны без перезапуска — динамическое обновление
Если настроено, используйте:
Команда перезагрузит конкретную зону без остановки сервиса.
9️⃣ Диагностика проблем с сетевым доступом к BIND
Проверяем, слушает ли BIND на нужных интерфейсах:
Проверяем firewall:
Убедитесь, что порт 53 открыт для TCP и UDP.
BIND — один из самых распространённых DNS-серверов в Linux-средах. Он отвечает за трансляцию имён в IP и обратно, поддерживает зону прямого и обратного разрешения, DNSSEC и многое другое.
systemctl status named
Если сервис не запущен — запустите его:
systemctl start named
Если он падает — смотрим логи.
В зависимости от дистрибутива логи могут быть в /var/log/messages, /var/log/syslog или /var/log/named/named.log.
Чтобы быстро смотреть последние ошибки:
journalctl -u named -f
или
tail -f /var/log/named/named.log
Обращайте внимание на ошибки синтаксиса, проблемы с зонами, отказ в доступе.
Перед перезапуском всегда проверяйте конфигурацию:
named-checkconf
Если команда не выводит ошибок — конфиг валидный.
Ошибки в зонах — частая причина проблем.
Проверяем файл зоны (например, zonefile.db):
named-checkzone example.com /etc/bind/zones/example.com.db
Если есть ошибки — будут показаны с подробностями.
dig @localhost example.com
Если ответ корректный — BIND работает локально.
BIND должен иметь права читать зоны и конфиги:
ls -l /etc/bind/zones/
Если проблемы с правами — исправьте:
chown -R bind:bind /etc/bind/zones/
chmod 640 /etc/bind/zones/*.db
systemctl restart named
journalctl -xe -u named
Если сервис упал — посмотрите последние ошибки в журнале.
Если настроено, используйте:
rndc reload example.com
Команда перезагрузит конкретную зону без остановки сервиса.
Проверяем, слушает ли BIND на нужных интерфейсах:
ss -tulnp | grep named
Проверяем firewall:
iptables -L -n | grep 53
Убедитесь, что порт 53 открыт для TCP и UDP.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤4🔥2👎1
Пользователи нашли новые способы установки Windows 11 без учётной записи Microsoft и интернета
Эксперты и продвинутые пользователи выявили несколько вариантов обхода ограничений, позволяющих завершить первичную настройку Windows 11 без подключения к учётной записи Microsoft.
Это делает невозможным создание локальной учётной записи стандартными способами.
⏺ Тем не менее в марте 2025 года появились новые методы, которые позволяют использовать консоль разработчика и редактирование реестра для завершения настройки системы без интернета и Microsoft-аккаунта.
Эксперты и продвинутые пользователи выявили несколько вариантов обхода ограничений, позволяющих завершить первичную настройку Windows 11 без подключения к учётной записи Microsoft.
Ранее Microsoft усилила меры против обхода OOBE и удалила известные обходные сценарии, такие как BYPASSNRO и start ms-cxh:localonly.
Это делает невозможным создание локальной учётной записи стандартными способами.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍7😁1
iproute2: контроль трафика и QoS в Linux
iproute2 — это не просто ip addr и ip route.
С помощью него можно управлять приоритетами пакетов, ограничивать скорость и распределять трафик между сервисами.
Настройка QoS нужна, когда серверу нужно «делить» ограниченный канал между несколькими приложениями или виртуальными машинами.
⏺ Давай ограничим исходящий трафик на интерфейсе eth0 до 10 Мбит/с:
Проверяем настройки:
Удаляем ограничение:
Это поможет избежать перегрузки сети, при этом распределяя трафик более предсказуемо.
iproute2 — это не просто ip addr и ip route.
С помощью него можно управлять приоритетами пакетов, ограничивать скорость и распределять трафик между сервисами.
Настройка QoS нужна, когда серверу нужно «делить» ограниченный канал между несколькими приложениями или виртуальными машинами.
tc qdisc add dev eth0 root tbf rate 10mbit burst 32kbit latency 400ms
Проверяем настройки:
tc qdisc show dev eth0
Удаляем ограничение:
tc qdisc del dev eth0 root
Это поможет избежать перегрузки сети, при этом распределяя трафик более предсказуемо.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍6🤔1
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.Почему epoll лучше:
• O(1) сложность — ядро уведомляет только о готовых дескрипторах, вместо линейного прохода по всем, как в select() или poll().
• Edge-triggered режим — уведомление приходит только при изменении состояния, что снижает нагрузку на ядро.
• Работает с тысячами соединений — критично для высоконагруженных сетевых приложений, серверов и прокси.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥3
Как понять, что жрёт всю оперативку (и не тупо смотреть top)
top — хороший инструмент, но часто обманывает: считает shared-память по каждому процессу.
И кажется, будто у вас MySQL ест 6 ГБ, а nginx — ещё 4 (при том что всего 8 ГБ в системе).
Посмотреть реальную картину поможет:
Покажет, сколько памяти реально закреплено за каждым процессом.
Хочешь совсем наглядно — установи скрипт ps_mem:
Результат — короткий отчёт вроде:
И всё, без гадания на RES и SHR. Можно даже в cron добавить, чтобы присылало в Slack, когда какой-то сервис начинает разъедать память.
top — хороший инструмент, но часто обманывает: считает shared-память по каждому процессу.
И кажется, будто у вас MySQL ест 6 ГБ, а nginx — ещё 4 (при том что всего 8 ГБ в системе).
Посмотреть реальную картину поможет:
smem -r
Покажет, сколько памяти реально закреплено за каждым процессом.
Хочешь совсем наглядно — установи скрипт ps_mem:
sudo wget -O /usr/local/bin/ps_mem https://raw.githubusercontent.com/pixelb/ps_mem/master/ps_mem.py
sudo chmod +x /usr/local/bin/ps_mem
ps_mem
Результат — короткий отчёт вроде:
120.0 MiB + 10.0 MiB = 130.0 MiB nginx
350.0 MiB + 50.0 MiB = 400.0 MiB mysqld
И всё, без гадания на RES и SHR. Можно даже в cron добавить, чтобы присылало в Slack, когда какой-то сервис начинает разъедать память.
❤11👍10🔥1