Как восстановить SSH, если после обновления пакетов сервер не пускает
Иногда после апдейта openssh-server или ключевых библиотек SSH перестаёт работать: SSH-клиент зависает или отказывается подключаться.
Часто виноваты несовместимые конфиги или устаревшие ключи.
Если есть доступ к консоли (через провайдера или локальный терминал), первым делом проверь статус сервиса:
Попробуй перезапустить сервер SSH:
Если перезапуск не помогает — верни старый конфиг:
Иногда после апдейта openssh-server или ключевых библиотек SSH перестаёт работать: SSH-клиент зависает или отказывается подключаться.
Часто виноваты несовместимые конфиги или устаревшие ключи.
Если есть доступ к консоли (через провайдера или локальный терминал), первым делом проверь статус сервиса:
systemctl status ssh
Попробуй перезапустить сервер SSH:
systemctl restart ssh
Если перезапуск не помогает — верни старый конфиг:
cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
systemctl restart ssh
👎10👍8😁4❤2🫡1
Что делает команда ufw enable?
Anonymous Quiz
6%
Выводит статус firewall
89%
Включает uncomplicated firewall
4%
Отключает все правила
1%
Создаёт лог-файл
👍7😁5❤2
Сбой в AWS затронул множество сервисов по всему миру
Инженеры AWS продолжают устранять масштабный сетевой сбой в центре обработки данных US‑EAST-1.
AWS ограничивает запуск новых инстансов EC2 и снижает нагрузку на сетевые балансировщики, чтобы восстановить подключение и работу API.
В нескольких зонах уже наблюдаются первые признаки восстановления, остальные зоны постепенно приходят в норму.
⏺ Из-за сбоя пострадали Airtable, Canva, Signal, Snapchat, Fortnite, ChatGPT, Duolingo, Zoom, Ring, Hulu, Slack, Reddit, Roblox, Coinbase, Robinhood, приложения McDonald’s, United Airlines и Disney.
У пользователей Alexa колонки массово сообщали о недоступности интернета.
Инженеры AWS продолжают устранять масштабный сетевой сбой в центре обработки данных US‑EAST-1.
Проблема возникла во внутренней сети EC2 и затронула более 100 сервисов и тысячи клиентов.
AWS ограничивает запуск новых инстансов EC2 и снижает нагрузку на сетевые балансировщики, чтобы восстановить подключение и работу API.
В нескольких зонах уже наблюдаются первые признаки восстановления, остальные зоны постепенно приходят в норму.
У пользователей Alexa колонки массово сообщали о недоступности интернета.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4😁3
После изменения правил firewall или iptables сервер перестал отвечать по SSH?
Не паникуем👌
Сначала убедись, что есть доступ к консоли через провайдера или локальный терминал.
Временно откатить правила из бэкапа:
Протестировать новые правила перед применением:
Команда применяет изменения временно и даст 60 секунд на подтверждение. Если что-то пойдёт не так, правила откатятся автоматически.
Проверка текущих правил и соединений:
Так можно убедиться, что SSH и другие критичные сервисы доступны.
Не паникуем
Сначала убедись, что есть доступ к консоли через провайдера или локальный терминал.
Временно откатить правила из бэкапа:
iptables-restore < /etc/iptables/rules.v4.bak
Протестировать новые правила перед применением:
iptables-apply --test
Команда применяет изменения временно и даст 60 секунд на подтверждение. Если что-то пойдёт не так, правила откатятся автоматически.
Проверка текущих правил и соединений:
iptables -L -v -n
ss -tulnp
Так можно убедиться, что SSH и другие критичные сервисы доступны.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5😁2
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.С помощью kprobes можно логировать вход и выход из функций, изменять поведение отдельных вызовов и собирать статистику по производительности. Механизм безопасен, так как вставка точки трассировки не нарушает работу ядра и не требует перезагрузки системы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3
Изменил настройки firewall или iptables, и вдруг сервер «пропал» из сети?
Решаем так👇
Если есть доступ к консоли через провайдера или локальный терминал, сначала проверь, какие правила сейчас активны:
Можно временно применить новые правила и убедиться, что SSH остаётся доступен:
Если что-то пошло не так — откат произойдёт автоматически.
Для более безопасной работы всегда держи резервную копию:
И проверяй соединения:
Так можно экспериментировать с firewall, не теряя доступ к серверу.
Решаем так
Если есть доступ к консоли через провайдера или локальный терминал, сначала проверь, какие правила сейчас активны:
iptables -L -v -n
Можно временно применить новые правила и убедиться, что SSH остаётся доступен:
iptables-apply --test
Если что-то пошло не так — откат произойдёт автоматически.
Для более безопасной работы всегда держи резервную копию:
iptables-save > ~/iptables-backup-$(date +%F).rules
И проверяй соединения:
ss -tulnp
Так можно экспериментировать с firewall, не теряя доступ к серверу.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥6❤3🤡1
Чем отличается TCP-флаг RST от FIN?
Anonymous Quiz
10%
RST завершает соединение корректно
76%
FIN сообщает о конце передачи, RST — о сбое
5%
Оба выполняют «мягкое» завершение
9%
FIN используется только при SYN Flood
❤5👍1
Проверка, что реально грузит CPU
Когда сервер кажется «тормозным», top и htop часто показывают поверхностную картину.
Иногда виноваты shared библиотеки, а не сам процесс.
📝 smem — утилита, которая учитывает shared memory и показывает реальное потребление:
Выведет топ процессов по реальной памяти.
📝 pidstat — для мониторинга нагрузки в динамике:
Показывает, какие процессы жрут CPU каждые 2 секунды в течение 10 замеров.
Когда сервер кажется «тормозным», top и htop часто показывают поверхностную картину.
Иногда виноваты shared библиотеки, а не сам процесс.
smem -r | sort -nrk 4 | head -n 10
Выведет топ процессов по реальной памяти.
pidstat -u 2 10
Показывает, какие процессы жрут CPU каждые 2 секунды в течение 10 замеров.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4🔥3
Rust Coreutils 0.3.0: быстрее, безопаснее и почти как GNU
24 октября 2025 вышел Rust Coreutils 0.3.0 (uutils) — аналог GNU Coreutils, но на Rust.
Это более сотни утилит вроде ls, cat, chmod, sort и cp, переписанных с упором на кроссплатформенность и безопасность (работает даже на Windows, Redox и Fuchsia).
Что нового:
⏺ sort стал быстрее GNU-версии в 3.7 раза, base64 — в 1.2, uniq -c — в 1.13;
⏺ добавлена инфраструктура для автоматического трекинга производительности (через CodSpeed);
⏺ улучшена работа с путями, безопасное обращение с rm, du, chmod, chgrp;
⏺ меньше unsafe, больше Rust-подхода через crate nix;
⏺ добавлены новые флаги (--progress, --reference=file, --base58 и др.);
⏺ совместимость с GNU-тестами — 83.9% (немного ниже из-за новых тестов).
Rust Coreutils распространяется по MIT-лицензии, в отличие от GPL у GNU, и уже движется к полной замене классических coreutils.
24 октября 2025 вышел Rust Coreutils 0.3.0 (uutils) — аналог GNU Coreutils, но на Rust.
Это более сотни утилит вроде ls, cat, chmod, sort и cp, переписанных с упором на кроссплатформенность и безопасность (работает даже на Windows, Redox и Fuchsia).
Что нового:
Любопытный факт: именно из-за отсутствия флага --reference в date на Ubuntu 25.10 сломалось автообновление. Теперь всё исправили.
Rust Coreutils распространяется по MIT-лицензии, в отличие от GPL у GNU, и уже движется к полной замене классических coreutils.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤4🥱1
OSPF Passive Interface: контроль анонсов маршрутов
В крупных сетях бывают интерфейсы, которые должны только получать маршруты OSPF, но не формировать соседства.
Passive Interface решает эту проблему.
С его помощью интерфейс продолжает принимать маршруты, но не инициирует соседские сессии.
⏺ Маршрутизатор знает всё, что нужно, при этом сеть становится «тише», а нагрузка на CPU снижается.
На Cisco IOS настройка выглядит так:
После применения этой команды интерфейс GigabitEthernet0/1 перестанет отправлять hello-пакеты, но маршруты через другие интерфейсы продолжают работать корректно.
На Juniper JunOS принцип аналогичен:
Passive Interface особенно нужен на VLAN-подсетях и внутренних сегментах, где соседей нет.
🔥 Если сочетать passive mode с аутентификацией OSPF, вы получаете дополнительный уровень безопасности. Маршруты продолжают приходить, сеть остаётся стабильной, а ненужные пакеты hello больше не «шумят» в топологии.
В крупных сетях бывают интерфейсы, которые должны только получать маршруты OSPF, но не формировать соседства.
Если оставить их активными, маршрутизатор рассылает hello-пакеты на все интерфейсы, создавая лишний трафик и раскрывая топологию сети.
Passive Interface решает эту проблему.
С его помощью интерфейс продолжает принимать маршруты, но не инициирует соседские сессии.
На Cisco IOS настройка выглядит так:
router ospf 1
network 10.0.0.0 0.0.0.255 area 0
passive-interface GigabitEthernet0/1
После применения этой команды интерфейс GigabitEthernet0/1 перестанет отправлять hello-пакеты, но маршруты через другие интерфейсы продолжают работать корректно.
На Juniper JunOS принцип аналогичен:
protocols ospf {
interface ge-0/0/1.0 {
passive
}
}Passive Interface особенно нужен на VLAN-подсетях и внутренних сегментах, где соседей нет.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍4🔥1
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.При изменении структуры создаётся её новая версия, обновление “публикуется”, а старые версии остаются доступными для текущих читателей. После того как все старые читатели завершили работу, ядро удаляет устаревшие копии.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥3
udev: управление устройствами автоматически
В Linux устройства появляются и исчезают постоянно — USB-диски, сетевые карты, внешние диски.
⏺ Тут поможет udev — подсистема, которая позволяет автоматически выполнять действия при появлении устройства.
udev работает через правила, которые проверяют свойства устройства: тип, серийный номер, производитель, интерфейс.
В зависимости от условий можно задавать имя устройства, права, группу, запускать скрипты или автоматически монтировать диск.
Например, правило для автоматического переименования USB-диска по серийному номеру выглядит так:
После перезагрузки или переподключения устройства оно всегда будет называться /dev/usb_backup.
Чтобы автоматически монтировать диск с конкретными правами, можно использовать RUN и mount:
udev позволяет назначать права и группы для устройств, например, чтобы обычный пользователь мог записывать на USB-диск:
Файлы правил обычно лежат в /etc/udev/rules.d/. После добавления или изменения правил нужно перезагрузить udev:
В Linux устройства появляются и исчезают постоянно — USB-диски, сетевые карты, внешние диски.
Если каждый раз вручную менять права, монтировать или переименовывать — это неудобно.
udev работает через правила, которые проверяют свойства устройства: тип, серийный номер, производитель, интерфейс.
В зависимости от условий можно задавать имя устройства, права, группу, запускать скрипты или автоматически монтировать диск.
Например, правило для автоматического переименования USB-диска по серийному номеру выглядит так:
SUBSYSTEM=="block", ATTRS{serial}=="12345678", NAME="usb_backup"После перезагрузки или переподключения устройства оно всегда будет называться /dev/usb_backup.
Чтобы автоматически монтировать диск с конкретными правами, можно использовать RUN и mount:
SUBSYSTEM=="block", ATTRS{serial}=="12345678", ACTION=="add", RUN+="/usr/bin/mount /dev/%k /mnt/backup"udev позволяет назначать права и группы для устройств, например, чтобы обычный пользователь мог записывать на USB-диск:
SUBSYSTEM=="block", ATTRS{serial}=="12345678", MODE="0660", GROUP="users"Файлы правил обычно лежат в /etc/udev/rules.d/. После добавления или изменения правил нужно перезагрузить udev:
sudo udevadm control --reload
sudo udevadm trigger
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4🔥4
logrotate для нестандартных каталогов
В Linux большинство системных логов лежит в /var/log, и для них уже настроена ротация.
Без ротации такие файлы могут быстро «съесть» диск. Для этого используется logrotate с кастомными конфигурациями.
Создаём файл конфигурации для нашего приложения, например /etc/logrotate.d/myapp:
Что здесь происходит: файлы логов в /opt/myapp/logs/ будут ротацироваться каждый день, храниться 7 архивов, старые версии будут сжиматься, а если лог пустой — пропускается.
⏺ После ротации сервис перезагружается, чтобы продолжить писать в новый файл.
Проверить конфигурацию можно в режиме dry-run:
И вручную запустить ротацию:
В Linux большинство системных логов лежит в /var/log, и для них уже настроена ротация.
Но приложения часто пишут логи в свои каталоги, например /opt/myapp/logs или /srv/service/logs.
Без ротации такие файлы могут быстро «съесть» диск. Для этого используется logrotate с кастомными конфигурациями.
Создаём файл конфигурации для нашего приложения, например /etc/logrotate.d/myapp:
/opt/myapp/logs/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 myuser mygroup
postrotate
systemctl reload myapp
endnoscript
}Что здесь происходит: файлы логов в /opt/myapp/logs/ будут ротацироваться каждый день, храниться 7 архивов, старые версии будут сжиматься, а если лог пустой — пропускается.
Проверить конфигурацию можно в режиме dry-run:
sudo logrotate -d /etc/logrotate.d/myapp
И вручную запустить ротацию:
sudo logrotate -f /etc/logrotate.d/myapp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤5👎1
Какой тип изоляции обеспечивает Docker при запуске контейнеров? (Простой)
Anonymous Quiz
10%
Полная виртуализация
78%
Изоляция на уровне ядра через namespaces и cgroups
4%
Эмуляция оборудования
8%
Изоляция через гипервизор
❤8👍3
systemd Path Units: запуск сервисов по событиям файловой системы
В Linux часто возникает задача: сервис должен запускаться только при появлении или изменении файла или каталога, а не висеть постоянно в фоне.
⏺ Для таких сценариев systemd предлагает Path Units. Это единицы, которые отслеживают файловую систему и могут запускать обычные сервисы при срабатывании события.
Например, у нас есть каталог /srv/watch и сервис process-files.service, который должен обрабатывать новые файлы. Сначала создаём Path Unit:
Path Unit отслеживает появление или изменение файлов в указанной директории. Когда событие происходит, systemd запускает связанный service unit.
Service Unit может выглядеть так:
После создания единиц активируем Path Unit:
В Linux часто возникает задача: сервис должен запускаться только при появлении или изменении файла или каталога, а не висеть постоянно в фоне.
Например, у нас есть каталог /srv/watch и сервис process-files.service, который должен обрабатывать новые файлы. Сначала создаём Path Unit:
# /etc/systemd/system/watch-files.path
[Unit]
Denoscription=Watch /srv/watch for new files
[Path]
PathExists=/srv/watch
PathChanged=/srv/watch
[Install]
WantedBy=multi-user.target
Path Unit отслеживает появление или изменение файлов в указанной директории. Когда событие происходит, systemd запускает связанный service unit.
Service Unit может выглядеть так:
# /etc/systemd/system/process-files.service
[Unit]
Denoscription=Process new files
[Service]
Type=oneshot
ExecStart=/usr/local/bin/process_new_files.sh
После создания единиц активируем Path Unit:
sudo systemctl daemon-reload
sudo systemctl enable --now watch-files.path
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤4
Ошибка команды date в Ubuntu 25.10 нарушила автообновления
В Ubuntu 25.10 команда date из набора uutils на Rust не поддерживала опцию -r.
Проблема затронула облачные развёртывания, контейнеры, Desktop и Server. Ручное обновление через apt работало корректно.
Исправлено в пакете rust-coreutils 0.2.2-0ubuntu2.1:
⏺ Причина: при релизе Ubuntu 25.10 изменения с поддержкой -r в uutils не были включены, и ошибка не проявлялась в тестах, так как вызов date -r не выдавал ошибку.
В Ubuntu 25.10 команда date из набора uutils на Rust не поддерживала опцию -r.
Скрипт apt.systemd.daily, проверяющий время последних обновлений, всегда получал текущее время и считал систему обновлённой.
Проблема затронула облачные развёртывания, контейнеры, Desktop и Server. Ручное обновление через apt работало корректно.
Исправлено в пакете rust-coreutils 0.2.2-0ubuntu2.1:
sudo apt update
sudo apt install --only-upgrade rust-coreutils
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍5🤬2🤡1🥱1
lockf / fcntl: синхронизация через файлы
Когда несколько процессов работают с одним ресурсом, важно предотвратить конфликты.
Для этого есть lockf и fcntl — более гибкие аналоги flock.
Пример с lockf:
В Python с fcntl можно блокировать файл или его часть:
Когда несколько процессов работают с одним ресурсом, важно предотвратить конфликты.
Для этого есть lockf и fcntl — более гибкие аналоги flock.
Пример с lockf:
exec 200>/var/lock/myapp.lock
lockf -t 0 200 || exit 1
echo "Process $$ is running" >> /var/log/myapp.log
В Python с fcntl можно блокировать файл или его часть:
import fcntl
with open("/var/lock/myapp.lock", "w") as f:
fcntl.flock(f, fcntl.LOCK_EX)
f.write("Process is running\n")
❤6🔥2
inotifywait: реакции на изменения файлов в реальном времени
Иногда нужно отследить, когда меняется файл — лог, конфиг или каталог с бэкапами.
tail -f помогает только смотреть, но не реагировать.
А вот inotifywait из пакета inotify-tools позволяет «подслушивать» изменения и запускать действия сразу.
Как отследить обновление конфига nginx
После каждой модификации inotifywait выведет событие — например:
Автоматический reload при изменении
Теперь при каждом сохранении файла nginx перезагрузится без твоего участия.
Мониторинг каталога
Следит рекурсивно за всеми файлами — удобно для dev-среды, где файлы часто меняются.
Типы событий
• create — создан файл
• delete — удалён
• modify — изменён
• close_write — файл записан и закрыт
• move — переименован или перемещён
Можно комбинировать:
Иногда нужно отследить, когда меняется файл — лог, конфиг или каталог с бэкапами.
tail -f помогает только смотреть, но не реагировать.
А вот inotifywait из пакета inotify-tools позволяет «подслушивать» изменения и запускать действия сразу.
Как отследить обновление конфига nginx
inotifywait -m /etc/nginx/nginx.conf
После каждой модификации inotifywait выведет событие — например:
/etc/nginx/ MODIFY nginx.conf
Автоматический reload при изменении
while inotifywait -e close_write /etc/nginx/nginx.conf; do
systemctl reload nginx
done
Теперь при каждом сохранении файла nginx перезагрузится без твоего участия.
Мониторинг каталога
inotifywait -m -r /var/www/html
Следит рекурсивно за всеми файлами — удобно для dev-среды, где файлы часто меняются.
Типы событий
• create — создан файл
• delete — удалён
• modify — изменён
• close_write — файл записан и закрыт
• move — переименован или перемещён
Можно комбинировать:
inotifywait -e create,delete,move /opt/data
❤8👍6
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.Как это работает:
• Ядро поддерживает два списка: active и inactive.
• Активные страницы недавно использовались, неактивные — давно не трогались.
• При нехватке памяти запускается kswapd, который перемещает страницы из active → inactive и затем освобождает их, сбрасывая dirty-страницы на диск или удаляя чистые.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍5