> ## Documentation Index
> Fetch the complete documentation index at: https://docs.edisglobal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Как исследовать и остановить необычный сетевой трафик в Linux

> Найдите процессы, создающие трафик Linux, отличите нормальную работу от проблемы, сохраните свидетельства и остановите подтверждённую нежелательную активность.

# Выявление подозрительных всплесков трафика на Linux-серверах 🚨

Неожиданные всплески трафика часто вызваны фоновой активностью. Скрытые задачи или процессы могут незаметно занимать канал:

* **Нежелательные скрипты:** скрытые или забытые команды, постоянно передающие данные.
* **Криптомайнеры:** несанкционированное ПО, использующее процессор и сеть сервера для майнинга.
* **Некорректно работающие процессы:** обычные сервисы, застрявшие в циклах или повторных попытках и перегружающие сеть.

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

📘 **По теме:** разница между *трафиком* и *пропускной способностью* описана в [этом руководстве EDIS Global](https://docs.edisglobal.com/ru/faq/traffic-bandwidth/traffic-vs-bandwidth.md).

***

## Следите за сетевой активностью в реальном времени

Сначала выясните, какие IP-адреса или процессы используют сеть. Для этого подходят лёгкие утилиты `iftop` и `nload`.

Перед запуском уточните имя сетевого интерфейса. Это не всегда `eth0`: возможны `ens3`, `ens18`, `eno1` и другие. Активные интерфейсы можно найти командой:

```bash theme={"system"}
ip -o link show up | awk -F': ' '{print $2}'
```

Замените `eth0` в следующих командах именем своего интерфейса:

```bash theme={"system"}
sudo apt install iftop nload -y
sudo iftop -n -i eth0
```

В **iftop** сопоставьте адреса отправителей и получателей со скоростями передачи. Параметр `-n` оставляет адреса в числовом виде, чтобы их было проще сравнить с выводом `ss`. Уточните, относятся ли самые активные соединения к ожидаемой работе: незнакомый адрес сам по себе не доказывает злоупотребление.

![Пример iftop с выделенным наиболее активным исходящим соединением](https://mintcdn.com/edisglobal-b1e34a56/lc8bF9L9_anDhKdh/images/network-usage-iftop.png?fit=max\&auto=format\&n=lc8bF9L9_anDhKdh\&q=85\&s=6b2accbce06379685b2ff28e59bc7726)

Воссозданный пример с вымышленными адресами и скоростями. Столбцы 2s, 10s и 40s — интервалы усреднения.

Для более простого графического представления:

```bash theme={"system"}
sudo nload eth0
```

![Пример nload со сравнением входящего и исходящего трафика интерфейса](https://mintcdn.com/edisglobal-b1e34a56/lc8bF9L9_anDhKdh/images/network-usage-nload.png?fit=max\&auto=format\&n=lc8bF9L9_anDhKdh\&q=85\&s=3b1f0ce2cfc08583cb6ea638f8179af4)

Воссозданный пример. Сравните входящую и исходящую скорости; итоговые значения не определяют процесс.

***

## Определите процесс, создающий трафик

Обнаружив необычную активность, используйте современную утилиту `ss` или, по желанию, `netstat`, чтобы найти процесс, которому принадлежат соединения.

```bash theme={"system"}
# recommended (modern tool)
sudo ss -tupn
```

Если предпочитаете `netstat`, сначала установите `net-tools`:

```bash theme={"system"}
sudo apt install net-tools -y
sudo netstat -tupn
```

В примере ниже удалённый адрес `198.51.100.40` из статистики трафика найден в соединении процесса с PID **28799**. Имя показано как `xray-linux-amd6`: в этом представлении оно может быть обрезано.

![Пример ss с выделенным удалённым адресом и PID 28799 процесса-владельца](https://mintcdn.com/edisglobal-b1e34a56/lc8bF9L9_anDhKdh/images/network-usage-ss.png?fit=max\&auto=format\&n=lc8bF9L9_anDhKdh\&q=85\&s=ee3f4a7bc816c83a4e99467cd79fad54)

Воссозданный вывод ss с переносами строк и вымышленными адресами. Найдите удалённый адрес, затем запишите PID.

`ss` определяет сокеты и их процессы, но не измеряет текущую скорость передачи. VPN-программы, например Xray, могут открывать такие соединения совершенно законно. Используйте `nethogs`, описанный ниже, для сравнения скоростей по процессам и сверьтесь с сервисами, которые вы намеренно запустили. См. [руководство ss](https://man7.org/linux/man-pages/man8/ss.8.html).

***

## Изучите подозрительный процесс

Получив подозрительный PID из **`ss`** или **`netstat`**, выясните, что это за процесс и откуда он запущен.

```bash theme={"system"}
ps -p 28799 -o pid,ppid,user,lstart,args
sudo readlink /proc/28799/exe
sudo cat /proc/28799/cmdline | tr '\0' ' '
```

💡 *Замените **`28799`** на PID процесса, который вызвал подозрения на предыдущем шаге.*

Сравните путь к исполняемому файлу и аргументы с установленным вами ПО. Пути в `/tmp`, `/dev/shm` и `/var/tmp` требуют проверки, но само расположение файла ещё не доказывает взлом.

![Пример вывода readlink и proc cmdline для PID 28799](https://mintcdn.com/edisglobal-b1e34a56/lc8bF9L9_anDhKdh/images/network-usage-process.png?fit=max\&auto=format\&n=lc8bF9L9_anDhKdh\&q=85\&s=f4bc8ec0c633d0974078033535a747b6)

Один процесс, две проверки: расположение исполняемого файла и аргументы запуска. Этот пример не является заключением о вредоносности.

***

## Сохраните свидетельства и остановите подтверждённую нежелательную активность

Имя процесса, незнакомый IP или путь в `/tmp` — повод для проверки, а не доказательство взлома. Сначала установите назначение процесса и его принадлежность установленному вами ПО.

**До остановки** запишите PID, путь, командную строку, время запуска, соединения и соответствующие журналы. Если для анализа нужен исполняемый файл, сохраните его, пока он доступен: после завершения процесса `/proc/PID/exe` может исчезнуть. Не запускайте подозрительный файл. См. [справку Linux по `/proc/PID/exe`](https://man7.org/linux/man-pages/man5/proc_pid_exe.5.html).

Если нежелательная активность подтверждена:

* По возможности остановите процесс через приложение или менеджер служб. Иначе управляющая программа может перезапустить завершённый процесс.
* Для отдельного процесса команда `sudo kill -TERM 28799` запрашивает штатное завершение. Замените пример PID на только что проверенный. Прежде чем применять принудительную остановку, проверьте, завершился ли процесс.
* Отключайте только подтверждённую нежелательную запись автозапуска, предварительно сохранив её копию для исследования.

Не удаляйте Xray, задание cron или исполняемый файл лишь потому, что он похож на пример в статье. Если сервер взломан, остановка одного процесса только сдерживает инцидент и не доказывает, что система очищена.

***

## Проверьте cron и записи автозапуска

Многие нежелательные скрипты пытаются запускаться после перезагрузки через cron или файлы автозапуска. Внимательно проверьте:

```bash theme={"system"}
crontab -l
sudo cat /etc/crontab
sudo ls /etc/cron.d/
sudo cat /etc/rc.local
```

Также проверьте распространённые пути:

```text theme={"system"}
/etc/systemd/system/
/etc/init.d/
/home/*/.bashrc
/home/*/.profile
```

Если обнаружите подозрительную запись такого вида:

```bash theme={"system"}
@reboot sleep 30 && /usr/local/x-ui/bin/xray-linux-amd64 -c /usr/local/x-ui/config.json >/dev/null 2>&1 &
```

или ссылку на временный каталог:

```bash theme={"system"}
@reboot /tmp/.miner/start.sh
```

проверьте, относится ли она к ожидаемому сервису. Если нежелательность подтверждена, сохраните копию и удалите или отключите именно эту запись. Пример с Xray также может быть корректной конфигурацией VPN.

💡 *Совет:* обычные задания cron часто выполняют обслуживание системы — резервное копирование или ротацию журналов. Запуск из `/tmp`, `/dev/shm` или `/var/tmp` особенно подозрителен.

***

## Отслеживайте трафик процессов через nethogs

Для непрерывного наблюдения за процессами, больше всего использующими сеть:

```bash theme={"system"}
sudo apt install nethogs -y
sudo nethogs
```

Вы увидите обновляемый список процессов со скоростями **отправки** и **приёма**. Это помогает замечать отклонения до того, как они станут серьёзными.

![Пример NetHogs с выделенным PID 28799 и скоростями отправки и приёма](https://mintcdn.com/edisglobal-b1e34a56/lc8bF9L9_anDhKdh/images/network-usage-nethogs.png?fit=max\&auto=format\&n=lc8bF9L9_anDhKdh\&q=85\&s=ee61ce47929e1443ab713e3feff7355b)

Воссозданный пример с вымышленными скоростями в KB/sec. Высокая скорость указывает, что проверить, но не доказывает вредоносность.

Сравните PID с предыдущим выводом `ss`. Учитывайте единицы: **KB/sec — килобайты в секунду**, а iftop обычно показывает скорость в битах в секунду. См. [проект NetHogs](https://github.com/raboof/nethogs).

***

## Проверьте общий расход трафика

Если подозреваете, что уже потрачено слишком много данных, посмотрите статистику в панели EDIS. Там доступны **общий расход за месяц**, **ежедневные графики** и **сроки пополнения**.

📘 [Как EDIS Global измеряет расход сети и определяет циклы пополнения](https://docs.edisglobal.com/ru/faq/traffic-bandwidth/traffic-stats-refill-explained.md).

***

## Восстановите систему и предотвратите повторение

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

При подтверждённом взломе сохраните нужные свидетельства, ограничьте работу затронутого сервиса, смените раскрытые учётные данные с доверенного устройства и запланируйте чистое восстановление из проверенных программ и данных. Снижение трафика не означает, что весь несанкционированный доступ устранён.

Проверьте обновления, доступные извне службы и [настройки доступа SSH](https://docs.edisglobal.com/ru/getting-started/ssh-security-hardening-guide.md). Правила межсетевого экрана должны разрешать только действительно нужный трафик; UFW не определяет вредоносность процесса по имени. Изменения вроде монтирования с `noexec` не заменяют расследование причины активности.

О суммарном расходе, пополнении и общем резерве читайте в статьях [Статистика трафика](https://docs.edisglobal.com/ru/faq/traffic-bandwidth/traffic-stats-refill-explained.md) и [Traffic Pool](https://docs.edisglobal.com/ru/faq/traffic-bandwidth/traffic-pool.md).


## Related topics

- [Как добавить второй сетевой интерфейс к VPS](https://docs.edisglobal.com/ru/faq/upgrades-downgrades/get-additional-network-card.md)
- [Как понимать потери пакетов в traceroute и MTR](https://docs.edisglobal.com/ru/faq/ip-addresses/understanding-packet-loss-in-mtr-traceroute.md)
- [Как сбросить пароль root в Linux](https://docs.edisglobal.com/ru/vps-management/reset-root-password-linux.md)
- [Тест скорости на VPS EDIS Global](https://docs.edisglobal.com/ru/faq/traffic-bandwidth/speed-test.md)
- [Как проверить ядра CPU на Linux VPS](https://docs.edisglobal.com/ru/faq/upgrades-downgrades/cpu-cores-vs-cpu-sockets-in-vps-environments/how-to-check-cpu-cores-linux-vps.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.