Перейти к основному содержимому
Вернуться в категорию

Сервер недоступен: Шаги диагностики

Пошаговое руководство по диагностике проблем доступа к серверу: ping, SSH, проверка портов, файрвол и сетевая маршрутизация.

Время чтения: 12 мин Устранение неполадок
доступpingsshпортфайрволподключениесервер

Содержание

Введение

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

Шаг 1: Проверка доступности с помощью Ping

Первым делом проверьте, доступен ли ваш сервер в сети:

hljs bash
# Простой ping-тест
ping -c 10 IP_СЕРВЕРА

# Ping с настройкой таймаута
ping -c 10 -W 3 IP_СЕРВЕРА

Интерпретация результатов Ping

РезультатЗначениеВозможная причина
Ответ полученСервер доступен в сетиВозможна проблема на уровне сервиса
Request timeoutПакеты не достигают целиФайрвол, сетевая проблема или сервер выключен
Destination unreachableПроблема маршрутизацииНеверный IP, ошибка сетевой конфигурации
100% потеря пакетовПолная потеря доступаСервер выключен или нет сетевого подключения

На серверах REXE, когда у IP нет ни одного правила, все порты открыты. Если на вашем IP есть правила, автоматически включается Default Block; в этом случае для ICMP (ping) также может потребоваться правило в Path Panel (переключатель Ping).

Шаг 2: Тест SSH-подключения

Если ping работает, протестируйте SSH-подключение:

hljs bash
# Тест SSH-подключения (подробный режим)
ssh -v root@IP_СЕРВЕРА

# SSH с настройкой таймаута
ssh -o ConnectTimeout=10 root@IP_СЕРВЕРА

# SSH через определённый порт
ssh -p 2222 root@IP_СЕРВЕРА

Сообщения об ошибках SSH

hljs bash
# Connection refused — служба SSH не запущена или неверный порт
ssh: connect to host IP_СЕРВЕРА port 22: Connection refused

# Connection timed out — файрвол блокирует или сервер недоступен
ssh: connect to host IP_СЕРВЕРА port 22: Connection timed out

# No route to host — проблема сетевой маршрутизации
ssh: connect to host IP_СЕРВЕРА port 22: No route to host

# Permission denied — ошибка аутентификации
Permission denied (publickey,password)

Шаг 3: Проверка доступности портов

Проверьте, открыты ли определённые порты:

hljs bash
# Проверка порта с помощью telnet
telnet IP_СЕРВЕРА 22
telnet IP_СЕРВЕРА 80
telnet IP_СЕРВЕРА 443

# Проверка порта с помощью nc (netcat)
nc -zv IP_СЕРВЕРА 22
nc -zv IP_СЕРВЕРА 80
nc -zv -w 5 IP_СЕРВЕРА 22

# Сканирование портов с помощью nmap
nmap -p 22,80,443 IP_СЕРВЕРА

# Проверка нескольких портов
nmap -p 1-1000 IP_СЕРВЕРА

Статусы портов

СтатусЗначение
openПорт открыт и служба прослушивает
closedПорт доступен, но служба отсутствует
filteredФайрвол блокирует порт
timeoutТаймаут подключения

Шаг 4: Проверка файрвола

Проверка REXE Path Panel

На серверах REXE, когда у IP нет ни одного правила, все порты открыты. Когда на вашем IP есть хотя бы одно правило, автоматически включается Default Block, и для доступа необходимо открыть соответствующий порт правилом фильтрации:

  1. Войдите в Path Panel или в продукт управления правилами в вашей клиентской панели
  2. Нажмите на соответствующий IP-адрес
  3. Проверьте наличие правил фильтрации для необходимых портов
  4. Убедитесь, что правила находятся в статусе propagated

Правилам Path Panel может потребоваться 2-5 минут для перехода в статус propagated. Вновь созданные правила могут быть не сразу активны.

Даже если в панели правило отображается как ещё не распространённое (не обновлённое), правило, скорее всего, уже развёрнуто в течение 2-5 минут. Статус может обновляться с задержкой из-за интервала проверки статуса панелью или времени, необходимого для применения правила на всех узлах на стороне Path (кроме нашего). Это лишь визуальная задержка в панели; порт на самом деле уже открыт в системе.

Файрвол на стороне сервера

Если у вас есть консольный доступ к серверу:

hljs bash
# Проверка правил iptables
sudo iptables -L -n -v

# Статус UFW
sudo ufw status verbose

# Статус firewalld
sudo firewall-cmd --list-all

# Правила nftables
sudo nft list ruleset

Временное отключение файрвола (только для тестирования)

hljs bash
# Отключение UFW
sudo ufw disable

# Очистка правил iptables
sudo iptables -F
sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD ACCEPT

# Остановка firewalld
sudo systemctl stop firewalld

Отключение файрвола делает ваш сервер уязвимым. Используйте это только для тестирования и немедленно включите файрвол после завершения теста.

Шаг 5: Проверка статуса служб

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

hljs bash
# Статус службы SSH
sudo systemctl status sshd

# Статус веб-сервера
sudo systemctl status nginx
sudo systemctl status apache2

# Список всех запущенных служб
sudo systemctl list-units --type=service --state=running

# Список неудачных служб
sudo systemctl list-units --type=service --state=failed

# Проверка прослушиваемых портов
sudo ss -tlnp
sudo netstat -tlnp

Шаг 6: Проверка сетевой маршрутизации

hljs bash
# Анализ пути с помощью traceroute
traceroute IP_СЕРВЕРА

# Детальный анализ с помощью mtr
mtr -r -c 50 IP_СЕРВЕРА

# Локальная таблица маршрутизации
ip route show

# ARP-таблица
arp -a

Шаг 7: Консольный доступ

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

Клиентская панель REXE

  1. Войдите на my.rexe.tr
  2. Нажмите на соответствующую услугу
  3. Используйте доступ через VNC-консоль или IPMI
  4. Попробуйте опцию перезагрузки сервера

Скрипт диагностики

hljs bash
#!/bin/bash
# Скрипт диагностики доступа к серверу
SERVER_IP="IP_СЕРВЕРА"

echo "=== Проверка доступа к серверу: $SERVER_IP ==="

# 1. Проверка ping
echo -e "\n[1] Проверка Ping:"
ping -c 5 -W 3 $SERVER_IP 2>&1 | tail -2

# 2. Проверка SSH-порта
echo -e "\n[2] Проверка SSH-порта (22):"
nc -zv -w 5 $SERVER_IP 22 2>&1

# 3. Проверка HTTP-порта
echo -e "\n[3] Проверка HTTP-порта (80):"
nc -zv -w 5 $SERVER_IP 80 2>&1

# 4. Проверка HTTPS-порта
echo -e "\n[4] Проверка HTTPS-порта (443):"
nc -zv -w 5 $SERVER_IP 443 2>&1

# 5. Traceroute
echo -e "\n[5] Traceroute:"
traceroute -m 15 $SERVER_IP 2>&1

echo -e "\n=== Проверка завершена ==="

Типичные сценарии и решения

СценарийВозможная причинаРешение
Ping не работает, ни один порт не открытСервер выключен или нет сетевого подключенияПерезагрузите сервер через панель REXE
Ping работает, но SSH не подключаетсяСлужба SSH упала или порт заблокированСоздайте правило для SSH-порта в Path Panel
SSH подключается, но сайт не открываетсяСлужба веб-сервера упалаПодключитесь по SSH и перезапустите nginx/apache
Все порты отображаются как filteredФайрвол блокирует весь трафикПроверьте правила Path Panel
Периодические обрывы соединенияПотеря сетевых пакетов или DDoSСоздайте отчёт mtr и отправьте в поддержку REXE

Заключение

Для решения проблем доступа к серверу важен систематический подход. Начните с проверки ping и последовательно проверяйте доступность портов, правила файрвола и статус служб. На серверах REXE не забудьте проверить правила файрвола Path Panel. Если проблема сохраняется, обратитесь в службу поддержки REXE с отчётом mtr и результатами проведённых проверок.