Введение
Добро пожаловать, сетевой навигатор! Вас только что наняли на должность младшего системного администратора в быстрорастущий технологический стартап. Сегодня утром критически важный веб-сервер перестал отвечать. Пользователи сообщают, что не могут получить доступ к внутреннему порталу компании.
Ваш старший администратор занят на совещании и поручил вам провести первичную диагностику. Это ваш шанс проявить себя! Ваша задача — систематически исследовать состояние сети сервера, выявить первопричину и восстановить соединение. Давайте вернем сервер в строй!
- Временно пропустите задание и продолжите выполнение последующих практических лабораторных работ в пути обучения Linux.
- Обсудите проблему с Labby или посмотрите решение.
Проверка состояния сетевого интерфейса
Ваш первый шаг в качестве сетевого навигатора — сбор базовой информации. Распознается ли сетевое оборудование и активно ли оно? Вам нужно проверить состояние всех сетевых интерфейсов на сервере. Современный инструмент для этой задачи — команда ip.
Задачи
- Используйте команду
ipдля отображения состояния и конфигурации всех сетевых интерфейсов.
Требования
- Вы должны использовать команду
ip addrдля выполнения этой проверки.
Примеры
После выполнения команды вы должны увидеть вывод, отображающий сетевые интерфейсы, такие как lo (loopback) и eth0 (или аналогичные). Обратите внимание на состояние вашего основного интерфейса — оно должно быть UP, что означает, что он активен.
## Ожидаемый формат вывода (имена интерфейсов могут отличаться)
1: lo: 65536 qdisc noqueue state UNKNOWN group default qlen 1000 < LOOPBACK,UP,LOWER_UP > mtu
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: 1500 qdisc mq state UP group default qlen 1000 < BROADCAST,MULTICAST,UP,LOWER_UP > mtu
link/ether 00:16:3e:04:b0:40 brd ff:ff:ff:ff:ff:ff
inet 172.16.50.108/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
valid_lft 1892159216sec preferred_lft 1892159216sec
Подсказки
- Команда
ip— это мощный инструмент с множеством подкоманд. Подкоманда для управления адресами —addr. - Вы можете использовать
ip addr showили её сокращенный вариантip addr.
Проверка конфигурации IP-адреса
Хорошо, интерфейс в состоянии UP. Это неплохое начало. Но есть ли у него IP-адрес? Интерфейс без IP-адреса не может обмениваться данными в сети. Хотя ip addr показывает это, давайте воспользуемся другой классической командой, ifconfig, чтобы перепроверить. Полезно знать несколько инструментов для одной и той же задачи.
Задачи
- Используйте команду
ifconfigдля проверки конфигурации IP-адреса.
Требования
- Вы должны использовать команду
ifconfig.
Примеры
Вывод должен отображать ваши сетевые интерфейсы с их IP-адресами. Ищите поле inet под вашим основным сетевым интерфейсом (например, eth0), чтобы подтвердить конфигурацию IP.
## Ожидаемый вывод с конфигурацией IP
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.50.108 netmask 255.255.255.0 broadcast 172.16.50.255
ether 00:16:3e:04:b0:40 txqueuelen 1000 (Ethernet)
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
Подсказки
- Команда
ifconfigявляется частью пакетаnet-tools, который мы уже установили для вас. - Запуск
ifconfigбез аргументов отобразит все активные интерфейсы.
Тестирование соединения с удаленными хостами
У сервера есть активный интерфейс и IP-адрес. Следующий логический шаг — проверить, может ли он связаться с внешним миром. Ошибка на этом этапе может указывать на проблему с шлюзом или настройками DNS. Команда ping — идеальный инструмент для этого теста.
Задачи
- Проверьте соединение сервера с интернетом, отправив ровно 3 ICMP-пакета на публичный DNS-сервер Google по адресу
8.8.8.8.
Требования
- Вы должны использовать команду
ping. - Вы должны ограничить количество отправляемых пакетов до 3.
- Целевой IP-адрес должен быть
8.8.8.8.
Примеры
Если соединение работает, вы должны увидеть ответы от целевого IP-адреса с информацией о времени задержки. Итоговая сводка должна показать 3 переданных и 3 полученных пакета с 0% потерь.
## Ожидаемый успешный вывод
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=4.33 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=4.30 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=119 time=4.30 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 4.298/4.309/4.329/0.014 ms
Подсказки
- Команда
pingбудет выполняться бесконечно, пока вы не остановите её. - Используйте опцию
-c, чтобы указатьcount (количество) пакетов для отправки.
Проверка открытых сетевых портов
Соединение в порядке! Так почему же внутренний портал все еще недоступен? Проблема может быть в самом приложении. Действительно ли процесс веб-сервера запущен и ожидает соединений на нужном порту? Команда ss (socket statistics) — это современный и быстрый инструмент для исследования этого вопроса.
Задачи
- Внутренний портал должен работать на порту
8000. Используйте командуss, чтобы проверить, ожидает ли какой-либо процесс входящие TCP-соединения на порту8000.
Требования
- Вы должны использовать команду
ss. - Ваша команда должна быть составлена так, чтобы отображать слушающие TCP-сокеты.
Примеры
Если процесс ожидает соединений на порту 8000, вы должны увидеть вывод с информацией о слушающем сокете. Ищите строку, где в столбце Local Address указан порт 8000.
## Ожидаемый вывод, показывающий слушающий процесс на порту 8000
LISTEN 0 5 0.0.0.0:8000 0.0.0.0:* users:(("python3",pid=3765,fd=3))
Подсказки
- У команды
ssесть несколько полезных флагов:-t: показатьTCP-сокеты.-l: показатьlistening (слушающие) сокеты.-n: показатьnumeric (числовые) номера портов вместо имен служб.-p: показатьprocess (процесс), использующий сокет.
- Вы можете комбинировать эти флаги, например:
ss -tlnp. - Чтобы найти конкретный порт, вы можете передать вывод
ssкомандеgrep. Например:ss -tlnp | grep 8000.
Настройка базовых правил брандмауэра
Вы все подтвердили: интерфейс поднят, IP задан, интернет-соединение работает, приложение слушает нужный порт. Остался только один главный подозреваемый: брандмауэр. Скорее всего, он блокирует входящий трафик к порталу. Ваша последняя задача — настроить брандмауэр так, чтобы трафик снова мог достигать портала. Мы будем использовать ufw (Uncomplicated Firewall) — удобный интерфейс для управления правилами брандмауэра.
Задачи
- Добавьте правило брандмауэра, разрешающее входящий трафик на порт
8000. - Добавьте правило брандмауэра, разрешающее входящий SSH-трафик (порт 22).
- Включите брандмауэр, чтобы применить новые правила.
Требования
- Вы должны использовать команду
ufwдля всех операций. - Вы должны использовать
sudo, так как изменение правил брандмауэра требует прав администратора.
Примеры
После настройки правил брандмауэра выполнение sudo ufw status должно показать, что брандмауэр активен, а порты 8000 и SSH (22) разрешены.
## Ожидаемый вывод после включения брандмауэра с разрешенными портами 8000 и SSH
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
8000 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
8000 (v6) ALLOW Anywhere (v6)
При добавлении правила вы должны увидеть:
Rules updated
Rules updated (v6)
При включении брандмауэра вы должны увидеть:
Firewall is active and enabled on system startup
Подсказки
- Синтаксис
ufwочень прост. Чтобы разрешить трафик на порт, используйтеufw allow <port>. - Вы можете разрешить трафик на порт 8000 с помощью
ufw allow 8000. - Вы можете разрешить SSH-трафик с помощью
ufw allow sshилиufw allow 22. - Критическое предупреждение: Если вы не откроете SSH-порт (22) должным образом, проверка не будет пройдена, так как она зависит от этого порта для SSH-соединения.
- Важное предупреждение: Не изменяйте правила брандмауэра для других портов произвольно, так как это может привести к сбоям в работе виртуальной машины.
- После добавления правил вы должны включить брандмауэр командой
ufw enable.
Итоги
Отличная работа, навигатор! Систематически проверяя сетевые интерфейсы, конфигурацию IP, тестируя соединение, исследуя открытые порты и, наконец, настроив брандмауэр, вы успешно диагностировали и устранили проблему. Внутренний портал снова в сети, и вы заслужили уважение своей команды.
Вы продемонстрировали уверенное владение фундаментальными сетевыми инструментами Linux, такими как ip, ifconfig, ping, ss и ufw. Этот логичный, пошаговый процесс устранения неполадок является критически важным навыком для любого системного администратора и будет неоценим в вашей карьере. Продолжайте совершенствовать свои навыки!



