Сервер недоступен: Шаги диагностики
Пошаговое руководство по диагностике проблем доступа к серверу: ping, SSH, проверка портов, файрвол и сетевая маршрутизация.
Содержание
Введение
Невозможность доступа к серверу может быть вызвана различными причинами: сетевые проблемы, правила файрвола, сбои служб или аппаратные неисправности. В этом руководстве мы подробно расскажем о шагах систематической диагностики проблем доступа к серверу.
Шаг 1: Проверка доступности с помощью Ping
Первым делом проверьте, доступен ли ваш сервер в сети:
# Простой 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-подключение:
# Тест SSH-подключения (подробный режим)
ssh -v root@IP_СЕРВЕРА
# SSH с настройкой таймаута
ssh -o ConnectTimeout=10 root@IP_СЕРВЕРА
# SSH через определённый порт
ssh -p 2222 root@IP_СЕРВЕРА
Сообщения об ошибках SSH
# 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: Проверка доступности портов
Проверьте, открыты ли определённые порты:
# Проверка порта с помощью 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, и для доступа необходимо открыть соответствующий порт правилом фильтрации:
- Войдите в Path Panel или в продукт управления правилами в вашей клиентской панели
- Нажмите на соответствующий IP-адрес
- Проверьте наличие правил фильтрации для необходимых портов
- Убедитесь, что правила находятся в статусе propagated
Правилам Path Panel может потребоваться 2-5 минут для перехода в статус propagated. Вновь созданные правила могут быть не сразу активны.
Даже если в панели правило отображается как ещё не распространённое (не обновлённое), правило, скорее всего, уже развёрнуто в течение 2-5 минут. Статус может обновляться с задержкой из-за интервала проверки статуса панелью или времени, необходимого для применения правила на всех узлах на стороне Path (кроме нашего). Это лишь визуальная задержка в панели; порт на самом деле уже открыт в системе.
Файрвол на стороне сервера
Если у вас есть консольный доступ к серверу:
# Проверка правил iptables
sudo iptables -L -n -v
# Статус UFW
sudo ufw status verbose
# Статус firewalld
sudo firewall-cmd --list-all
# Правила nftables
sudo nft list ruleset
Временное отключение файрвола (только для тестирования)
# Отключение 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: Проверка статуса служб
Если у вас есть консольный доступ, проверьте статус служб:
# Статус службы 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: Проверка сетевой маршрутизации
# Анализ пути с помощью traceroute
traceroute IP_СЕРВЕРА
# Детальный анализ с помощью mtr
mtr -r -c 50 IP_СЕРВЕРА
# Локальная таблица маршрутизации
ip route show
# ARP-таблица
arp -a
Шаг 7: Консольный доступ
Если сетевой доступ невозможен, попробуйте альтернативные методы доступа:
Клиентская панель REXE
- Войдите на my.rexe.tr
- Нажмите на соответствующую услугу
- Используйте доступ через VNC-консоль или IPMI
- Попробуйте опцию перезагрузки сервера
Скрипт диагностики
#!/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 и результатами проведённых проверок.
Связанные статьи
Проблема SSH-подключения: не могу подключиться к серверу
Руководство по решению проблем SSH-подключения: правила файрвола Path.net, Default Block, создание правила фильтрации для SSH-порта и шаги по устранению неполадок.
Проблема RDP-подключения: не могу подключиться к Windows Server
Руководство по решению проблем RDP-подключения: правила файрвола Path.net, Default Block, создание правила фильтрации для порта RDP и шаги по устранению неполадок.
Как провести MTR-тест и отправить результаты в поддержку
Руководство по сетевому тестированию с помощью WinMTR и Linux MTR, создание правила фильтрации ICMP и отправка результатов в службу поддержки. Диагностика потери пакетов.