Как работают серверы: практическое введение в TCP-сокеты 🧙♂️
Свежий материал от Ивана Величко
Узнайте, как на самом деле работают серверы, создав собственные TCP-сервер и клиент с нуля.
Внутри:
→ пошаговое объяснение работы TCP-сокетов
→ множество наглядных визуализаций
→ практические задания для закрепления материала
→ создание минимального TCP-сервера и клиента своими руками
Материал помогает разобраться, что происходит под капотом сетевого взаимодействия, без магии фреймворков и готовых библиотек.
How Servers Work: A Hands-On Introduction to TCP Sockets
@SysAdmin_Portal
Свежий материал от Ивана Величко
Узнайте, как на самом деле работают серверы, создав собственные TCP-сервер и клиент с нуля.
Внутри:
→ пошаговое объяснение работы TCP-сокетов
→ множество наглядных визуализаций
→ практические задания для закрепления материала
→ создание минимального TCP-сервера и клиента своими руками
Материал помогает разобраться, что происходит под капотом сетевого взаимодействия, без магии фреймворков и готовых библиотек.
How Servers Work: A Hands-On Introduction to TCP Sockets
@SysAdmin_Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
iximiuz Labs
How Servers Work: A Hands-On Introduction to TCP Sockets | iximiuz Labs
Learn how servers actually work by building a tiny TCP server and client from scratch. A hands-on introduction to sockets, TCP, and the network programming model every backend, DevOps, and platform engineer should go through at least once.
👍5
Наткнулся на неплохой бесплатный тренажёр для Linux.
Вместо очередной статьи на 40 страниц здесь всё через практику: открываешь терминал и сразу выполняешь команды.
Что можно потренировать:
→
→
→
→ пайпы (
→ навигацию по файловой системе
→ базовую работу с файлами
Всего доступно 6 уроков, каждый следующий немного сложнее предыдущего.
Подойдёт новичкам, которые только начинают знакомство с Linux, и тем, кто постоянно гуглит синтаксис
Бесплатно:
http://devops-daily.com/games/linux-terminal
@SysAdmin_Portal
Вместо очередной статьи на 40 страниц здесь всё через практику: открываешь терминал и сразу выполняешь команды.
Что можно потренировать:
→
pwd, ls, cd→
cat, grep→
chmod и права доступа→ пайпы (
|)→ навигацию по файловой системе
→ базовую работу с файлами
Всего доступно 6 уроков, каждый следующий немного сложнее предыдущего.
Подойдёт новичкам, которые только начинают знакомство с Linux, и тем, кто постоянно гуглит синтаксис
grep и забывает разницу между > и >>.Бесплатно:
http://devops-daily.com/games/linux-terminal
@SysAdmin_Portal
👍6🔥2🤔2👎1
Нужно быстро понять, какой процесс съедает всю память?
Используйте:
Команда отсортирует все запущенные процессы по потреблению памяти и покажет 10 самых прожорливых.
Что здесь происходит:
•
•
•
Полезная команда, когда свободная память начинает исчезать, сервер тормозит, а
Часто один запуск сразу показывает виновника.
@SysAdmin_Portal
Используйте:
ps aux --sort=-%mem | head -10
Команда отсортирует все запущенные процессы по потреблению памяти и покажет 10 самых прожорливых.
Что здесь происходит:
•
ps aux выводит список всех процессов•
--sort=-%mem сортирует их по использованию памяти в порядке убывания•
head -10 оставляет только первые 10 строк%mem показывает, какой процент от всей оперативной памяти занимает процесс.Полезная команда, когда свободная память начинает исчезать, сервер тормозит, а
top или htop открывать лень.Часто один запуск сразу показывает виновника.
@SysAdmin_Portal
👍6
Раньше я снова и снова набирал длинные команды вручную... пока не нашёл способ получше.
Если ты делаешь то же самое, это поможет: https://www.tecmint.com/stop-retyping-long-commands/
Он запускает поиск по истории команд. Начинаете вводить часть команды, и Bash мгновенно находит последние совпадения. Повторное нажатие
Например, если месяц назад вы запускали огромный
Ещё одна недооценённая команда:
Она открывает последнюю команду из истории в вашем редакторе, где её можно изменить и выполнить заново. Особенно удобно для длинных однострочников.
Большинство разработчиков знают, что история команд существует.
Гораздо меньше людей используют её быстрее, чем стрелку ↑.
@SysAdmin_Portal
Если ты делаешь то же самое, это поможет: https://www.tecmint.com/stop-retyping-long-commands/
Ctrl + RОн запускает поиск по истории команд. Начинаете вводить часть команды, и Bash мгновенно находит последние совпадения. Повторное нажатие
Ctrl + R переключает на более старые результаты.Например, если месяц назад вы запускали огромный
rsync, docker, kubectl или journalctl, достаточно вспомнить небольшой фрагмент команды.Ещё одна недооценённая команда:
fc
Она открывает последнюю команду из истории в вашем редакторе, где её можно изменить и выполнить заново. Особенно удобно для длинных однострочников.
Большинство разработчиков знают, что история команд существует.
Гораздо меньше людей используют её быстрее, чем стрелку ↑.
@SysAdmin_Portal
How to Avoid Retyping Long Commands in Linux
How Ctrl+R and fc Help You Avoid Retyping Long Commands
In this guide, we’ll explain how Ctrl+R reverse search works, how to use fc to edit commands in your editor, and how to stop retyping long commands in Linux.
👍7
Нужно запускать команду каждые несколько секунд без установки дополнительных утилит?
Используйте:
Команда будет выполнять
Работает с любой командой. Например:
для мониторинга памяти,
для отслеживания нагрузки на систему,
или
чтобы следить за изменениями в каталоге логов.
Когда под рукой нет Grafana, Prometheus или другого дашборда,
@SysAdmin_Portal
Используйте:
watch -n 2 df -h
Команда будет выполнять
df -h каждые 2 секунды и обновлять вывод прямо в терминале, позволяя в реальном времени наблюдать за изменением использования диска.Работает с любой командой. Например:
watch -n 2 free -h
для мониторинга памяти,
watch -n 2 uptime
для отслеживания нагрузки на систему,
или
watch -n 2 'ls -lh /var/log'
чтобы следить за изменениями в каталоге логов.
Когда под рукой нет Grafana, Prometheus или другого дашборда,
watch часто оказывается самым быстрым способом посмотреть, что происходит в системе прямо сейчас.@SysAdmin_Portal
👍7
Перестаньте гадать, почему Linux пишет "No space left on device", когда
Большинство знают
В обновлённом разборе показывают:
• как диагностировать исчерпание inode'ов, когда место ещё есть, а новые файлы уже не создаются
• как проверять использование inode'ов через
• как фильтровать
• как настроить автоматические оповещения о заполнении диска через cron
• как мониторить изменения в реальном времени с помощью
• когда использовать
А ещё объясняется распространённый вопрос: почему значения Used + Available почти никогда не равны Total и куда на самом деле пропадает часть пространства.
Полезный материал для любого, кто хоть раз видел ошибку:
и не понимал, почему она появилась при наличии свободных гигабайтов на диске.
@SysAdmin_Portal
df -h показывает свободное место.Большинство знают
df только как команду для просмотра разделов, но она умеет гораздо больше.В обновлённом разборе показывают:
• как диагностировать исчерпание inode'ов, когда место ещё есть, а новые файлы уже не создаются
• как проверять использование inode'ов через
df -i• как фильтровать
tmpfs, LVM и другие файловые системы, чтобы не утонуть в лишнем выводе• как настроить автоматические оповещения о заполнении диска через cron
• как мониторить изменения в реальном времени с помощью
watch• когда использовать
df, а когда сразу переходить к duА ещё объясняется распространённый вопрос: почему значения Used + Available почти никогда не равны Total и куда на самом деле пропадает часть пространства.
Полезный материал для любого, кто хоть раз видел ошибку:
No space left on device
и не понимал, почему она появилась при наличии свободных гигабайтов на диске.
@SysAdmin_Portal
df Command in Linux: Disk Space, Inodes & Real Fixes
Master the df command in Linux with 15 real-world examples that include inode checks, filesystem filtering, disk alerts, and fixing "no space left" errors.
👍1
Нужно узнать, какой пользователь заходил на ваш Linux-сервер, откуда и когда?
Используйте:
Команда покажет последние 20 сессий входа: имя пользователя, исходный IP-адрес, время входа и длительность сессии.
Если нужно посмотреть неудачные попытки входа, используйте
Всего две команды, и вы точно знаете, кто заходил на ваш сервер и кто пытался получить к нему доступ.
@SysAdmin_Portal
Используйте:
$ last -n 20
Команда покажет последние 20 сессий входа: имя пользователя, исходный IP-адрес, время входа и длительность сессии.
Если нужно посмотреть неудачные попытки входа, используйте
lastb. Это одна из первых команд, которую стоит проверить при подозрении на brute force атаку.Всего две команды, и вы точно знаете, кто заходил на ваш сервер и кто пытался получить к нему доступ.
@SysAdmin_Portal
🔥3👍2❤1👏1
Rocky Linux 10 заменил VNC на RDP (Remote Desktop Protocol) для удалённой графической установки системы. Если у вас headless-сервер без подключённого монитора, это руководство покажет, как запустить полноценный установщик Anaconda со своей рабочей станции, используя всего 3 загрузочных параметра.
https://www.tecmint.com/install-rocky-linux-10-remotely-rdp-headless-server/
@SysAdmin_Portal
https://www.tecmint.com/install-rocky-linux-10-remotely-rdp-headless-server/
@SysAdmin_Portal
Install Rocky Linux 10 Remotely via RDP on a Headless Server
How to Install Rocky Linux 10 on a Headless Server via RDP
This guide explains how to boot Rocky Linux 10 with the inst.rdp option and use RDP to complete a full graphical installation remotely without a local monitor.
🤔3👍1
Если видишь
Злоумышленники часто используют SSH Remote Tunneling, чтобы проксировать трафик через скомпрометированный хост и получать доступ к внутренним системам, которые напрямую недоступны извне.
Сам по себе SSH не выглядит подозрительно.
Интересное начинается, когда связываешь телеметрию процессов и сетевых соединений в Microsoft Defender for Endpoint и смотришь, что на самом деле происходит внутри туннеля.
В видео показан лабораторный разбор:
→ как работает SSH Remote Tunnel
→ на какие артефакты смотреть
→ как обнаружить активность через MDE
→ как проводить триаж и расследование
Хороший пример того, почему "это всего лишь ssh.exe" не всегда означает "всё нормально".
@SysAdmin_Portal
ssh.exe -R на рабочей станции, стоит присмотреться внимательнее.Злоумышленники часто используют SSH Remote Tunneling, чтобы проксировать трафик через скомпрометированный хост и получать доступ к внутренним системам, которые напрямую недоступны извне.
Сам по себе SSH не выглядит подозрительно.
Интересное начинается, когда связываешь телеметрию процессов и сетевых соединений в Microsoft Defender for Endpoint и смотришь, что на самом деле происходит внутри туннеля.
В видео показан лабораторный разбор:
→ как работает SSH Remote Tunnel
→ на какие артефакты смотреть
→ как обнаружить активность через MDE
→ как проводить триаж и расследование
Хороший пример того, почему "это всего лишь ssh.exe" не всегда означает "всё нормально".
@SysAdmin_Portal
🤔1
Syslog собирает логи с маршрутизаторов, коммутаторов, серверов и других сетевых устройств.
Что даёт Syslog:
• Централизованное хранение событий сети
• Быстрый поиск и диагностика проблем
• Мониторинг состояния инфраструктуры
• Повышение уровня безопасности и аудита
Syslog — это чёрный ящик вашей сети.
Каждая запись в логе рассказывает свою историю: отказ интерфейса, сбой сервиса, подозрительная активность или ошибка конфигурации.
Нет логов — нет зацепок.
Знаешь свои логи — знаешь свою сеть. 🌐
#CCNA #Syslog #Networking #Cisco #NetworkEngineer #CCNALearning #SysAdmin #DevOps #IT
@SysAdmin_Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
Нужно быстро проверить, открыт ли удалённый порт, а telnet и nmap под рукой нет?
Используйте:
Команда пытается установить соединение с указанным хостом и портом, после чего сразу показывает результат.
Что означают флаги:
•
•
Примеры:
@SysAdmin_Portal
Используйте:
nc -zv <host> <port>
Команда пытается установить соединение с указанным хостом и портом, после чего сразу показывает результат.
Что означают флаги:
•
-z — проверка порта без передачи данных•
-v — подробный вывод вместо молчаливого завершенияПримеры:
nc -zv google.com 443
nc -zv 192.168.1.10 22
@SysAdmin_Portal
👍7
Запустили долгую задачу по SSH и не хотите, чтобы она умерла после закрытия терминала?
Используйте:
По умолчанию вывод сохраняется в файл:
Пример:
Старый, добрый способ запускать бэкапы, парсеры, миграции и другие долгие задачи без screen, tmux и systemd.
@SysAdmin_Portal
Используйте:
nohup <command> &
nohup отвязывает процесс от текущей сессии, поэтому он продолжит работать даже после выхода из SSH.& сразу отправляет процесс в фон и возвращает управление терминалу.По умолчанию вывод сохраняется в файл:
nohup.out
Пример:
nohup python scraper.py &
nohup ./backup.sh &
Старый, добрый способ запускать бэкапы, парсеры, миграции и другие долгие задачи без screen, tmux и systemd.
@SysAdmin_Portal
❤5👍4🔥2
ДевоПсам: 7 инструментов для защиты вашего CI/CD-пайплайна
1. Gitleaks
Ищет захардкоженные секреты в коммитах и истории Git до того, как они попадут в продакшен.
Gitleaks
2. OSV-Scanner
Проверяет зависимости по базе OSV.dev и показывает конкретную версию, в которой уязвимость уже исправлена.
OSV-Scanner
3. Trivy
Сканирует контейнеры, файловые системы, репозитории и Kubernetes-кластеры на уязвимости и ошибки конфигурации.
Trivy
4. Checkov
Находит проблемы безопасности в Terraform и другой IaC-инфраструктуре ещё до деплоя.
Checkov
5. zizmor
Аудирует GitHub Actions и выявляет риски вроде неприкреплённых версий экшенов и небезопасных конфигураций workflow.
zizmor
6. Cosign
Подписывает и проверяет контейнерные образы и артефакты с использованием Sigstore.
Cosign
7. Scorecard
Оценивает уровень безопасности репозиториев и используемых open-source зависимостей.
Scorecard
Если ваш CI/CD уже собирает код, прогоняет тесты и выкатывает релизы, но не проверяет секреты, зависимости, IaC и цепочку поставки артефактов, то эти инструменты закрывают большую часть базовых рисков. В большинстве случаев их можно встроить прямо в GitHub Actions за несколько минут.
@SysAdmin_Portal
1. Gitleaks
Ищет захардкоженные секреты в коммитах и истории Git до того, как они попадут в продакшен.
Gitleaks
2. OSV-Scanner
Проверяет зависимости по базе OSV.dev и показывает конкретную версию, в которой уязвимость уже исправлена.
OSV-Scanner
3. Trivy
Сканирует контейнеры, файловые системы, репозитории и Kubernetes-кластеры на уязвимости и ошибки конфигурации.
Trivy
4. Checkov
Находит проблемы безопасности в Terraform и другой IaC-инфраструктуре ещё до деплоя.
Checkov
5. zizmor
Аудирует GitHub Actions и выявляет риски вроде неприкреплённых версий экшенов и небезопасных конфигураций workflow.
zizmor
6. Cosign
Подписывает и проверяет контейнерные образы и артефакты с использованием Sigstore.
Cosign
7. Scorecard
Оценивает уровень безопасности репозиториев и используемых open-source зависимостей.
Scorecard
Если ваш CI/CD уже собирает код, прогоняет тесты и выкатывает релизы, но не проверяет секреты, зависимости, IaC и цепочку поставки артефактов, то эти инструменты закрывают большую часть базовых рисков. В большинстве случаев их можно встроить прямо в GitHub Actions за несколько минут.
@SysAdmin_Portal
👍3🙏2❤1
Нужно быстро понять, что изменилось между двумя конфигами?
Используйте:
Команда сравнит оба файла и покажет различия.
Строки с
Строки с
Флаг
Особенно удобно при работе с конфигами, логами, инфраструктурным кодом и после «небольших правок», которые внезапно что-то сломали.
@SysAdmin_Portal
Используйте:
diff -u config_old.txt config_new.txt
Команда сравнит оба файла и покажет различия.
Строки с
- были удалены или измененыСтроки с
+ были добавлены или обновленыФлаг
-u выводит несколько строк контекста вокруг изменений, поэтому сразу видно, что именно поменялось и в каком месте файла.Особенно удобно при работе с конфигами, логами, инфраструктурным кодом и после «небольших правок», которые внезапно что-то сломали.
@SysAdmin_Portal
👍3
Linux tip:
Хотите быстро посмотреть, какие файлы в
Команда покажет все файлы в каталоге
Полезно после обновлений системы, изменений конфигурации или когда пытаешься понять, что именно кто-то успел поправить на сервере.
Разбор параметров:
Простая команда, которую удобно держать под рукой при работе с Linux-серверами.
@SysAdmin_Portal
Хотите быстро посмотреть, какие файлы в
/etc менялись за последний месяц?find /etc -type f -mtime -30
Команда покажет все файлы в каталоге
/etc, которые были изменены менее 30 дней назад.Полезно после обновлений системы, изменений конфигурации или когда пытаешься понять, что именно кто-то успел поправить на сервере.
Разбор параметров:
-type f — искать только файлы-mtime -30 — показывать файлы, изменённые за последние 30 днейПростая команда, которую удобно держать под рукой при работе с Linux-серверами.
@SysAdmin_Portal
❤4👍3
Что такое Linux bridge network? 🧐
Технологии постепенно смещаются от Docker-контейнеров к Kubernetes-подам и microVM-песочницам, но bridge-сети по-прежнему остаются основным способом объединения нескольких «вычислительных единиц», работающих на одном хосте.
Подробный разбор: https://labs.iximiuz.com/tutorials/container-networking-from-scratch
@SysAdmin_Portal
Технологии постепенно смещаются от Docker-контейнеров к Kubernetes-подам и microVM-песочницам, но bridge-сети по-прежнему остаются основным способом объединения нескольких «вычислительных единиц», работающих на одном хосте.
Подробный разбор: https://labs.iximiuz.com/tutorials/container-networking-from-scratch
@SysAdmin_Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔2
Новая статья про Linux Memory Manager.
Интересный факт, который многих удивляет:
Вызовы
Память резервируется только виртуально, а реальные страницы RAM выделяются позже, при первом обращении к ним через page fault.
То есть можно запросить гигабайты памяти, но Linux не станет сразу занимать под них физическую RAM. Ядро подождёт, пока процесс действительно начнёт использовать эти страницы.
Статья:
https://internals-for-interns.com/posts/linux-kernel-memory-manager/
#Linux #Kernel #Memory
Интересный факт, который многих удивляет:
Вызовы
malloc() и mmap() сами по себе не выделяют физическую оперативную память.Память резервируется только виртуально, а реальные страницы RAM выделяются позже, при первом обращении к ним через page fault.
То есть можно запросить гигабайты памяти, но Linux не станет сразу занимать под них физическую RAM. Ядро подождёт, пока процесс действительно начнёт использовать эти страницы.
Статья:
https://internals-for-interns.com/posts/linux-kernel-memory-manager/
#Linux #Kernel #Memory
Internals for Interns
Memory Manager | Internals for Interns
In the previous article
we looked at how a user program crosses the ring 3 → ring 0 boundary to ask the kernel for help. The example we used was read() — a file descriptor, a buffer pointer, a byte count. But we glossed over something important: what is…
we looked at how a user program crosses the ring 3 → ring 0 boundary to ask the kernel for help. The example we used was read() — a file descriptor, a buffer pointer, a byte count. But we glossed over something important: what is…
🤔2🔥1
Нужно проверить, как долго работает Linux-сервер и какая на нём текущая нагрузка?
Используйте:
Команда выводит:
- текущее время;
- время непрерывной работы системы (uptime);
- количество вошедших пользователей;
- среднюю нагрузку за последние 1, 5 и 15 минут (load average).
Если значение load average стабильно превышает количество ядер процессора, это может указывать на перегрузку системы. Быстро узнать число ядер можно командой:
Например, если сервер имеет 4 ядра, а load average долгое время держится выше 4, стоит проверить, какие процессы создают нагрузку.
@SysAdmin_Portal
Используйте:
uptime
Команда выводит:
- текущее время;
- время непрерывной работы системы (uptime);
- количество вошедших пользователей;
- среднюю нагрузку за последние 1, 5 и 15 минут (load average).
Если значение load average стабильно превышает количество ядер процессора, это может указывать на перегрузку системы. Быстро узнать число ядер можно командой:
nproc
Например, если сервер имеет 4 ядра, а load average долгое время держится выше 4, стоит проверить, какие процессы создают нагрузку.
@SysAdmin_Portal
👍2
Одна из моих любимых функций, представленных на WWDC, скорее всего окажется недооценённым хитом — Container Machines.
Она позволяет запускать на Mac лёгкое и постоянное Linux-окружение, в котором домашний каталог пользователя и репозитории автоматически монтируются внутрь контейнера.
По сути, разработчики получают Linux-среду, тесно интегрированную с macOS, без необходимости вручную настраивать виртуальные машины или сложную инфраструктуру контейнеров.🐧 🍎
https://github.com/apple/container/blob/main/docs/container-machine.md
@SysAdmin_Portal
Она позволяет запускать на Mac лёгкое и постоянное Linux-окружение, в котором домашний каталог пользователя и репозитории автоматически монтируются внутрь контейнера.
По сути, разработчики получают Linux-среду, тесно интегрированную с macOS, без необходимости вручную настраивать виртуальные машины или сложную инфраструктуру контейнеров.
https://github.com/apple/container/blob/main/docs/container-machine.md
@SysAdmin_Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
container/docs/container-machine.md at main · apple/container
A tool for creating and running Linux containers using lightweight virtual machines on a Mac. It is written in Swift, and optimized for Apple silicon. - apple/container
🤔1