Servers Troubleshooting

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

8 слоёв диагностики недоступного сервера: ваша сеть, пинг, порт SSH, traceroute, панель VPS, Fail2Ban, Nginx, hard reboot. Что проверять и в каком порядке.

Проверено: Ubuntu 22.04, Nginx 1.24

Сервер не отвечает — нет пинга, нет SSH, сайт недоступен. Причин может быть восемь. Разбираем по слоям: от вашей сети до самого сервера.

Слой 1: ваша сеть работает?

# Проверить интернет с вашей стороны
ping -c 3 8.8.8.8

# Если не пингуется — проблема у вас, не на сервере
# Проверить другой ресурс:
curl -s --max-time 5 https://example.com | head -5

Слой 2: сервер пингуется?

ping -c 5 your-server-ip

# Если нет:
# - Firewall блокирует ICMP (это не значит что сервер мёртв)
# - Сервер выключен / упал
# - Сеть провайдера недоступна
Примечание: Отсутствие пинга не всегда означает что сервер мёртв. Некоторые провайдеры блокируют ICMP. Проверьте следующий слой.

Слой 3: порт SSH открыт?

nc -zv your-server-ip 2906    # нестандартный порт
nc -zv your-server-ip 22      # стандартный

# PowerShell (Windows)
Test-NetConnection -ComputerName your-server-ip -Port 22

Слой 4: трассировка маршрута

traceroute your-server-ip     # Linux/macOS
tracert your-server-ip        # Windows

# mtr — лучший вариант
mtr --report your-server-ip

Где обрывается трассировка — там проблема. Если на предпоследнем хопе (маршрутизатор провайдера сервера) — проблема на их стороне.

Слой 5: панель управления VPS

Если сервер на VPS — зайти в панель провайдера (Hetzner Cloud Console, DigitalOcean Dashboard, и т.д.):

  • Статус сервера: Running / Stopped / Error
  • KVM/VNC-консоль для прямого доступа без SSH
  • Последние события: reboot, OOM killer, kernel panic
  • Метрики CPU/RAM — аномальный spike перед недоступностью

Слой 6: сервер включён — SSH недоступен

Если через KVM видно что сервер запущен, но SSH не отвечает:

# Через KVM-консоль проверить:
systemctl status sshd
sudo ufw status
fail2ban-client status sshd | grep 'Banned IP'

# Если Fail2Ban заблокировал ваш IP:
sudo fail2ban-client set sshd unbanip YOUR_IP

Слой 7: сайт не открывается, SSH работает

# Nginx запущен?
sudo systemctl status nginx
sudo journalctl -u nginx -n 20 --no-pager

# Порт 443 слушается?
sudo ss -tlnp | grep :443

# Сертификат не истёк?
echo | openssl s_client -connect domain.com:443 2>/dev/null | openssl x509 -noout -dates

# Перезапустить
sudo systemctl restart nginx

Слой 8: сервер завис — нужен hard reboot

Если через KVM ничего не отображается или сервер не реагирует — выполнить принудительную перезагрузку через панель провайдера (Power Off → Power On или Force Restart).

Внимание: После неожиданного перезапуска проверьте целостность файловой системы: sudo fsck -n /dev/vda1 (только для чтения). Если есть ошибки — выполнить fsck в однопользовательском режиме.

Итог

Восемь слоёв от вашей сети до конкретного сервиса. Цель — как можно раньше локализовать проблему: ваша сеть, транзит, сервер целиком, OS, сервис. Каждый слой — конкретная команда и конкретный следующий шаг.