Устранение проблем с сетью в Linux

Устранение проблем с сетью в Linux

В этой статье мы объясним, как устранять проблемы с сетью в Linux с помощью команды tcpdump.

tcpdump - гибкий, мощный анализатор пакетов командной строки; и libpcap, переносимая библиотека C / C ++ для захвата сетевого трафика. Мощный и универсальный инструмент, включающий множество опций и фильтров, tcpdump можно использовать в самых разных случаях. Поскольку это инструмент командной строки, он идеально подходит для работы на удаленных серверах или устройствах, для которых недоступен графический интерфейс, для сбора данных, которые могут быть проанализированы позже. Его также можно запустить в фоновом режиме или как запланированное задание с помощью таких инструментов, как cron.

Приступим к процессу установки.

1. Установите tcpdump

Если tcpdump еще не установлен в вашей системе, вы можете установить его, используя следующую команду:

Для системы на базе CentOS или Red Hat Enterprise Linux:

# dnf install tcpdump -y

Для системы на основе Ubuntu:

# apt-get install tcpdump -y

2. Проверьте установку.

Чтобы проверить установку, используйте следующую команду:

# which tcpdump

Выход:

/usr/sbin/tcpdump

Захват пакетов с помощью tcpdump

Перед захватом пакетов проверьте сетевой интерфейс, используя следующие команды:

# tcpdump -D

Он отобразит все доступные сетевые интерфейсы.

Теперь давайте начнем захват нескольких пакетов, используя следующие команды:

# tcpdump --interface any

Tcpdump продолжает перехватывать пакеты до тех пор, пока не получит сигнал прерывания. Вы можете прервать захват, нажав Ctrl + C. Чтобы ограничить количество захваченных пакетов и остановить tcpdump, используйте параметр -c (для количества):

# tcpdump -i any -c 10

Отключить разрешение имен

При устранении неполадок в сети часто проще использовать IP-адреса и номера портов; отключите разрешение имен с помощью параметра -n и разрешение порта с помощью -nn:

# tcpdump -i any -c5 -nn

Как указано выше, команда будет захватывать выходные данные, теперь отображаются IP-адреса и номера портов.

Фильтрация пакетов

Одной из самых мощных функций tcpdump является его способность фильтровать перехваченные пакеты с использованием различных параметров, таких как IP-адреса источника и назначения, порты, протоколы и т. Д. Давайте рассмотрим некоторые из наиболее распространенных.

Чтобы перехватить только пакеты ICMP, используйте следующие команды:

# tcpdump -i any -c10 icmp

Ограничьте захват только пакетами, относящимися к определенному хосту, используя фильтр хоста:

# tcpdump -i any -c5 -nn host 192.168.0.12

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

Чтобы фильтровать пакеты на основе желаемой службы или порта, используйте фильтр порта. Например, перехватите пакеты, связанные с веб-службой (HTTP), с помощью этой команды:

# tcpdump -i any -c10 -nn port 80

Для фильтрации пакетов на основе IP-адреса источника или назначения или имени хоста. Например, для захвата пакетов с хоста 192.168.0.12:

# tcpdump -i any -c10 -nn src 192.168.0.12

Сохранить снимки в файл

Чтобы сохранять пакеты в файл, а не отображать их на экране, используйте параметр -w (для записи):

# tcpdump -i any -c10 -nn -w webserver.pcap port 80

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

Еще примеры команд

Чтобы распечатать начальный и конечный пакеты (пакеты SYN и FIN) каждого диалога TCP, в котором участвует нелокальный хост.

# tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net localnet'

Для печати пакетов TCP с установленными флагами RST и ACK. (т.е. выберите только флаги RST и ACK в поле флагов, и если результат будет «RST и ACK оба установлены», совпадение)

# tcpdump 'tcp[tcpflags] & (tcp-rst|tcp-ack) == (tcp-rst|tcp-ack)'

Чтобы распечатать все HTTP-пакеты IPv4 на порт 80 и от него, то есть печатать только пакеты, содержащие данные, а не, например, пакеты SYN и FIN и пакеты только для ACK. (IPv6 оставлен в качестве упражнения для читателя.)

# tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<2)) -="" ((tcp[12]&0xf0)="">>2)) != 0)'

Чтобы распечатать IP-пакеты длиной более 576 байт, отправленные через snup шлюза:

# tcpdump 'gateway snup and ip[2:2] > 576'

Чтобы распечатать широковещательные или многоадресные IP-пакеты, которые не были отправлены через широковещательную или многоадресную рассылку Ethernet:

# tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224'

Чтобы распечатать все ICMP-пакеты, которые не являются эхо-запросами / ответами (т. Е. Не ping-пакетами):

# tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'

Проверьте страницу руководства, используя следующую команду:

# man tcpdump

В этой статье мы увидели, как устранять проблемы с сетью в Linux с помощью команды tcpump.

Получите высокопроизводительный двойной выделенный сервер серии E5 и дешевый KVM VPS.


Как создать группу в Linux

Как создать группу в Linux

Группы используются для организации пользователей и их привилегий, таких как разрешение на чтение и выполнение. Чтобы добавить группу, используется команда groupadd.

3 способа проверить загрузку процессора в Linux

3 способа проверить загрузку процессора в Linux

Хорошо объясните 3 способа проверить загрузку процессора в Linux. Использование ЦП относится к использованию ресурсов обработки или объему работы, выполняемой ЦП.

Как установить и настроить DenyHosts в CentOS 7

Как установить и настроить DenyHosts в CentOS 7

DenyHosts широко используется как альтернатива Fail2ban. Если было слишком много недействительных попыток входа в систему SSH, он предполагает, что его атаки методом перебора или

Подключите новый диск к серверу Linux

Подключите новый диск к серверу Linux

Мы узнаем, как подключить новый диск к серверу Linux. Для этой демонстрации мы используем облачный сервер CentOS 7. теперь смонтируйте раздел, как показано ниже.

Простая установка Fail2ban на Ubuntu 20.04

Простая установка Fail2ban на Ubuntu 20.04

Хорошо объясните, как легко установить Fail2ban на Ubuntu 20.04. Fail2ban написан на языке программирования Python и является бесплатным с открытым исходным кодом. Конфигурация.

Как установить WireGuard VPN на Ubuntu 20.04

Как установить WireGuard VPN на Ubuntu 20.04

Хорошо объясните, как установить WireGuard VPN на Ubuntu 20.04. WireGuard - чрезвычайно простой, быстрый и современный VPN, в котором используется самая современная криптография.

Как установить OpenSSL 1.1.1d в CentOS

Как установить OpenSSL 1.1.1d в CentOS

OpenSSL - это надежный полнофункциональный инструментарий коммерческого уровня для протоколов безопасности транспортного уровня (TLS) и (SSL). Научитесь устанавливать OpenSSL 1.1.1d в CentOS

Как установить и настроить CSF на CentOS 8

Как установить и настроить CSF на CentOS 8

Как установить и настроить CSF на сервере CentOS 8. ConfigServer Security & Firewall - это (SPI) брандмауэр, приложение для обнаружения входа / вторжений и безопасности.

Конфигурация правила аудита не отражена - как устранить неполадки

Конфигурация правила аудита не отражена - как устранить неполадки

Конфигурация правила аудита не отражена? Узнайте, как наши инженеры службы поддержки устраняют неполадки и решают проблему. Файл конфигурации правил /etc/audit/rules.d/audit.rules

CloudLinux Высокая нагрузка на сервер

CloudLinux Высокая нагрузка на сервер

В этой статье мы узнаем, как наши инженеры службы поддержки устраняют высокую нагрузку CloudLinux на сервер. Убедитесь, что ваши ограничения LVE настроены правильно.