← Назад к вопросам

Как с помощью ssh проверить наличие сетевых проблем

2.2 Middle🔥 111 комментариев
#Linux и администрирование#Сети и протоколы

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Диагностика сетевых проблем через SSH

Проверка сетевых проблем через SSH — это комплексный процесс, который включает анализ доступности, задержек, маршрутизации и состояния сетевых служб на удалённом хосте. Вот ключевые методы и команды, которые я использую в своей практике.

1. Проверка базовой доступности и задержек

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

# Проверка доступности с помощью ping (указываем количество пакетов)
ping -c 4 example.com

# Проверка времени отклика с более подробным выводом
ping -c 10 -i 0.2 example.com

Анализ результатов:

  • Высокий packet loss (потеря пакетов) указывает на нестабильность канала
  • Большая вариация времени отклика (jitter) может создавать проблемы для реального времени
  • Полная недоступность требует проверки маршрутизации и фаервола

2. Анализ маршрутизации

Проблемы часто возникают на промежуточных узлах. Трассировка помогает локализовать проблемный сегмент.

# Классическая трассировка
traceroute example.com

# Современная альтернатива с большими возможностями
mtr --report --report-cycles 10 example.com

Преимущества mtr:

  • Комбинирует ping и traceroute
  • Показывает потери пакетов на каждом хопе
  • Обновляет статистику в реальном времени

3. Проверка сетевых соединений и портов

Важно проверить, какие службы слушают на интерфейсах и установлены ли нужные соединения.

# Просмотр всех сетевых соединений
ss -tulpn

# Проверка конкретного порта
nc -zv example.com 443

# Или с помощью telnet (если nc недоступен)
telnet example.com 80

Ключевые моменты:

  • Состояние LISTEN — служба ожидает подключений
  • Состояние ESTABLISHED — активные соединения
  • Неожиданные TIME_WAIT — могут указывать на проблемы с закрытием соединений

4. Диагностика DNS

Проблемы с разрешением имён — частый источник сетевых проблем.

# Проверка DNS разрешения
nslookup example.com
dig example.com A +short

# Проверка обратного DNS
dig -x 8.8.8.8

# Тест полного разрешения с трассировкой
dig example.com +trace

5. Мониторинг сетевого трафика

Для анализа проблем в реальном времени полезны инструменты захвата трафика.

# Просмотр трафика в реальном времени
tcpdump -i eth0 -n port 80

# Более удобный интерфейс
iftop -n

# Статистика по интерфейсам
ip -s link show eth0

6. Проверка конфигурации сети

# Текущая конфигурация интерфейсов
ip addr show

# Таблица маршрутизации
ip route show

# Таблица ARP
ip neigh show

7. Анализ фаервола

# Для iptables
iptables -L -n -v

# Для nftables
nft list ruleset

# Проверка правил в конкренной цепочке
iptables -L INPUT -n -v --line-numbers

8. Комплексный скрипт для быстрой диагностики

Я часто создаю скрипты для автоматической проверки:

#!/bin/bash
# quick_network_check.sh

HOST=${1:-google.com}

echo "=== Начало диагностики сети ==="
echo "Целевой хост: $HOST"
echo

echo "1. Проверка доступности..."
ping -c 4 $HOST 2>/dev/null || echo "PING не удался"

echo
echo "2. Проверка маршрутизации..."
traceroute -n -m 15 $HOST 2>/dev/null | head -20

echo
echo "3. Проверка ключевых портов..."
for PORT in 22 80 443; do
    timeout 2 nc -zv $HOST $PORT 2>&1 | grep -E "succeeded|timed out" || echo "Порт $PORT: проверка не удалась"
done

echo
echo "4. Проверка DNS..."
dig $HOST +short 2>/dev/null | head -3

Методология анализа

При диагностике я придерживаюсь системного подхода:

  1. От простого к сложному — начинаю с ping, перехожу к traceroute
  2. Снизу вверх по стеку OSI — физический уровень, сетевой, транспортный
  3. Сравнение рабочего и нерабочего — если есть эталонная система
  4. Логирование — сохраняю результаты для анализа трендов
  5. Временные корреляции — связываю проблемы с изменениями в инфраструктуре

Типичные проблемы и их признаки

  • Периодические таймауты — проблемы с маршрутизацией или перегрузка канала
  • Частичная доступность — проблемы с балансировщиками или геораспределением
  • Медленный отклик — перегруженные каналы или проблемы с MTU
  • DNS задержки — проблемы с кэшированием или рекурсивными запросами

Эффективная диагностика требует понимания как сетевых принципов, так и особенностей конкретной инфраструктуры. Регулярный мониторинг и проактивные проверки помогают выявлять проблемы до их эскалации.

Как с помощью ssh проверить наличие сетевых проблем | PrepBro