Основы работы в Linux: команды, логи и сеть

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

Основы навигации и операции с файлами и директориями

Основы навигации и операции с файлами и директориями

Добро пожаловать в курс «Основы работы в Linux». Мы начинаем с фундамента — понимания того, как устроена файловая система и как в ней перемещаться. Без этих навыков работа в терминале невозможна.

Файловая система Linux: Дерево, а не лес

В отличие от Windows, где у вас могут быть диски C:, D: и E:, в Linux существует единая иерархическая структура. Всё начинается с корня (root), который обозначается одним символом слэша: /.

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

Ключевые директории, которые вам нужно знать:

  • / — Корневая директория. Начало всех начал.
  • /home — Здесь хранятся личные папки пользователей (аналог C:\Users).
  • /bin и /usr/bin — Здесь лежат программы и команды, которые мы будем запускать.
  • /etc — Хранилище конфигурационных файлов (настроек системы).

Навигация: Где я и куда иду?

Когда вы открываете терминал, вы всегда находитесь в какой-то директории. Чтобы не потеряться, используйте «компас».

pwd — Где я сейчас?

Команда pwd (print working directory) показывает полный путь к текущей папке.

pwd

Вывод может быть таким: /home/user/projects

Это означает, что вы находитесь в папке projects, которая лежит в user, которая, в свою очередь, находится в home, растущей из корня /.

ls — Что вокруг меня?

Команда ls (list) показывает содержимое текущей директории.

ls

Однако часто нам нужно больше информации. Для этого используются флаги (параметры, начинающиеся с дефиса):

  • ls -l — Вывод в виде списка (long). Показывает права доступа, владельца, размер и дату изменения.
  • ls -a — Показывает все файлы, включая скрытые. В Linux скрытым считается любой файл, имя которого начинается с точки (например, .bashrc).
  • ls -la — Комбинация флагов: список всех файлов, включая скрытые.

Если у вас нет большого опыта работы с системами Linux, вы можете быть очень удивлены возможностями управления операционной системой из командной строки. timeweb.cloud

cd — Телепорт

Команда cd (change directory) перемещает вас между папками. Здесь важно понимать разницу между абсолютным и относительным путём.

  1. Абсолютный путь всегда начинается с /. Это полный адрес от корня.
    • cd /home/user/Downloads — перенесёт вас в загрузки, где бы вы ни находились.
  2. Относительный путь начинается с имени папки. Это путь от вашего текущего положения.
    • Если вы уже в /home/user, то команда cd Downloads сработает так же.

Специальные символы для навигации:

  • cd .. — Подняться на уровень выше (в родительскую папку).
  • cd ~ (тильда) или просто cd — Вернуться в домашнюю директорию пользователя.
  • cd - — Вернуться в предыдущую папку, где вы были до последнего перехода (как кнопка «Назад» в браузере).

Создание файлов и директорий

Теперь, когда мы умеем ходить, научимся строить.

mkdir — Создание папок

Команда mkdir (make directory) создает новую директорию.

mkdir my_folder

Если вам нужно создать структуру вложенных папок (например, год, внутри месяц, внутри день), используйте флаг -p:

mkdir -p 2023/December/Report

Без флага -p система выдаст ошибку, если папки 2023 ещё не существует.

touch — Создание файлов

Команда touch изначально предназначена для смены времени последнего доступа к файлу, но если файла не существует, она создает пустой файл.

touch notes.txt

Операции с файлами: Копирование, Перемещение, Удаление

Это самые частые действия при работе с данными. Будьте внимательны: в командной строке Linux нет корзины. Удаленные файлы восстановить крайне сложно.

cp — Копирование

Синтаксис прост: cp [что_копируем] [куда_копируем].

cp report.txt report_backup.txt

Эта команда создаст копию файла report.txt с новым именем.

Важно: Чтобы скопировать папку со всем содержимым, обязателен флаг -r (recursive — рекурсивно).

cp -r my_folder my_folder_backup

mv — Перемещение и переименование

В Linux перемещение и переименование — это одна и та же операция. Команда mv (move) делает и то, и другое.

Перемещение:

mv file.txt /home/user/Documents/

(Файл file.txt улетит в папку Documents).

Переименование:

mv old_name.txt new_name.txt

(Файл останется там же, но сменит имя).

rm — Удаление

Самая опасная команда. rm (remove) удаляет файлы.

  • rm file.txt — удалит один файл.
  • rm -r folder_name — удалит папку и всё, что внутри неё.

Для удаления пустых каталогов используйте приложение rmdir. crafted.su

Команда rmdir безопаснее, так как она откажется удалять папку, если в ней есть хоть один файл. Однако на практике чаще используют rm -r для удаления папок с контентом.

Просмотр содержимого файлов

Вам не всегда нужно открывать полноценный редактор, чтобы узнать, что внутри файла (особенно если это логи или конфиги).

cat — Всё и сразу

Выводит всё содержимое файла на экран.

cat config.txt

Если файл огромный, он промелькнет перед глазами и заполнит терминал. Используйте cat только для небольших файлов.

less — Постраничный просмотр

Идеально для чтения длинных логов.

less /var/log/syslog

Вы можете листать текст стрелками вверх/вниз. Чтобы выйти, нажмите клавишу q.

head и tail — Вершки и корешки

  • head file.txt — покажет первые 10 строк файла.
  • tail file.txt — покажет последние 10 строк файла.

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

Итоги

Мы разобрали базовый набор инструментов для выживания в консоли Linux. Вот краткое резюме:

  1. Навигация: pwd показывает, где вы; ls показывает, что рядом; cd перемещает вас.
  2. Пути: Абсолютные пути начинаются с /, относительные — от текущей папки. .. — это шаг назад.
  3. Создание: mkdir для папок, touch для файлов.
  4. Управление: cp копирует (нужен -r для папок), mv перемещает и переименовывает, rm удаляет (навсегда!).
  5. Чтение: cat для маленьких текстов, less для больших, tail для просмотра конца файла.

Управление процессами и правами доступа пользователей

Управление процессами и правами доступа пользователей

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

Права доступа: Чтение, Запись, Исполнение

Безопасность в Linux строится на простой концепции: у каждого файла есть владелец и набор прав. Когда вы вводите команду ls -l, вы видите строку вида -rwxr-xr--. Это не случайный набор символов, а паспорт файла.

Разберем строку -rwxr-xr-- по частям:

  1. Тип файла (первый символ): - означает обычный файл, d — директория (directory).
  2. Владелец (User): Следующие три символа rwx. Владелец может читать, писать и исполнять файл.
  3. Группа (Group): Следующие три символа r-x. Коллеги из рабочей группы могут читать и исполнять, но не могут изменять файл (нет w).
  4. Остальные (Others): Последние три символа r--. Все остальные пользователи мира могут только читать файл.

Сами буквы означают:

  • r (read) — чтение.
  • w (write) — запись (редактирование или удаление).
  • x (execute) — исполнение (запуск программы или скрипта). Для директории x означает право «войти» в неё.

Числовая нотация (Octal)

Системные администраторы редко говорят «эр-дубль-ве-икс». Они используют цифры. Каждая буква имеет свой числовой вес:

  • r = 4
  • w = 2
  • x = 1
  • - = 0

Чтобы получить права для конкретной группы, мы просто складываем эти числа. Рассчитаем права для владельца, у которого есть полный доступ (rwx):

S=r+w+x=4+2+1=7S = r + w + x = 4 + 2 + 1 = 7

где SS — итоговая сумма прав, rr — значение права на чтение (4), ww — значение права на запись (2), xx — значение права на исполнение (1).

Таким образом, права -rwxr-xr-- превращаются в число 754:

  • Владелец (rwx): 4+2+1=74+2+1 = 7
  • Группа (r-x): 4+0+1=54+0+1 = 5
  • Остальные (r--): 4+0+0=44+0+0 = 4

chmod — Смена прав

Команда chmod (change mode) изменяет права доступа. Это один из самых частых инструментов в работе.

chmod 755 script.sh

Эта команда делает файл script.sh исполняемым для всех, но доступным для записи только владельцу. Если вы хотите сделать файл полностью приватным (только для вас), используйте:

chmod 600 secret_notes.txt

Неправильное назначение прав может привести к утечкам данных. Linux предоставляет ясную и адаптивную систему управления доступом. allcourses.io

chown — Смена владельца

Иногда файл создается под одним пользователем (например, root), а работать с ним должен другой (например, web-admin). Команда chown (change owner) передает права владения.

Синтаксис: chown пользователь:группа файл

chown user:developers project_file.py

Суперпользователь и sudo

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

Работать под root постоянно — плохая практика. Одна ошибка в команде rm может уничтожить систему. Вместо этого используется утилита sudo (superuser do).

sudo apt update

Команда sudo позволяет выполнить одну конкретную команду с правами суперпользователя, после чего ваши права снова понижаются до обычных. Для этого ваш пользователь должен находиться в специальной группе sudo или wheel.

Процессы: Пульс системы

Любая запущенная программа в Linux — это процесс. Браузер, текстовый редактор, сама командная оболочка — всё это процессы. У каждого процесса есть уникальный номер — PID (Process ID).

ps — Снимок текущего состояния

Команда ps (process status) показывает список процессов в данный момент.

ps aux

Флаги aux заставляют команду показать процессы всех пользователей (a), с подробной информацией (u) и даже те, что не привязаны к терминалу (x).

Вывод будет содержать:

  • USER: от чьего имени запущен процесс.
  • PID: уникальный номер.
  • %CPU и %MEM: потребление ресурсов.
  • COMMAND: какая команда запустила процесс.

top и htop — Мониторинг в реальном времени

Если ps — это фотография, то top — это видео. Эта утилита обновляет информацию каждые несколько секунд, показывая, кто «съедает» процессор.

top

Чтобы выйти из top, нажмите клавишу q.

Более современная и удобная альтернатива — htop. Она поддерживает мышь, цвета и более наглядные графики, но может не быть установлена по умолчанию.

Управление процессами и системными ресурсами является фундаментальным навыком. Инструменты ps, top и free позволяют анализировать, что происходит в вашей системе. labex.io

Управление процессами: kill

Иногда программы зависают. В Windows вы вызываете диспетчер задач и жмете «Снять задачу». В Linux вы используете команду kill.

Чтобы остановить процесс, нужно знать его PID (который мы узнали через top или ps).

kill 1234

По умолчанию kill посылает сигнал SIGTERM (сигнал 15). Это вежливая просьба: «Пожалуйста, сохрани данные и закройся». Если программа зависла намертво и не реагирует, используется «тяжелая артиллерия» — сигнал SIGKILL (сигнал 9).

kill -9 1234

Сигнал -9 убивает процесс мгновенно, без сохранения данных. Используйте его только в крайнем случае.

Также существуют команды killall (убить все процессы с определенным именем) и pkill.

Сетевые утилиты: Базовая диагностика

Помимо файлов и процессов, администратору часто нужно проверять доступность сети. Рассмотрим базовый набор.

ping — Проверка связи

Самая известная команда. Отправляет небольшие пакеты данных на сервер и ждет ответа.

ping google.com

В Linux ping работает бесконечно, пока вы не нажмете Ctrl+C.

ip — Настройка сети

В старых руководствах вы можете встретить команду ifconfig, но в современных дистрибутивах стандартом стала команда ip.

  • ip addr — показать IP-адреса всех интерфейсов.
  • ip route — показать таблицу маршрутизации (шлюз по умолчанию).

ss и netstat — Кто слушает порт?

Чтобы узнать, какие сетевые соединения открыты на вашем сервере, используется ss (socket statistics).

ss -tuln

Эта комбинация флагов покажет все TCP и UDP порты (-tu), которые находятся в режиме прослушивания (-l), отображая порты числами, а не именами (-n). Это критически важно для понимания того, какие сервисы (например, веб-сервер на порту 80) доступны извне.

Итоги

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

  1. Права доступа (chmod, chown) защищают файлы от несанкционированного чтения и изменения. Помните формулу 4+2+14+2+1.
  2. Суперпользователь (root) обладает безграничной властью, поэтому для повседневных задач используется sudo.
  3. Процессы отслеживаются через ps и top. У каждого процесса есть PID.
  4. Управление процессами осуществляется командой kill. Сигнал -9 — крайняя мера.
  5. Сетевые утилиты (ping, ip, ss) помогают диагностировать подключение и открытые порты.

Просмотр логов и поиск информации в текстовых файлах

Просмотр логов и поиск информации в текстовых файлах

В предыдущих статьях мы научились перемещаться по системе, управлять файлами и настраивать права доступа. Теперь пришло время освоить навык, который отличает новичка от профессионала: умение понимать, что происходит внутри системы.

Linux «разговаривает» с администратором через логи (журналы событий). Если сервер перестал отвечать, сайт упал или не запускается база данных — ответ всегда кроется в текстовых файлах. В этой статье мы разберем, где искать эти файлы, как их читать и как находить иголку в стоге сена с помощью мощнейших инструментов поиска.

Анатомия логов: Где хранится правда?

В Linux существует стандартное место для хранения всех журналов событий — директория /var/log. Это «черный ящик» вашей операционной системы.

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

ls -l /var/log

Вы увидите множество файлов. Вот самые важные из них:

  • syslog (или messages в RHEL/CentOS) — главный журнал. Сюда стекается общая информация от большинства служб.
  • auth.log (или secure) — журнал безопасности. Здесь фиксируются все попытки входа в систему (успешные и нет), использование sudo и создание пользователей.
  • kern.log — сообщения ядра Linux. Ошибки оборудования, драйверов и файловой системы ищут здесь.
  • dmesg — лог загрузки системы (буфер кольца ядра).

Большинство файлов логов Linux хранятся в простом текстовом файле ASCII. Доступ к файлам логов осуществляется с использованием привилегий root. merionet.ru

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

Инструменты чтения: Больше, чем просто cat

Мы уже знакомы с командой cat, но для логов она подходит плохо. Вывалить на экран 500 мегабайт текста — не лучшая идея. Рассмотрим инструменты для хирургической работы.

less — Умное чтение

Команда less позволяет открывать огромные файлы и листать их, не загружая в оперативную память целиком.

sudo less /var/log/syslog

Навигация внутри less:

  • Стрелки — прокрутка.
  • G (Shift+g) — прыгнуть в самый конец файла (где самые свежие записи).
  • g — прыгнуть в начало.
  • /текст — поиск слова «текст» внутри файла (как Ctrl+F). Нажмите n для перехода к следующему совпадению.
  • q — выход.

tail -f — Режим реального времени

Это, пожалуй, самая любимая команда системных администраторов. Флаг -f (follow) заставляет утилиту не закрываться после вывода последних строк, а ждать появления новых.

tail -f /var/log/auth.log

Теперь, если вы попробуете открыть новую сессию терминала и ввести неправильный пароль, вы мгновенно увидите новую строку в этом окне. Это незаменимо при отладке: вы запускаете сервис в одном окне, а в другом смотрите, как он «ругается» в лог.

grep — Поиск информации

Найти нужную строку глазами в файле на миллион строк невозможно. Для этого существует утилита grep (Global Regular Expression Print). Это фильтр, который пропускает через себя текст и оставляет только то, что соответствует вашему запросу.

Базовый синтаксис: grep "что_ищем" где_ищем

Пример поиска всех ошибок в системном логе:

grep "error" /var/log/syslog

Полезные флаги grep

Сила grep кроется в его модификаторах:

  1. -i (ignore case) — Игнорировать регистр. Найдёт и "Error", и "error", и "ERROR".
    grep -i "failed" /var/log/auth.log
    
  2. -r (recursive) — Искать во всех файлах внутри папки и её подпапках. Идеально, когда вы не знаете, в каком именно файле лежит настройка.
    grep -r "192.168.1.1" /etc/
    
  3. -v (invert) — Инверсия поиска. Показать всё, кроме строк с шаблоном. Полезно, чтобы убрать шум.
    grep -v "info" /var/log/syslog
    
    (Покажет всё, что не является информационным сообщением).
  4. -n (number) — Выводит номера строк, где найдено совпадение.

Команда grep — фундаментальный инструмент поиска в Linux-системах. Овладение эффективными методами текстового поиска не просто экономит время — это мощный навык. skyeng.ru

Контекстный поиск

Часто одной строки с ошибкой недостаточно. Нам нужно знать, что произошло перед сбоем и после него. Для этого используются флаги контекста:

  • -B 5 (Before) — показать 5 строк до совпадения.
  • -A 5 (After) — показать 5 строк после совпадения.
  • -C 5 (Context) — показать 5 строк вокруг совпадения.
grep -C 3 "Critical Error" /var/log/syslog

Конвейеры (Pipes): Объединение команд

Философия Linux гласит: «Программа должна делать одну вещь, но делать её хорошо». Чтобы решать сложные задачи, мы соединяем простые команды символом вертикальной черты | (пайп).

Пайп передаёт вывод левой команды на вход правой команде.

Примеры из жизни:

  1. Поиск в истории команд: Вы вводили сложную команду вчера, но забыли её. history выведет тысячи строк. Отфильтруем их:

    history | grep "ssh"
    
  2. Поиск запущенного процесса: Команда ps aux выводит список всех процессов. Найдём только те, что относятся к Python:

    ps aux | grep python
    
  3. Анализ сетевых соединений: Используем изученную ранее команду ss и найдём только открытые SSH-порты:

    ss -tuln | grep ":22"
    

Регулярные выражения (Regex): Основы

grep поддерживает регулярные выражения — специальный язык шаблонов для поиска текста. Не обязательно быть мастером regex, достаточно знать пару символов:

  • ^ (крышка) — начало строки. grep "^root" /etc/passwd — найдёт строки, которые начинаются со слова root.
  • $ (доллар) — конец строки. grep "bash$" /etc/passwd — найдёт строки, которые заканчиваются на bash.
  • . (точка) — любой один символ.

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

Практический кейс: Расследование инцидента

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

  1. Мы знаем, что логи авторизации лежат в /var/log/auth.log.
  2. Неудачная попытка входа содержит слово "Failed".
  3. Нам нужно увидеть IP-адреса.

Команда будет выглядеть так:

sudo grep "Failed" /var/log/auth.log

Если записей слишком много, мы можем посчитать их количество с флагом -c:

sudo grep -c "Failed" /var/log/auth.log

Если результат, например, 542, значит, кто-то активно пытается подобрать пароль.

Итоги

Умение работать с текстом — ключевой навык администратора. Мы разобрали:

  1. Локация: Логи живут в /var/log. Основные файлы: syslog, auth.log, kern.log.
  2. Чтение: Используйте less для навигации по большим файлам и tail -f для мониторинга в реальном времени.
  3. Поиск: grep — ваш главный инструмент. Флаги -i (регистр), -r (рекурсия), -v (исключение) и -C (контекст) покрывают 90% задач.
  4. Конвейер: Символ | позволяет передавать результат одной команды в другую, создавая мощные цепочки обработки данных.

Сетевые утилиты и диагностика сетевых соединений

Сетевые утилиты и диагностика сетевых соединений

В предыдущих частях курса мы научились управлять файлами, процессами и анализировать логи. Но современный сервер Linux бесполезен без подключения к сети. Веб-сайты, базы данных, API — всё это требует стабильного соединения.

В этой статье мы разберем набор инструментов, который позволит вам ответить на вопросы: «Какой у меня IP?», «Почему сервер не отвечает?» и «Кто слушает этот порт?».

IP-адресация: Кто я в этой сети?

Прежде чем диагностировать связь с внешним миром, нужно понять настройки собственного интерфейса. В старых руководствах вы часто будете встречать команду ifconfig, но в современных дистрибутивах она считается устаревшей (deprecated). Стандартом де-факто стал пакет iproute2 и команда ip.

ip addr — Информация об интерфейсах

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

ip addr show

Или сокращенный вариант:

ip a

Вывод команды может показаться сложным, но нам важны две вещи:

  1. lo (loopback) — локальная петля. Обычно имеет адрес 127.0.0.1. Это виртуальный интерфейс, который позволяет компьютеру обращаться к самому себе. Если он не работает, значит, проблемы на уровне операционной системы.
  2. eth0 / ens33 / enp3s0 — ваш реальный сетевой интерфейс (название зависит от оборудования). Ищите строку, начинающуюся с inet. Например: inet 192.168.1.50/24.

Команда ip заменила устаревшую ifconfig в большинстве современных дистрибутивов Linux. Она позволяет управлять сетевыми интерфейсами и просматривать информацию о них. nixcraft.kz

Ping: Есть ли связь?

Утилита ping — это «молоток» системного администратора. Она отправляет специальный пакет (ICMP Echo Request) удаленному узлу и ждет ответа (Echo Reply).

Особенности ping в Linux

В отличие от Windows, где ping делает 4 попытки и останавливается, в Linux он работает бесконечно, пока вы его не остановите.

ping google.com

Чтобы прервать выполнение, нажмите Ctrl+C.

Если вы хотите отправить фиксированное количество пакетов, используйте флаг -c (count):

ping -c 4 google.com

Как читать вывод:

  • time=14.5 ms — время, за которое сигнал дошел туда и обратно (RTT).
  • 0% packet loss — потерь нет, связь стабильна.

Если вы видите Destination Host Unreachable, значит, ваш компьютер не знает маршрута к цели (проблема с вашей стороны или шлюзом). Если Request timed out (или просто тишина), значит, пакет ушел, но ответ не вернулся (проблема на сервере или фаерволе).

Маршрутизация: Где обрыв?

Если ping не проходит, нужно понять, на каком этапе теряется пакет. Интернет — это сеть маршрутизаторов. Пакет прыгает от одного узла к другому, пока не достигнет цели.

tracepath и traceroute

Эти утилиты показывают каждый «прыжок» (hop) вашего пакета.

tracepath google.com

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

Команда tracepath показывает путь, который пакеты данных проходят от вашего компьютера до целевого сервера. Это полезно для выявления узких мест в сети. nixcraft.kz

Более продвинутый инструмент — MTR (My Traceroute). Он объединяет ping и traceroute, обновляя статистику в реальном времени. Запустите mtr google.com и наблюдайте за потерями на каждом узле.

DNS: Имена вместо чисел

Компьютеры не понимают «google.com», они понимают IP-адреса (например, 142.250.185.78). Служба DNS (Domain Name System) работает как телефонная книга, переводящая имена в номера.

Частая ситуация: ping 8.8.8.8 работает, а ping google.com выдает ошибку Temporary failure in name resolution. Это значит, что интернет есть, но сломался DNS.

nslookup и dig

Для проверки DNS-записей используйте nslookup:

nslookup google.com

Если утилита вернет IP-адрес, значит, DNS работает корректно. Более мощный аналог для профессионалов — dig.

Порты и сокеты: Кто слушает?

Даже если сервер доступен по ping, веб-сайт на нем может не открываться. Это происходит, если нужный порт закрыт или программа (веб-сервер) упала.

ss — Статистика сокетов

Ранее стандартом была команда netstat, но сейчас рекомендуется использовать ss (socket statistics). Она быстрее и показывает больше информации.

Самая полезная комбинация флагов:

ss -tuln

Разберем флаги:

  • -t (tcp) — показать TCP соединения.
  • -u (udp) — показать UDP соединения.
  • -l (listening) — показать только порты, которые слушают (ждут входящих соединений).
  • -n (numeric) — показывать номера портов, а не их названия (например, 80 вместо http).

Если в выводе вы видите строку 0.0.0.0:80, значит, ваш веб-сервер работает и ждет гостей со всего мира.

Ss — это инструмент для исследования и анализа сокетов... С помощью программы ss мы можем увидеть детальную информацию о текущей сетевой активности в Linux. blog.telecom-sales.ru

Проверка сервисов: curl

Иногда порт открыт, но сайт выдает ошибку 500. Чтобы проверить работу веб-сервиса из консоли (без браузера), используйте curl.

curl -I https://google.com

Флаг -I (Head) запрашивает только заголовки. В ответ вы должны получить HTTP/2 200 (или OK). Это подтверждает, что веб-сервер не просто доступен по сети, но и корректно обрабатывает запросы.

Алгоритм диагностики

Если что-то не работает, следуйте этому чеклисту:

  1. Сам интерфейс: ip a (есть ли у меня IP?).
  2. Шлюз: ping 192.168.1.1 (вижу ли я роутер?).
  3. Внешний мир (по IP): ping 8.8.8.8 (есть ли интернет?).
  4. DNS: nslookup google.com (работают ли имена?).
  5. Порты: ss -tuln (запущен ли сервис?) или curl (отвечает ли сайт?).

Итоги

Мы разобрали базовый набор сетевых утилит Linux:

  1. ip addr — показывает ваши сетевые интерфейсы и IP-адреса.
  2. ping — проверяет доступность узла (используйте -c для ограничения попыток).
  3. tracepath — показывает маршрут пакета и место обрыва связи.
  4. ss -tuln — показывает открытые порты на вашем сервере.
  5. curl — позволяет делать HTTP-запросы из терминала.