Зачем это нужно
Иногда надо проверить, как приложение ведёт себя при «плохом интернете»: потерях пакетов, задержках или ограниченной скорости. Для этого в Linux есть tc netem - инструмент управления трафиком.
Как работает
tc (Traffic Control) позволяет добавлять правила для сетевых интерфейсов. С помощью модуля netem можно симулировать нестабильную сеть прямо на локальной машине или сервере.
Пример команды
# Добавляем задержку 200ms на интерфейс eth0
sudo tc qdisc add dev eth0 root netem delay 200ms
# Потери пакетов 10%
sudo tc qdisc change dev eth0 root netem loss 10%
Что можно эмулировать
Задержки, джиттер, потерю пакетов, дублирование и даже случайный порядок доставки. Это удобно для тестирования веб-сервисов, VoIP и игр.
Важно помнить
После тестов правила нужно очищать, иначе плохая сеть так и останется:
sudo tc qdisc del dev eth0 root
Вывод
Тестировать стоит не только код и логику приложения, но и его поведение в условиях сетевых проблем. Именно такие ситуации чаще всего ловят пользователей и самих разработчиков врасплох.
LinuxCamp | #utils
