Осваиваем команду Linux Netstat: от основ до продвинутого мониторинга сети

LightNode
By LightNode ·

Введение

Команда netstat (статистика сети) является одним из самых важных инструментов сетевого администрирования в системе Linux. Этот универсальный утилита командной строки предоставляет всесторонний обзор сетевых соединений, таблиц маршрутизации, статистики интерфейсов и другой важной информации, связанной с сетью.

Что такое netstat?

netstat — это утилита командной строки, которая отображает различную информацию, связанную с сетью, включая:

  • Сетевые соединения (как входящие, так и исходящие)
  • Таблицы маршрутизации
  • Статистику сетевых интерфейсов
  • Соединения маскировки
  • Членство в мультикастах
  • Статистику протоколов

Почему это важно

Системные администраторы и сетевые инженеры полагаются на netstat для выполнения нескольких критически важных задач:

  1. Устранение неполадок в сети - Быстрое выявление проблем с соединением и узких мест в сети
  2. Мониторинг безопасности - Обнаружение несанкционированных сетевых соединений и подозрительной активности
  3. Анализ производительности - Мониторинг трафика сети и статистики интерфейсов
  4. Аудит системы - Обзор активных служб и открытых портов

Краткая история

Команда netstat является частью набора инструментов TCP/IP с ранних дней систем Unix. Хотя она возникла в BSD Unix, она эволюционировала и стала стандартным инструментом в различных системах, похожих на Unix, включая Linux. Несмотря на то, что ее считают "устаревшей" в пользу более новых инструментов, таких как ss, netstat по-прежнему широко используется благодаря своей:

  • Знакомости среди системных администраторов
  • Широкой доступности в различных системах, похожих на Unix
  • Богатому набору функций и подробным параметрам вывода
  • Обширной документации и поддержке сообщества

Основной синтаксис и использование

Формат команды

Основной синтаксис команды netstat:

netstat [options]

Команда может использоваться с различными параметрами для настройки вывода в зависимости от ваших потребностей. Без каких-либо параметров netstat отобразит список открытых сокетов.

Общие параметры и флаги

Вот наиболее часто используемые параметры:

ПараметрОписание
-aПоказывает все прослушивающие порты и активные соединения
-tОтображает TCP-соединения
-uПоказывает UDP-соединения
-nПоказывает числовые адреса вместо разрешения хостов и портов
-lПоказывает только прослушивающие сокеты
-pОтображает PID и имя программы
-rПоказывает таблицу маршрутизации
-iПоказывает статистику сетевых интерфейсов
-sПоказывает статистику протоколов

Основные примеры

  1. Просмотр всех активных соединений
netstat -a
  1. Отображение всех TCP-соединений
netstat -at
  1. Показать прослушивающие порты с информацией о программе
sudo netstat -tulnp

Эта популярная комбинация показывает:

  • -t: TCP-соединения
  • -u: UDP-соединения
  • -l: Только прослушивающие порты
  • -n: Числовые адреса
  • -p: Информация о программе
  1. Проверка таблицы маршрутизации
netstat -r
  1. Просмотр статистики интерфейсов
netstat -i

Понимание вывода

Типичный вывод netstat включает несколько столбцов:

  • Proto: Протокол (TCP, UDP)
  • Recv-Q: Данные, ожидающие получения
  • Send-Q: Данные, ожидающие отправки
  • Local Address: Локальная конечная точка соединения
  • Foreign Address: Удаленная конечная точка соединения
  • State: Состояние соединения (LISTEN, ESTABLISHED и т.д.)

Пример вывода при использовании netstat -tan:

Proto Recv-Q Send-Q Local Address          Foreign Address        State
tcp        0      0 0.0.0.0:22            0.0.0.0:*             LISTEN
tcp        0      0 127.0.0.1:631         0.0.0.0:*             LISTEN
tcp        0      0 192.168.1.5:22        192.168.1.100:52614   ESTABLISHED

Ключевые функции и параметры

Параметры отображения

Перечисление всех соединений

Команда netstat предлагает различные способы перечисления сетевых соединений в зависимости от ваших конкретных потребностей:

  1. Показать все протоколы с числовыми адресами
netstat -an
  1. Отобразить расширенную информацию
netstat -ae

Это добавляет дополнительную информацию, такую как пользователь и inode

  1. Показать информацию о таймерах
netstat -o

Добавляет информацию о времени, полезную для устранения неполадок

Отображение, специфичное для протокола

  1. Только TCP
# Показать все TCP-соединения, включая прослушивающие порты
netstat -at

# Показать только прослушивающие TCP-порты
netstat -lt
  1. Только UDP
# Показать все UDP-соединения
netstat -au

# Показать только прослушивающие UDP-порты
netstat -lu
  1. Сокеты домена Unix
# Отобразить сокеты домена Unix
netstat -x

Параметры формата вывода

Числовое отображение

# Полный числовой вывод (без разрешения имен)
netstat -n

# Скомбинировать с другими параметрами
netstat -ant  # TCP-соединения с числовыми адресами

Преимущества числового отображения:

  • Быстрая работа
  • Без DNS-запросов
  • Более надежно в случае проблем с DNS

Расширенный просмотр информации

# Показать информацию о процессе
sudo netstat -p

# Показать информацию о пользователе и процессе
sudo netstat -ep

# Показать статистику сетевых интерфейсов с расширенной информацией
netstat -ie

Непрерывное отображение

# Обновление каждые 2 секунды
netstat -c

# Скомбинировать с другими параметрами для непрерывного мониторинга
netstat -ct  # Непрерывный мониторинг TCP

Отображение статистики

  1. Статистика протоколов
# Показать сводную статистику для всех протоколов
netstat -s

# Показать статистику только для TCP
netstat -st

# Показать статистику только для UDP
netstat -su
  1. Статистика интерфейсов
# Отобразить статистику интерфейсов
netstat -i

# Показать расширенную информацию об интерфейсе
netstat -ie

Пример вывода статистики интерфейсов:

Iface    MTU   RX-OK RX-ERR RX-DRP RX-OVR   TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0    1500  158426      0      0      0   88573      0      0      0 BMRU
lo     65536   24846      0      0      0   24846      0      0      0 LRU

Где:

  • RX: Статистика получения
  • TX: Статистика передачи
  • OK: Успешные пакеты
  • ERR: Количество ошибок
  • DRP: Упавшие пакеты
  • OVR: События переполнения

Общие случаи использования

Устранение неполадок в сети

Проверка открытых портов

  1. Найти все открытые порты на системе
sudo netstat -tulpn | grep LISTEN

Эта команда помогает определить:

  • Какие службы работают
  • Какие порты они используют
  • Какие процессы владеют этими портами
  1. Проверить, используется ли конкретный порт
sudo netstat -tulpn | grep ":80"    # Проверить веб-сервер
sudo netstat -tulpn | grep ":3306"  # Проверить MySQL

Идентификация активных соединений

  1. Мониторинг текущих соединений
# Показать все установленные соединения
netstat -nat | grep ESTABLISHED

# Подсчитать соединения по IP-адресу
netstat -nat | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c
  1. Отслеживание состояний соединений
# Просмотреть распределение состояний соединений
netstat -ant | awk '{print $6}' | sort | uniq -c

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

  1. Анализ трафика интерфейса
# Наблюдать за статистикой интерфейса в реальном времени
netstat -i
watch -n 1 "netstat -i"
  1. Мониторинг, специфичный для протокола
# Мониторинг статистики трафика TCP
netstat -st

# Мониторинг статистики трафика UDP
netstat -su

Анализ безопасности

Поиск подозрительных соединений

  1. Обнаружение необычных портов
# Перечислить все нестандартные прослушивающие порты
sudo netstat -tulpn | grep -v ":22\|:80\|:443"
  1. Проверка на наличие подозрительных паттернов соединений
# Искать соединения с неожиданных IP
netstat -ant | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn

Обнаружение попыток сканирования портов

# Искать множественные попытки соединений
netstat -ant | grep SYN_RECV | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

Аудит системы

  1. Проверка служб
# Проверить, какие процессы прослушивают какие порты
sudo netstat -tulpn | grep LISTEN | sort -k 4
  1. Логирование соединений
# Создать простой лог соединений
while true; do
    date >> connection_log.txt
    netstat -ant >> connection_log.txt
    sleep 60
done
  1. Мониторинг использования ресурсов
# Мониторинг количества соединений по службе
netstat -ant | grep ESTABLISHED | awk '{print $4}' | cut -d: -f2 | sort | uniq -c

Общие сценарии устранения неполадок

  1. Проблемы с веб-сервером
# Проверить соединения веб-сервера
sudo netstat -ant | grep ":80\|:443" | awk '{print $6}' | sort | uniq -c
  1. Проблемы с соединением базы данных
# Мониторинг соединений с базой данных (пример MySQL)
sudo netstat -ant | grep :3306 | awk '{print $6}' | sort | uniq -c
  1. Анализ почтового сервера
# Проверить соединения почтового сервера
sudo netstat -ant | grep ":25\|:465\|:587" | awk '{print $6}' | sort | uniq -c

Расширенное использование

Комбинирование с другими командами

Использование с grep и awk

  1. Сложная фильтрация и анализ
# Подсчет соединений по состоянию и порту
netstat -ant | awk '{print $6, $4}' | sort | uniq -c | sort -rn

# Мониторинг соединений конкретной службы с течением времени
watch -n 1 'netstat -ant | grep ":80" | wc -l'
  1. Расширенный анализ соединений
# Создание сводки соединений
netstat -ant | \
awk '{ip[$5]++} END {for (i in ip) print ip[i],i}' | \
sort -nr | head -n 10

Пайпинг в другие инструменты

# Использование с tee для логирования
netstat -ant | tee network_status.log

# Использование с xargs для управления процессами
netstat -tulpn | grep LISTEN | awk '{print $7}' | cut -d/ -f1 | xargs ps -f

Скрипты и автоматизация

Основной скрипт мониторинга

#!/bin/bash

LOG_FILE="/var/log/network_monitor.log"

monitor_connections() {
    echo "=== Отчет о состоянии сети ===" >> $LOG_FILE
    date >> $LOG_FILE
    echo "Активные соединения:" >> $LOG_FILE
    netstat -ant | grep ESTABLISHED | wc -l >> $LOG_FILE
    echo "Прослушивающие порты:" >> $LOG_FILE
    netstat -tulpn | grep LISTEN >> $LOG_FILE
    echo "=========================" >> $LOG_FILE
}

# Запуск каждые 5 минут
while true; do
    monitor_connections
    sleep 300
done

Скрипт для расширенного анализа

#!/bin/bash

analyze_network() {
    echo "=== Анализ сети ==="
    
    echo -e "\nТоп 10 IP соединений:"
    netstat -ant | grep ESTABLISHED | \
    awk '{print $5}' | cut -d: -f1 | \
    sort | uniq -c | sort -rn | head -n 10
    
    echo -e "\nСостояния соединений:"
    netstat -ant | awk '{print $6}' | \
    sort | uniq -c | sort -rn
    
    echo -e "\nИспользование портов:"
    netstat -ant | awk '{print $4}' | \
    cut -d: -f2 | sort | uniq -c | sort -rn | head -n 10
}

# Сохранить в файл с временной меткой
analyze_network | tee -a "network_analysis_$(date +%Y%m%d_%H%M%S).log"

Мониторинг производительности

Отслеживание использования ресурсов

  1. Влияние на CPU и память
# Мониторинг использования ресурсов netstat
while true; do
    ps aux | grep netstat | grep -v grep
    sleep 1
done
  1. Производительность сетевого интерфейса
#!/bin/bash
# Мониторинг пропускной способности интерфейса
INTERVAL=1
INTERFACE="eth0"

while true; do
    R1=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
    T1=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
    sleep $INTERVAL
    R2=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
    T2=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
    
    RBPS=$(( ($R2 - $R1) / $INTERVAL ))
    TBPS=$(( ($T2 - $T1) / $INTERVAL ))
    
    echo "Интерфейс $INTERFACE:"
    echo "RX: $(($RBPS/1024)) КБ/с"
    echo "TX: $(($TBPS/1024)) КБ/с"
    echo "------------------------"
done

Решения для долгосрочного мониторинга

#!/bin/bash
# Создание часового отчета о сетевой статистике

LOGDIR="/var/log/netstat_reports"
mkdir -p $LOGDIR

generate_report() {
    TIMESTAMP=$(date +%Y%m%d_%H)
    REPORT="$LOGDIR/netstat_report_$TIMESTAMP.log"
    
    echo "Отчет о сети - $(date)" > $REPORT
    echo "=========================" >> $REPORT
    
    echo "Сводка соединений:" >> $REPORT
    netstat -s >> $REPORT
    
    echo "Статистика интерфейсов:" >> $REPORT
    netstat -i >> $REPORT
    
    echo "Текущие соединения:" >> $REPORT
    netstat -ant >> $REPORT
}

# Запуск генерации отчета
generate_report

Советы по интеграции

  1. Комбинирование с мониторингом системы
# Добавить в скрипты мониторинга системы
if [ $(netstat -ant | grep ESTABLISHED | wc -l) -gt 100 ]; then
    echo "Обнаружено высокое количество соединений" | mail -s "Сетевая тревога" [email protected]
fi
  1. Пользовательские функции отчетности
network_summary() {
    local port="$1"
    echo "Соединения на порту $port:"
    netstat -ant | grep ":$port" | awk '{print $6}' | sort | uniq -c
}

# Использование: network_summary 80

Альтернативы netstat

Команда ss

ss (Socket Statistics) является современным заменителем netstat в системах Linux. Обычно она быстрее и имеет больше функций, чем netstat.

Ключевые преимущества ss

  • Быстрая работа, особенно на системах с большим количеством соединений
  • Более подробная информация о сокетах
  • Лучшая поддержка новых протоколов
  • Меньшее использование системных ресурсов

Сравнение с netstat

# Команда netstat против эквивалента ss

# Перечислить все соединения
netstat -a
ss

# Показать прослушивающие TCP-порты
netstat -tln
ss -tln

# Отобразить информацию о процессе
netstat -p
ss -p

# Показать статистику
netstat -s
ss -s

Пример использования ss

# Показать подробную информацию о сокетах
ss -i

# Отобразить информацию о таймерах
ss -o

# Показать использование памяти
ss -m

# Фильтровать по состоянию
ss state established

# Фильтровать по порту
ss sport = :80

Современные альтернативы

lsof (Список открытых файлов)

# Показать сетевые соединения
lsof -i

# Показать прослушивающие порты
lsof -i -P -n | grep LISTEN

# Показать установленные соединения
lsof -i | grep ESTABLISHED

nmap

# Сканирование открытых портов
nmap localhost

# Подробное сканирование портов
nmap -sV localhost

iptraf-ng

  • Монитор реального времени IP-трафика
  • Подробная статистика протоколов
  • Статистика интерфейсов
  • Мониторинг станций LAN

Когда использовать что

Используйте netstat, когда:

  • Работаете на старых системах
  • Нужна кроссплатформенная совместимость
  • Следуете установленной документации
  • Выполняете простую диагностику сети

Используйте ss, когда:

  • Работаете на современных системах Linux
  • Нужна быстрая работа
  • Имеете дело с большим количеством соединений
  • Требуется подробная информация о сокетах

Используйте lsof, когда:

  • Нужно увидеть информацию о дескрипторах файлов
  • Хотите сопоставить сетевые соединения с процессами
  • Устранение неполадок в приложениях

Используйте nmap, когда:

  • Выполняете аудиты безопасности
  • Нужен подробный анализ портов
  • Анализируете сетевые службы

Руководство по миграции

Переход от netstat к ss

Команда netstatЭквивалент ssОписание
netstat -tss -tПоказать TCP-соединения
netstat -uss -uПоказать UDP-соединения
netstat -lss -lПоказать прослушивающие сокеты
netstat -pss -pПоказать информацию о процессе
netstat -nss -nНе разрешать имена
netstat -assПоказать все сокеты
netstat -rip routeПоказать таблицу маршрутизации

Пример миграции скрипта

# Старый скрипт netstat
#!/bin/bash
netstat -tulpn | grep LISTEN > listening_ports.log

# Новый эквивалент ss
#!/bin/bash
ss -tulpn | grep LISTEN > listening_ports.log

Советы по выбору инструмента

  1. Соображения по производительности
  • Для систем большого масштаба: используйте ss
  • Для базовых проверок: любой инструмент подойдет
  • Для подробного анализа: комбинируйте несколько инструментов
  1. Проблемы совместимости
# Проверить, доступен ли ss
if command -v ss >/dev/null 2>&1; then
    ss -tulpn
else
    netstat -tulpn
fi
  1. Требования к функциям
  • Основной мониторинг: netstat/ss
  • Анализ безопасности: nmap
  • Корреляция процессов: lsof
  • Мониторинг в реальном времени: iptraf-ng

Лучшие практики и советы

Соображения по производительности

Оптимизация использования команд

  1. Используйте числовой вывод, когда это возможно
# Медленнее (с разрешением DNS)
netstat -ta

# Быстрее (без разрешения DNS)
netstat -tan
  1. Ограничьте размер вывода
# Вместо показа всех соединений
netstat -a

# Фильтровать для конкретной информации
netstat -an | grep ':80'
  1. Избегайте непрерывного опроса
# Не рекомендуется для загруженных систем
netstat -c

# Лучший подход с контролируемым интервалом
while true; do
    netstat -an | grep ESTABLISHED
    sleep 5
done

Общие ошибки

Проблемы с использованием ресурсов

  • Проблема: Чрезмерное использование CPU во время разрешения имен
# Проблемная команда
watch -n 1 'netstat -ta'

# Лучший альтернативный вариант
watch -n 1 'netstat -tan'

Проблемы с разрешениями

  • Проблема: Отсутствие информации о процессе
# Покажет неполную информацию
netstat -p

# Правильное использование
sudo netstat -p

Интерпретация вывода

  • Проблема: Неправильная интерпретация состояний соединений
# Распространенное недоразумение с TIME_WAIT
netstat -ant | grep TIME_WAIT

# Лучший анализ с контекстом
netstat -ant | awk '{print $6}' | sort | uniq -c

Советы для повседневного использования

Создание полезных псевдонимов

# Добавить в ~/.bashrc
alias ns='netstat -tulpn'
alias nsc='netstat -ant | grep ESTABLISHED'
alias nsl='sudo netstat -tulpn | grep LISTEN'

Быстрая проверка безопасности

# Проверить необычные прослушивающие порты
check_ports() {
    echo "Известные порты:"
    sudo netstat -tulpn | grep -E ':22|:80|:443'
    echo -e "\nНеизвестные порты:"
    sudo netstat -tulpn | grep -vE ':22|:80|:443'
}

Шаблоны мониторинга

# Шаблон мониторинга соединений
monitor_connections() {
    local port=$1
    local threshold=$2
    
    count=$(netstat -an | grep ":$port" | grep ESTABLISHED | wc -l)
    if [ $count -gt $threshold ]; then
        echo "Тревога: $count соединений на порту $port превышает порог $threshold"
    fi
}

# Использование: monitor_connections 80 100

Документация и логирование

Создание полезных логов

#!/bin/bash
# Логгер состояния сети

log_network_status() {
    local logfile="/var/log/network_status.log"
    local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
    
    {
        echo "=== Состояние сети на $timestamp ==="
        echo "Прослушивающие порты:"
        netstat -tulpn | grep LISTEN
        echo "Текущие соединения:"
        netstat -ant | awk '{print $6}' | sort | uniq -c
        echo "=================================="
    } >> "$logfile"
}

Стандартные операционные процедуры

# Шаблон для регулярных проверок
daily_network_check() {
    echo "1. Проверка прослушивающих портов..."
    sudo netstat -tulpn | grep LISTEN
    
    echo "2. Проверка установленных соединений..."
    netstat -ant | grep ESTABLISHED | wc -l
    
    echo "3. Проверка состояний соединений..."
    netstat -ant | awk '{print $6}' | sort | uniq -c
    
    echo "4. Проверка статистики интерфейсов..."
    netstat -i
}

Руководство по устранению неполадок

  1. Проблемы с соединением
connection_troubleshoot() {
    local port=$1
    echo "=== Устранение неполадок соединения для порта $port ==="
    echo "1. Проверка, прослушивает ли порт:"
    sudo netstat -tulpn | grep ":$port"
    
    echo "2. Проверка активных соединений:"
    netstat -ant | grep ":$port" | awk '{print $6}' | sort | uniq -c
    
    echo "3. Проверка состояний соединений:"
    netstat -ant | grep ":$port" | awk '{print $6}' | sort | uniq -c
}
  1. Мониторинг системных ресурсов
resource_check() {
    echo "=== Проверка системных ресурсов ==="
    echo "1. Всего соединений:"
    netstat -ant | wc -l
    
    echo "2. Соединения по IP:"
    netstat -ant | grep ESTABLISHED | \
    awk '{print $5}' | cut -d: -f1 | \
    sort | uniq -c | sort -nr | head -5
    
    echo "3. Использование памяти сетевыми процессами:"
    ps aux | grep -E 'netstat|ss' | grep -v grep
}

Часто задаваемые вопросы (FAQ)

В: Почему я не вижу информацию о процессе (PID)?

A: Это обычно связано с правами доступа. Запустите команду с sudo:
sudo netstat -tulpn

Параметр -p требует прав администратора для отображения информации о процессе.

В: В чем разница между состояниями LISTEN и ESTABLISHED?

A: 
- LISTEN: Указывает, что служба прослушивает этот порт, ожидая соединений
- ESTABLISHED: Представляет активную, в данный момент подключенную сессию

В: Как проверить соединения для конкретного порта?

A: Вы можете использовать grep для фильтрации соединений по порту:

# Проверить все соединения на порту 80
netstat -an | grep ":80"

# Проверить только прослушивающие порты
netstat -tunl | grep ":80"

В: Почему моя команда netstat работает медленно?

A: Две основные причины:
1. Разрешение DNS - используйте параметр -n, чтобы избежать разрешения имен
2. Слишком много соединений - используйте фильтрацию или рассмотрите возможность перехода на ss

# Пример более быстрой команды
netstat -tan | grep ESTABLISHED

В: Повлияет ли netstat на производительность системы?

A: Частое опрос может повлиять на производительность. Лучшие практики:
1. Увеличьте интервалы опроса
2. Используйте фильтрацию, чтобы уменьшить вывод
3. Рассмотрите возможность использования ss для систем большого масштаба
4. Избегайте непрерывного режима (-c) на загруженных системах

В: Как идентифицировать, какое приложение использует конкретный порт?

A: Используйте эти команды:
# Показать процесс, использующий порт 80
sudo netstat -tulpn | grep ":80"

# Альтернатива с использованием lsof
sudo lsof -i :80

В: Как я могу отслеживать состояния соединений?

A: Несколько подходов:

# Подсчет соединений по состоянию
netstat -ant | awk '{print $6}' | sort | uniq -c

# Мониторинг установленных соединений
watch -n 1 'netstat -ant | grep ESTABLISHED | wc -l'

В: Как я могу проверить наличие подозрительных соединений?

A: Ищите:
1. Необычные порты:
netstat -tulpn | grep -vE ':22|:80|:443'

2. Высокое количество соединений с одного IP:
netstat -ant | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

В: Как обнаружить попытки сканирования портов?

A: Мониторьте соединения SYN_RECV:
netstat -ant | grep SYN_RECV | awk '{print $5}' | cut -d: -f1 | sort | uniq -c

В: В чем разница между параметрами -t и -u?

A:
-t : Показывает только TCP-соединения
-u : Показывает только UDP-соединения

Вы можете комбинировать их:
netstat -tu : Показывает как TCP, так и UDP

В: Как сохранить вывод netstat в файл?

A: Несколько методов:

# Основной вывод в файл
netstat -ant > network_status.log

# С временной меткой
(date; netstat -ant) > network_status.log

# Непрерывное логирование
while true; do
    netstat -ant >> network_log.txt
    sleep 300
done

В: Что означает "Адрес уже используется" в выводе netstat?

A: Это указывает на то, что порт уже используется другим процессом. Чтобы найти его:
sudo netstat -tulpn | grep "<номер_порта>"

В: Почему я вижу много соединений TIME_WAIT?

A: TIME_WAIT — это нормально после закрытия соединений. Однако слишком много может указывать на:
1. Высокую текучесть соединений
2. Возможные проблемы с сетью
3. Приложение, не использующее повторные соединения

Мониторьте с помощью:
netstat -ant | grep TIME_WAIT | wc -l