Инструменты CLI для администраторов Linux

 

Netstat (network statistics) — утилита командной строки в Linux, которая отображает информацию, связанную с сетью. Она выводит на дисплей состояние TCP-соединений (как входящих, так и исходящих), таблицы маршрутизации, число сетевых интерфейсов и сетевую статистику по протоколам.

Некоторые часто используемые параметры netstat:

-a — показывает все прослушивающие порты и активные соединения;

-t — отображает TCP-соединения;

-u — показывает UDP-соединения;

-n — показывает числовые адреса вместо разрешения хостов и портов;

-l — показывает только прослушивающие сокеты;

-p — отображает PID и имя программы, связанные с каждым сокетом;

-r — показывает таблицу маршрутизации;

-i — показывает статистику сетевых интерфейсов;

-s — показывает статистику протоколов.

 

Утилита iperf — инструмент командной строки для тестирования производительности сетевого подключения между двумя хостами.

Некоторые опции утилиты iperf:

-s — запускает утилиту в режиме сервера.

-c — запускает клиент.

-u — переключает на режим UDP (по умолчанию iperf использует TCP).

-bidir — запускает двусторонний тест для одновременного измерения загрузки и выгрузки.

-t — задаёт продолжительность теста (по умолчанию — 10 секунд).

 

Bmon (Bandwidth Monitor) — инструмент для мониторинга пропускной способности сети в реальном времени.

 

speedtest-cli — это скрипт, написанный на Python, который позволяет измерить скорость интернета linux в двух направлениях.

 

ss (от англ. Socket Statistics) — утилита командной строки Linux, которая предоставляет информацию о сетевых сокетах в операционной системе. Это современный аналог команды netstat, который работает быстрее и предоставляет более детальную статистику.

Некоторые опции утилиты ss:

-t (—tcp) — показать только TCP-соединения;

-u (—udp) — показать только UDP-соединения;

-x (—unix) — показать только локальные UNIX-сокеты;

-a (—all) — показать все соединения (как активные, так и слушающие порты);

-l (—listening) — показать только службы, которые слушают порты (LISTEN);

-p (—processes) — показать, какие процессы используют порты (требует sudo);

-n (—numeric) — не преобразовывать IP-адреса и порты в имена (ускоряет выполнение).

 

Hping3 — утилита командной строки для генерации произвольных сетевых пакетов TCP/IP. В отличие от стандартной команды ping, работающей только с ICMP-пакетами, hping3 позволяет создавать пакеты TCP, UDP и RAW-IP с точной настройкой заголовков.

 

ip — утилита командной строки в Linux из пакета iproute2, предназначенная для настройки сетевой подсистемы. Позволяет взаимодействовать с различными компонентами сети: сетевыми интерфейсами, таблицами маршрутизации, адресами и другими.

 

tcpdump — утилита командной строки для захвата и анализа пакетов в компьютерных сетях. Поддерживает работу с разными сетевыми протоколами, например TCP, UDP, ICMP и другими.

Базовая команда

tcpdump [опции] [фильтр]

Некоторые опции:

-i eth0 — выбирает сетевой интерфейс (например, eth0);

-c 10 — собирает ровно 10 пакетов и останавливается;

-n — показывает IP-адреса, не имена сайтов;

-nn — не разрешает IP и порты — только цифры;

-w file.pcap — сохраняет трафик в файл для анализа позже;

-r file.pcap — читает трафик из ранее сохранённого файла.

 

lsof (от англ. List Open Files) — команда в Linux, которая выводит информацию о файлах, используемых процессами в системе.

Некоторые опции команды lsof:

-u — отображает файлы, открытые указанным пользователем.

-c — перечисляет файлы, открытые с определённым именем процесса.

-p — выводит список файлов, открытых с помощью определённого идентификатора процесса (PID).

-D — перечисляет файлы, открытые в определённом каталоге.

-R — перечисляет идентификаторы родительских процессов вместе с их дочерними процессами.

 

nslookup (расшифровывается как Name Server Lookup) — команда в Linux для запроса DNS-серверов. Она позволяет получать информацию о доменных именах, IP-адресах и других DNS-записях.

Некоторые опции:

-type=a — просмотр информации о записях DNS A-адреса;

-type=any — просмотр всех доступных записей;

-type=mx — просмотр записей сервера Mail Exchange;

-type=ns — просмотр записей сервера имён.

Примеры использования

Простой поиск домена: nslookup example.com — выводит базовую информацию о запрашиваемом домене.

Указание DNS-сервера: запрос домена с использованием публичного DNS-сервера Google (8.8.8.8): nslookup example.com 8.8.8.8

Обратный поиск DNS: поиск имени домена, связанного с IP-адресом:  nslookup 93.184.216.34

Запрос определённых записей DNS: получение записей обмена почтой (MX) для домена: nslookup -query=mx example.com

 

Iftop — утилита командной строки для мониторинга сетевого трафика в Linux в режиме реального времени. Она слушает выбранный сетевой интерфейс (например, eth0, ens18, br0) и собирает информацию о каждом соединении: кто с кем общается, сколько байт прокачано, скорость передачи за последние 2, 10, 40 секунд.

Некоторые параметры командной строки программы iftop:

-n — отключает поиск имени хоста.

-N — отключает преобразование номеров портов в сервисы.

-b — отключает отображение гистограммного представления сетевого трафика.

-t — представляет выходные данные в формате текстового интерфейса без использования ncurses.

Некоторые примеры использования:

sudo iftop -F 192.168.1.100 — отображает трафик к и от хоста с IP-адресом 192.168.1.100.

sudo iftop -p 80 — отображает трафик на порт 80 (HTTP).

 

Nethogs — утилита командной строки с открытым исходным кодом для мониторинга сетевого трафика в Linux. Она отслеживает пропускную способность сетевого трафика, используемую каждым процессом в реальном времени. В отличие от классических сетевых мониторов, Nethogs группирует трафик по процессам, а не по протоколу или подсети.

 

Ngrep — утилита для мониторинга и анализа трафика на сервере. С её помощью можно искать нужную информацию в режиме реального времени. 

Основные опции

-d — указание сетевого интерфейса (например, eth0).

-W — формат вывода (например, byline для удобного отображения строк).

-q — тихий режим (отключает вывод статистики).

-t — отображение временных меток.

-i — игнорирование регистра при поиске.

-l — вывод в файл (например, -l output.txt).

-p — использование регулярных выражений для поиска.

 

dig (Domain Information Groper) — утилита командной строки для выполнения запросов к DNS-серверам.

Основные опции:

-4 — позволяет использовать только IPv4;

-6 — позволяет использовать только IPv6;

-x — предназначена для получения домена по IP;

-f — используется для чтения списка доменов из файла;

-b IP-адрес — позволяет указать исходящий IP-адрес, с которого отправлен запрос к DNS-серверу, полезно, если к компьютеру подключено несколько сетевых карт;

-r — предотвращает чтение настроек из файла ~/.digrc;

-t — позволяет указать тип записи, которую надо получить;

-p — позволяет указать номер порта DNS сервера;

-u — отображает время в секундах вместо миллисекунд.

 

 

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

Содержимое спойлера

lsusb — команда в Linux, которая выводит информацию обо всех подключённых к системе USB-устройствах.

Некоторые опции:

-v, —verbose — увеличить детализацию (показать дескрипторы).

-s [[шина]:][номер_устройства] — показать только устройства с указанными номерами устройства и/или шины (в десятичном формате).

-d производитель:[продукт] — показать только устройства с указанными номерами производителя и продукта (в шестнадцатеричном формате).

-t, —tree — вывести физическую иерархию USB-устройств в виде дерева.

-V, —version — показать версию программы.

-h, —help — показать информацию о использовании и помощь.

 

top — консольная команда, которая выводит список работающих в системе процессов и информацию о них. По умолчанию она в реальном времени сортирует их по нагрузке на процессор.

Основные опции:

-v — вывести версию программы;

-b — режим только для вывода данных, программа не воспринимает интерактивных команд и выполняется пока не будет завершена вручную;

-c — отображать полный путь к исполняемым файлам команд;

-d — интервал обновления информации;

-H — включает вывод потоков процессов;

-i — не отображать процессы, которые не используют ресурсы процессора;

-n — количество циклов обновления данных, после которых надо закрыть программу;

-o — поле, по которому надо выполнять сортировку;

-O — вывести все доступные поля для сортировки;

-p — отслеживать только указанные по PID процессы, можно указать несколько PID;

-u — выводить только процессы, запущенные от имени указанного пользователя.

 

Команда ps (от англ. process status — «состояние процесса») в Linux выводит отчёт о текущих процессах, запущенных в системе.

Опции:

-e — показать все активные процессы в системе;

-f — вывести полный формат вывода с дополнительными подробностями;

-u <username> — показать процессы только для указанного пользователя;

-p <PID> — вывести информацию о процессе с указанным PID;

-o <format> — настроить формат вывода, выбирая поля для отображения;

-sort=-%cpu — сортировать процессы по использованию процессора (по убыванию);

-sort=-%mem — сортировать процессы по использованию памяти (по убыванию).

 

htop — утилита для мониторинга процессов и ресурсов системы в Linux, альтернатива стандартной команде top. 

 

Lshw (List Hardware) — утилита в Linux, которая предоставляет подробную информацию об аппаратных компонентах системы.

Некоторые параметры команды lshw:

-short — предоставляет краткую сводку конфигурации оборудования;

-businfo — выводит информацию о шине;

-sanitize — скрывает конфиденциальную информацию, такую как серийные номера;

-class [class_name] — выводит информацию для конкретного класса оборудования.

 

Screen — это менеджер окон Linux, который позволяет переключаться между несколькими процессами в одном физическом терминале.

 

rsync (Remote Synchronization, удалённая синхронизация) — утилита командной строки для синхронизации и резервного копирования файлов и каталогов в Unix-подобных операционных системах

 

Tmux — терминальный мультиплексор для Unix-подобных операционных систем, включая Linux. Это инструмент командной строки, который позволяет управлять несколькими терминальными сеансами в одном окне терминала или консоли.

 

lspci — команда в операционной системе Linux, которая отображает информацию о шинах PCI (Peripheral Component Interconnect) и устройствах, подключённых к ним.

Опции:

-v — выводить подробную информацию об устройствах

-vv — выводить очень подробную информацию об устройствах

-n — показывать код производителя для устройства

-b — показать все адреса устройств на шине

-d — показать только устройства определенного производителя

-t — просмотр устройств ubuntu в виде дерева.

-s — показать информацию об определенном устройстве

Содержимое спойлера