Admin Guides | Сисадмин
11.4K subscribers
1.22K photos
19 videos
34 files
555 links
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.

Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides

РКН: https://kurl.ru/nQejS
Download Telegram
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Как работает ядро Linux для управления вводом/выводом и что такое I/O scheduler?

Ответ: I/O scheduler в Linux управляет порядком операций ввода/вывода, что важно для эффективного использования дисков и оптимизации работы с данными. Выбор нужного scheduler помогает улучшить производительность системы, особенно при высоких нагрузках.

Основные типы:
CFQ (Completely Fair Queuing): Равномерное распределение ресурсов для процессов.
Deadline: Обеспечивает выполнение операций в установленные сроки.
Noop: Минимальные операции, подходит для систем с кэшированием.

Чтобы проверить текущий scheduler:

cat /sys/block/sda/queue/scheduler
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍6
🤣23👍3
Команда strings в Linux: просмотр текста в двоичных файлах (Часть 1)

Нужно извлечь текст из бинарного файла? Команда strings найдёт и выведет печатаемые символы, игнорируя всё остальное.

Зачем нужна команда strings?

Двоичные файлы, такие как исполняемые программы, содержат фрагменты читаемого текста. Но если открыть их через cat или less, терминал может зависнуть из-за непечатаемых символов. strings решает проблему, отображая только текстовые строки, которые можно использовать в других командах.

Как пользоваться strings?

Простейший способ — передать команде имя файла:

strings jibber


Это выведет все строки длиной от 4 символов из файла jibber.

Изменение минимальной длины строки

Если вам нужны строки короче 4 символов, укажите это с помощью -n:

strings -n 2 jibber


Но будьте осторожны: чем короче строки, тем больше случайного «мусора» в выводе.

Ограничение вывода с помощью less

Если файл слишком большой, лучше просматривать результат постранично:

strings jibber | less


Поиск в определённых частях файла

Чтобы искать текст только в загруженных данных, используйте флаг -d:

strings -d jibber | less


Во второй части расскажем, как узнать смещение строк в файле, как использовать strings для просмотра памяти и как искать сразу в нескольких файлах.
👍141
Какой системный вызов используется для смены идентификатора пользователя в процессе?
Anonymous Quiz
59%
setuid()
6%
execve()
10%
fork()
25%
chroot()
👍10
В США запустили самый мощный суперкомпьютер El Capitan

В Национальной лаборатории Ливермора заработал самый мощный суперкомпьютер в мире — El Capitan.

Он возглавил рейтинг Top500 2024 года с производительностью 1,742 экзафлопса.


Проект стоимостью 600 млн долларов создан для моделирования ядерного арсенала США и научных исследований.

Система оснащена 11 млн ядер AMD EPYC с ускорителями MI300X, работает на HPE Cray OS и имеет пиковую мощность 2,746 экзафлопса.

El Capitan заменил суперкомпьютер Sierra, который теперь занимает 14-е место в мире.
👍15👎1
Настройка скорости и дуплекса сетевого адаптера в Linux с помощью ethtool

Конфигурация сетевой карты влияет на стабильность и скорость работы сервера. 


В этом посте разберёмся, как управлять параметрами скорости, дуплекса и автосогласования с помощью утилиты ethtool, а также разберём возможные ошибки при настройке сети.

Полудуплекс, полный дуплекс и автосогласование
Полудуплекс (Half-duplex) – устройство может либо отправлять, либо получать данные, но не одновременно.
Полнодуплекс (Full-duplex) – передача и приём происходят одновременно, что значительно повышает эффективность соединения.
Автосогласование (Auto-Negotiation) – автоматический выбор наилучшего режима связи. Рекомендуется оставлять его включённым.

Дуплексное несоответствие и его последствия

Дуплексное несоответствие возникает, когда одно устройство использует автосогласование, а другое – фиксированные настройки. В этом случае первое устройство, скорее всего, выберет полудуплекс, тогда как второе останется в полнодуплексном режиме. Это приводит к потере пакетов и резкому падению скорости передачи данных.

Установка ethtool

Если утилита ethtool отсутствует, установите её с помощью:
Fedora, CentOS, RHEL:

yum install ethtool


Ubuntu, Debian:

sudo apt-get install ethtool


Проверка текущих параметров сетевой карты

Сначала нужно узнать имя сетевого интерфейса. Для этого выполните команду:

ifconfig


Вывод может выглядеть так:

enp0s3      Link encap:Ethernet  HWaddr 00:1A:2B:3C:4D:5E


Теперь проверим текущие настройки адаптера:

ethtool enp0s3


Вывод покажет, какая скорость, дуплекс и автосогласование установлены в данный момент.

Изменение параметров сети

Чтобы изменить настройки сетевой карты, используйте команду:

sudo ethtool -s [device_name] speed [10/100/1000] duplex [half/full] autoneg [on/off]


Пример установки скорости 1000 Мбит/с, полнодуплексного режима и включённого автосогласования:

sudo ethtool -s enp0s3 speed 1000 duplex full autoneg on


Проверьте, что изменения применились:

ethtool enp0s3


Сохранение настроек

После перезагрузки системы изменения ethtool сбрасываются. Чтобы сделать их постоянными, добавьте строку в конфигурационный файл интерфейса:

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3


Добавьте:

ETHTOOL_OPTS="speed 1000 duplex full autoneg on"


Теперь параметры будут сохраняться после каждой перезагрузки.

Во второй части разберём диагностику сети, поиск неисправностей и тестирование адаптера с помощью ethtool.
👍13🔥41
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Как работает eBPF в Linux и зачем он нужен?

Ответ: eBPF (Extended Berkeley Packet Filter) — это механизм в ядре Linux, позволяющий безопасно выполнять код в пространстве ядра без изменения его исходников. Он используется для сетевого мониторинга, безопасности, трассировки и профилирования.

Применение eBPF:
Сетевой фильтр: ускоряет обработку пакетов, применяется в XDP и Cilium.
Мониторинг и трассировка: инструменты вроде BCC и bpftrace используют eBPF для анализа работы ядра в реальном времени.
Безопасность: используется в системе защиты, такой как Falco, для обнаружения аномалий.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Тяжелое утро сисадмина
🫡38😁24💯8😭2👍1
Диагностика и тестирование с ethtool

ethtool не только позволяет настраивать параметры сетевой карты, но и предоставляет полезные инструменты для диагностики и тестирования устройства.

Просмотр статистики интерфейса

Чтобы получить подробную информацию о состоянии сетевого адаптера, используйте команду:

sudo ethtool -S имя_устройства


Вывод этой команды даст вам статистику, такую как количество переданных и полученных пакетов, ошибки, количество коллизий и другие параметры, которые могут помочь в диагностике проблем с сетью. Пример вывода:

NIC statistics:
rx_packets: 108048475
tx_packets: 125002612
rx_bytes: 17446338197
tx_bytes: 113281003056
rx_errors: 0
tx_errors: 0
collisions: 0


Это позволяет точно отслеживать проблемы, такие как ошибки передачи или переполнение буфера.

Физическое расположение сетевого адаптера

Если у вас несколько сетевых карт, и вы хотите определить, какая из них вызывает проблемы, ethtool может помочь. Он позволяет заставить мигать индикатор на сетевой карте, чтобы вы могли физически найти нужный адаптер.
Для этого выполните команду:

sudo ethtool -p enp0s3 15


Где enp0s3 – это имя устройства, а 15 – количество секунд, в течение которых будет мигать светодиод.

Тестирование сетевого адаптера

ethtool предоставляет два типа тестов:
1. Online тест – тестирует, например, память и связь.
2. Offline тест – проверяет регистры, память и выполняет loopback-тесты.

Для запуска онлайн-теста используйте команду:

sudo ethtool -t enp0s3 online


Результат покажет, прошёл ли тест или были обнаружены ошибки. Учтите, что не все устройства поддерживают оффлайн тесты.

Информация о драйверах

Чтобы узнать, какой драйвер используется вашей сетевой картой, выполните команду:

ethtool -i eth0


Вывод покажет имя драйвера, версию прошивки и другие технические данные, например:

driver: via-rhine
version: 1.5.0
firmware-version:
bus-info: 0000:00:06.0
👍15🔥6
Какой параметр в /etc/fstab отвечает за автоматическую проверку файловой системы при загрузке?
Anonymous Quiz
29%
defaults
16%
nofail
12%
pass
43%
auto
👻7🔥5👍3
Ookla опубликовала новый отчёт о скорости интернета в разных странах

Аналитическая компания

Ookla
представила свежий рейтинг скорости интернета за январь 2025 года. Лидером по фиксированному широкополосному интернету стал Сингапур, а самый быстрый мобильный интернет оказался в ОАЭ.

Широкополосный интернет

Глобальная медианная скорость загрузки составила 97,61 Мбит/с, выгрузки — 52,84 Мбит/с, а средняя задержка — 9 мс.

Лидеры рейтинга:
Сингапур336,45 Мбит/с (загрузка) и 275,30 Мбит/с (выгрузка)
ОАЭ310,05 Мбит/с
Гонконг305,71 Мбит/с
Франция287,44 Мбит/с
Исландия281,95 Мбит/с

США заняли 7-е место (274,16 Мбит/с), а Россия расположилась на 67-й строчке (90,06 Мбит/с), потеряв одну позицию. Самые низкие скорости зафиксированы в Сирии и Кубе — около 3 Мбит/с.

По сравнению с январём 2024 года глобальная скорость загрузки выросла на 5,7 Мбит/с, а в Сингапуре — сразу на 60 Мбит/с.

Мобильный интернет

Средняя глобальная скорость мобильного интернета достигла 91,24 Мбит/с, что вдвое выше прошлогоднего показателя в 50 Мбит/с.

Топ-5 стран по скорости загрузки:
ОАЭ545,94 Мбит/с (рост с 302,38 Мбит/с в 2024 году)
Катар521,51 Мбит/с
Кувейт314,39 Мбит/с
Болгария252,05 Мбит/с
Бахрейн213,09 Мбит/с

Россия заняла 87-е место (36,05 Мбит/с), поднявшись на 2 позиции. Самый медленный интернет зафиксирован в Боливии (13,20 Мбит/с) и Эритрее (1,88 Мбит/с).
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👎2
Установка локального сервера кеширования DNS на Linux. Часть 1

Чаще всего DNS-запросы работают в фоновом режиме, и мы не замечаем их.

Однако в некоторых случаях настройка локального кэширующего DNS-сервера может значительно ускорить интернет-серфинг и повысить стабильность соединения.


Как это работает?

Кэширующий DNS-сервер сохраняет результаты запросов в памяти. Если система повторно запрашивает тот же адрес, ответ выдаётся мгновенно, без обращения к внешним серверам. Это особенно полезно, если:

Провайдерские DNS-серверы медленные — сайты загружаются с задержками.
В сети выполняется много DNS-запросов — например, на сервере с антиспам-фильтрами или активной почтовой службой.
Нужна дополнительная безопасность — поддержка DNSSEC и DNS-over-TLS (DoT) помогает защититься от атак на DNS.

Например, новостной сайт может делать 100+ DNS-запросов при загрузке страницы. Даже если каждый занимает 0,1 секунды, это 10 секунд ожидания. С локальным DNS-сервером эти задержки исчезают.

Как проверить текущие DNS-запросы?

Перед настройкой можно посмотреть, какие DNS-серверы сейчас используются:

cat /etc/resolv.conf


А также проверить, сколько времени занимает выполнение DNS-запроса:

time dig example.com


или

time nslookup example.com


Если задержка слишком большая, настройка локального кэша поможет ускорить работу.

Какой сервер выбрать?

Один из простых вариантов — systemd-resolved. Это встроенная утилита в systemd, которая уже есть в большинстве современных дистрибутивов Linux, но часто отключена.

В следующем посте расскажем, как её настроить.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥6
😁
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣23😭9👍3🥱1🤨1
Настройка локального кэширующего DNS на Linux с systemd-resolved

Если у вас установлен Linux с systemd, скорее всего, в системе уже есть systemd-resolved, но он не активирован. Давайте его настроим.

1️⃣Проверяем, работает ли systemd-resolved

Откройте терминал и выполните команду:

resolvectl status

Если в ответе указаны DNS-серверы и их параметры, значит, systemd-resolved уже запущен.
Если появляется ошибка Unit dbus-org.freedesktop.resolve1.service not found., значит, сервис отключён.

Дополнительно можно проверить статус службы:

sudo systemctl status systemd-resolved.service

2️⃣ Включаем и добавляем в автозапуск

sudo systemctl start systemd-resolved.service
sudo systemctl enable systemd-resolved.service


Проверяем, что служба успешно запустилась:

sudo systemctl is-active systemd-resolved.service


Если вывод active, значит, всё работает.

3️⃣ Настраиваем серверы для DNS-запросов

Открываем конфигурационный файл:

sudo nano /etc/systemd/resolved.conf


Находим строку #DNS= и добавляем быстрые публичные DNS, например Cloudflare:

DNS=1.1.1.1 1.0.0.1  # Cloudflare Public DNS


Можно также использовать Google Public DNS:

DNS=8.8.8.8 8.8.4.4


Сохраняем изменения (Ctrl + X → Y → Enter) и перезапускаем службу:

sudo systemctl restart systemd-resolved.service


Проверяем, что новые DNS применились:

resolvectl status


4️⃣ Подключаем systemd-resolved к системе

Удаляем старый /etc/resolv.conf и создаём символьную ссылку:

sudo mv /etc/resolv.conf /etc/resolv.conf.backup
sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf


Перезапускаем сервис:

sudo systemctl restart systemd-resolved.service


5️⃣ Проверяем работу локального DNS-кэша

Проверяем, какие DNS-серверы теперь используются:

cat /etc/resolv.conf


Ожидаемый вывод должен содержать строку:

nameserver 127.0.0.53


Это значит, что система использует локальный DNS-кэш.

Проверяем, работает ли кэширование:

resolvectl query example.com


Запускаем несколько раз и сравниваем время выполнения. Первый запрос должен занять немного больше времени, а последующие выполняться мгновенно.

Теперь ваш Linux использует локальный DNS-кэш, что ускоряет соединение и снижает нагрузку на сеть.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥52
SSH Port Forwarding в Linux – основные виды туннелей

SSH-туннели – это один из самых мощных инструментов, который используют системные и сетевые администраторы.

Они позволяют перенаправлять трафик через защищённое SSH-соединение, обеспечивая безопасную передачу данных между системами.


Что такое переброс порта SSH?

SSH позволяет создавать туннель между несколькими системами и направлять через него сетевой трафик.

Этот механизм лежит в основе VPN и SOCKS Proxy. Существует три типа SSH-туннелей:

Локальный порт forwarding (Local Port Forwarding) – позволяет получать доступ к удалённым ресурсам через локальную систему. Работает по принципу Remote Access VPN.

Удалённый port forwarding (Remote Port Forwarding) – даёт удалённой системе доступ к локальным сервисам.

Динамический port forwarding (Dynamic Port Forwarding) – создаёт SOCKS-прокси для передачи трафика приложений через зашифрованный туннель. Это помогает обходить блокировки сайтов.

Пример использования SSH-туннеля

Допустим, у вас есть сервис, который передаёт данные в открытом виде или использует нешифрованный протокол.

Чтобы обезопасить соединение, можно направить его трафик через SSH-туннель.


Ещё одно распространённое применение – доступ к внутренним ресурсам компании извне. Это похоже на Site-to-Site VPN, где указывается, какой трафик заворачивается в туннель.

Сколько туннелей можно создать?

Теоретически – до 65 535 (по количеству портов в сети). Однако важно учитывать, что:
Некоторые порты зарезервированы (например, 80 – HTTP, 443 – HTTPS).
Локальный порт не обязательно должен совпадать с удалённым. Например, можно перенаправить 8080 → 80.

Лучше использовать порты в диапазоне 2000–10000, так как порты ниже 2000 зарезервированы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍122🔥1
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Как работает OverlayFS и почему оно используется в контейнеризации?

Ответ: OverlayFS — это файловая система наложений, которая объединяет несколько директорий (слоев) в единую структуру. Она широко используется в контейнерных средах, таких как Docker и Kubernetes, для эффективного управления файловыми системами контейнеров.

Основные принципы:
Lowerdir: неизменяемый базовый слой (образ контейнера).
Upperdir: изменяемый слой, в который записываются изменения.
Merged: конечный результат, который видит пользователь.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111
Настройка и тестирование SSH-туннелей

Локальный порт forwarding

Позволяет перенаправить трафик с локального компьютера на удалённую систему.

Синтаксис:

ssh -L local_port:remote_ip:remote_port [email protected]


Пример:

ssh -L 8080:www.example1.com:80 example2.com


Этот туннель направляет все запросы на 8080 порт через example2.com к example1.com:80.

Тестирование туннеля с netcat

Чтобы проверить работу переадресации:

nc -v remote_ip port_number


Если соединение успешно, утилита выдаст “Успех!”.

Автоматизация (Autossh)

Для постоянного SSH-туннеля без разрывов можно использовать autossh.

Установка:

sudo apt-get install autossh


Запуск:

autossh -L 80:example1.com:80 example2.com


Этот туннель будет автоматически восстанавливаться при обрывах связи.

Удалённый port forwarding

Позволяет удалённой системе получить доступ к сервисам локальной сети.

Синтаксис:

ssh -R remote_port:local_ip:local_port [email protected]


Пример:

ssh -R 8080:localhost:80 [email protected]


Теперь пользователь на [email protected] сможет обратиться к вашему локальному веб-серверу (порт 80) через 8080.

Динамическое перенаправление портов (SOCKS-прокси)

Если нужно обходить блокировки, можно создать SOCKS-прокси через SSH.

Синтаксис:

ssh -D local_port [email protected]


Пример:

ssh -D 1234 [email protected]


Теперь в браузере можно настроить SOCKS-прокси на локальный порт 1234, и весь трафик пойдёт через SSH-туннель.

Просмотр активных SSH-туннелей

Чтобы увидеть все текущие туннели, выполните:

lsof -i | grep ssh


Если нужно отображение IP-адресов, используйте:

lsof -i -n | grep ssh


Ограничение port forwarding в SSH

Чтобы запретить или ограничить переадресацию портов, нужно отредактировать /etc/ssh/sshd_config:

sudo nano /etc/ssh/sshd_config


Добавляем:

AllowTCPForwarding no  # Отключить SSH-туннели
AllowTCPForwarding local # Разрешить только локальный forwarding
AllowTCPForwarding remote # Разрешить только удалённый forwarding


После этого перезапускаем SSH:

sudo systemctl restart sshd


Уменьшение задержки в SSH-туннелях

SSH-туннели работают по TCP поверх TCP, что иногда создаёт задержки. Если трафика много, лучше использовать VPN.

Альтернатива – sshuttle, который уменьшает задержки при пересылке трафика.

Установка:

sudo apt-get install sshuttle


Запуск туннеля:

sudo sshuttle -r user@remote_ip -x remote_ip 0/0 vv


Чтобы убедиться, что IP-адрес изменился:

curl ipinfo.io


Теперь SSH-туннель будет работать без значительных задержек и обеспечивать безопасную передачу данных.
👍17
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: В чем разница между объявлением переменной export VAR="VALUE" и VAR="VALUE" в bash?

Ответ: При объявлении переменной через export - переменная будет доступна в любых других процессах, при обычном объявлении переменной - переменная будет доступна только в запущенном процессе.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥2