Bean Network Tester

Целимся в одно приложение, а не в машину

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

По процессу

Введите имя в Process или передайте --target. Простое имя совпадает как фрагмент, поэтому chrome охватывает chrome.exe:

BeanNetworkTester.exe --loss 10 --target chrome.exe

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

Поле принимает не одно имя и не один вид значений сразу:

Что вы вводитеЧто это значит
chrome.exe,firefox.exeДва приложения.
chrome,!chromedriverChrome, но никогда не драйвер. Исключения главнее.
my*.exeВсё, что начинается на «my».
re:^node\.exe$Регулярное выражение, когда подстановочных знаков мало.
4812Один идентификатор процесса.
>1000Все идентификаторы процессов больше 1000.

По адресу или порту

Иногда интересна не программа, а один сервер. Эти параметры принимают тот же синтаксис списков, диапазонов и исключений и понимают CIDR и IPv6:

BeanNetworkTester.exe --latency 300 --dst-ip 10.0.0.0/24 --dst-port 443
BeanNetworkTester.exe --loss 20 --dst-port "!53"

Второй пример стоит запомнить: всё, кроме DNS. Целиться в обход порта часто проще, чем перечислять нужные.

Нацеливание на процесс по имени переживает его перезапуск

Перезапустите приложение, пока идёт сеанс, и цель по имени снова подхватит новый процесс. Цель по идентификатору процесса этого не сможет: идентификатор принадлежал завершившемуся процессу. Другая программа, которой Windows позже выдаст тот же идентификатор, тоже не затрагивается. Если ваш тест перезапускает проверяемый объект, нацеливайтесь по имени.

Предупреждение, которое нельзя игнорировать

Запустите с включёнными помехами, без цели и без ограничения по времени, и окно и командная строка скажут об этом: это затрагивает каждое соединение на этой машине. Это предупреждение, а не отказ: иногда именно этого вы и хотите. Если нет, задайте цель или --duration, а STOP всегда всё вернёт на место.

Что дальше

Готовы намеренно сломать собственную сеть?

Скачать для Windows