Сетевые инструменты, которые имитируют медленное сетевое соединение [закрыто]

243

Я хотел бы визуально оценить время отклика веб-страниц для нескольких типов интернет-соединений (DSL, Cable, T1, dial-up и т. Д.), Когда мой браузер и веб-сервер находятся в одной локальной сети или даже на одной машине. Существуют ли какие-либо простые сетевые инструменты или подключаемые модули браузера, которые замедляют пропускную способность сети для имитации различных реальных сценариев подключения.

Я ценю любой вклад в это.

MaxK
источник
2
Просто заметка, вы можете сделать кросс-пост на serverfault.com.
JP Alioto
5
Пользователи OSX Mountain Lion могут использовать Network Link Conditioner - stackoverflow.com/questions/11699805/… .
Джо Масилотти
Связанный: stackoverflow.com/a/58513277/2178980
Евгений

Ответы:

23

попробуйте Traffic Shaper XP, вы можете легко ограничить скорость IE или другого браузера с помощью этого приложения, а также его бесплатное

Sadegh
источник
2
Касперский сообщает о загрузке с этого сайта как о программе-троянец-загрузчике.
Боб Мур
20
Похоже, не работает на Windows 7.
Znarkus
1
Я не мог заставить это работать. Поддерживает ли он трафик на локальный или 127.0.0.1 адрес?
Андерсон
1
@ Андерсон, наверное нет. Насколько я помню, в Windows нет внутреннего сетевого стека для локальных подключений, как это обычно бывает у * nix.
Мэтью Шарли
4
Я использую Clumsy ( jagt.github.io/clumsy/index.html ) самостоятельно.
Симонгус
266

В Linux см. Netem : ядро ​​уже содержит поддержку формирования трафика и может имитировать высокую задержку, низкую пропускную способность, потери пакетов и все другие неблагоприятные условия, даже на устройстве с обратной связью (поэтому вам не нужно физическая сеть для тестирования через).

ephemient
источник
49
+1 к этому. Потрясающие. С помощью одной команды я могу заставить "localhost" вести себя как общедоступный интернет-сервис в кафе wifi: sudo tc qdisc add dev lo root netem delay 500ms
Сэм Стоукс
7
Сладкий! Документы находятся здесь: linuxfoundation.org/collaborate/workgroups/networking/netem
Томас Ахл,
44
Очень круто. Просто хочу добавить как убрать эмуляцию еще раз. Добавить: sudo tc qdisc add dev lo root netem delay 100msУдалить:sudo tc qdisc del dev lo root netem delay 100ms
freeall
14
Вы можете полностью сбросить все правила tc для loopback с помощью одной команды sudo tc qdisc del dev lo root- измените loна, eth0если вы используете проводное соединение и т. Д.
Hamish Downer
6
Последние версии netem поддержки , ограничивающие пропускную способность слишком используя параметр скорости: tc qdisc add dev lo root handle 1:0 netem delay 10ms rate 1mbit limit 1000. Обратите внимание , что для некоторых устройств, таких как петлевое устройство, необходимо также установить его , чтобы иметь длину не нулевую очередь для опции скорости к работе: ifconfig lo txqueuelen 1000. См serverfault.com/a/394949/76090
z0r
77

Я воскрешаю эту ветку, потому что недавно у меня возникла такая же потребность. Удивительно, но я обнаружил, что для этого можно использовать Fiddler, настроив правила и добавив эту строку oSession["response-trickle-delay"] = "150";в раздел OnBeforeResponse. Fiddler действительно потрясающий

Paperino
источник
35
В последних версиях Fiddler вам нужно включить только в Simulate Modem SpeedsПравилах -> Производительность.
Знаркус
4
+1 Fiddler - исключительный инструмент, возможно, излишний для этого, но он определенно стоит того, чтобы его использовать. Вы можете легко заставить Fiddler играть только с одной программой, используя фильтр процессов, не требуя настройки прокси в вашей программе!
Дибстер
Я уже был любителем скрипача, но теперь я просто не могу жить без него. Я не знал, что инструмент, который мне нужен, живет со мной каждый день :)
Игнасио Солер Гарсия
5
Обратите внимание, что это решение только для Windows, если вы не хотите возиться с взломами и обходными путями.
crazy2be
19

Попробуйте Microsoft NEWT, она отлично сработала для меня. Это обеспечивает настроенную задержку, методы отбрасывания пакета и больше :)

http://blog.mrpol.nl/2010/01/14/network-emulator-toolkit/

Обновление 1:

Вот хорошее видеоурок для NEWT - Учебное пособие по сетевому эмулятору для Windows (Авторы Jimmery)

Эран Бецалель
источник
2
Да, я думаю, что это работает на уровне драйвера.
Эран Бецалель
1
Я пытался, но я не мог понять - есть ли где-нибудь файл справки?
UpTheCreek
1
Я знаю основные сетевые концепции - но не мог заставить его что-либо делать.
UpTheCreek
1
Используйте кнопку трассировки (выглядит как желтая нога), чтобы увидеть, актуальны ли ваши фильтры для каких-либо сетевых пакетов. Попробуйте простые вещи, такие как отбрасывание каждого пакета для порта 80 (HTTP).
Эран Бецалель
3
Ребята, я не получил сетевых знаний о вас, но после просмотра этого видео на YouTube я получил NEWT на работу: youtube.com/watch?v=s5o_GnYOloA - надеюсь, это поможет
Джиммери
17

Моя работа использует этот инструмент, и он кажется довольно хорошим: http://www.dallaway.com/sloppy/

Удачи.

Джон Онстотт
источник
1
+1 на основе Java, поэтому он отлично работает на OSX (еще не пробовал на Windows или Linux) - прост в установке и запуске, работает прозрачно и не оставляет после себя беспорядка!
Ричард Инглис
да, отличный инструмент, веб-интерфейс jnlp (не требует установки, просто запустите его), он создает прокси на локальном хосте, порт настраивается, скорость может изменяться динамически +32;)
jobwat
Я использовал неаккуратный и раньше, и мне это нравится, но, к сожалению, он не поддерживает https: groups.google.com/forum/#!topic/sloppy-discuss/tOyCx7igfkw
Джесс
не симулирует потерю пакетов в дерьмовых сетях.
catbadger
13

Я успешно использовал TMnetSim (внизу страницы, в разделе «Другие инструменты» - ссылка говорит что-то вроде «ZIP: TMnetSim Network Simulator версии 2.4, 32-разрядная (600 КБ)»

Это не только для веб-сайтов - вы можете замедлить соединение с любым TCP-портом. Я использовал его для имитации медленного SQL Server (порт 1433).

Blorgbeard отсутствует
источник
Какую ОС вы использовали? Я не мог заставить его работать вообще под 32-битной Windows 7 ...
GuyBehindtheGuy
@GuyBehindtheGuy: тебе когда-нибудь удавалось? У меня такая же потребность и ОС ...
RedFilter
2
Я закончил тем, что использовал DummyNet. Здесь есть версия для Windows: info.iet.unipi.it/~luigi/dummynet
GuyBehindtheGuy
1
+1 Этот сделал именно то , что мне нужно, с минимальным количеством пуха. Спасибо за чаевые!
wasatz
Текущая версия работает на 64-битной Windows 8.1 просто отлично.
Хайме Хаблутцель
6

Я люблю Чарльза .

Бесплатная версия отлично работает для меня.

Дросселирование, перенаправление, точки останова - все это потрясающие функции.

Роланд Кисом
источник
2
Да, это работает нормально в течение 30 дней ...: - /
BrainSlugs83
1
Для меня это прекрасно работает и после 30 дней, вам просто нужно подождать немного дольше, и он перезагружается через 30 минут. Но вы всегда можете получить лицензию.
Роланд Кизом
Версия 3.7? Сайт, кажется, подразумевает, что через 30 дней вы должны приобрести его, чтобы продолжить использовать его.
BrainSlugs83
1
Ваше предположение неверно. В первые 30 дней вы можете использовать его без задержек. После этого происходят небольшие задержки, и он перезагружается через 30 минут.
Роланд Кизом
4
С их сайта:After 30 days if you decide to continue using Charles you must purchase a license
Флориан Фида
6

DUMMYNET

Попробуйте этот образ VMWare на основе FreeBSD. Он также обладает отличными практическими рекомендациями, полностью бесплатен и выдерживает 20 минут.

Обновление: DummyNet также поддерживает Linux, OSX и Windows

крапинки
источник
1
Спасибо за совет по этому вопросу. Оказывается, теперь доступна родная версия Windows, которую я успешно использовал.
GuyBehindtheGuy
Я пошел по этому пути. Но настройка заняла у меня ~ 4 часа. Я должен был знать, чтобы заменить «192.168.0». на «192.168.196». (подсеть) через все rc.conf и rc.firewall.
Богдан_троценко
5

Для Linux или OSX вы можете использовать ipfw.

Из Quora ( http://www.quora.com/What-is-the-best-tool-to-simulate-a-slow-internet-connection-on-a-Mac )

По сути, использование брандмауэра для регулирования всех сетевых данных:

Определите правило, которое использует канал для перенаправления всего трафика с любого адреса источника на любой адрес назначения, выполните следующую команду (от имени пользователя root или с помощью sudo):

$ ipfw add pipe 1 all from any to any

Чтобы настроить это правило, чтобы ограничить полосу пропускания до 300 Кбит / с и наложить задержку 200 мс каждый раз:

$ ipfw pipe 1 config bw 300Kbit/s delay 200ms

Чтобы удалить все правила и восстановить исходное сетевое соединение:

$ ipfw flush

Dule
источник
4

Если вы используете Apache, вы можете использовать mod_bandwith.

Смотрите здесь для параметров конфигурации.

Alex
источник
2

Если вам нужно аппаратное решение, у Netgear есть серия дешевых (около 50 долларов) коммутаторов, которые ограничивают пропускную способность. Netgear Prosafe GS105E и подобные коммутаторы заслуживают изучения.

Аллен
источник
2

Вы также можете попробовать WANem - эмулятор глобальной сети с открытым исходным кодом. Вы можете загрузить образ (ISO, Knoppix live CD) или виртуальные устройства VMWare.

КРИ
источник
1

Вы можете использовать dummynet ofcourse . Существует расширение dummynet под названием KauNet . что может обеспечить еще более точный контроль состояния сети. Он может отбрасывать / задерживать / переупорядочивать определенные пакеты (таким образом, вы можете выполнить более глубокий анализ отбрасывания ключевых пакетов, таких как TCP-рукопожатие, чтобы увидеть, как ваши веб-страницы его переваривают). Это также работает во временной области. Обычно большинство эмуляторов настроены на работу в предметной области. Во временной области вы можете указать, с какого времени и в какое время вы можете изменять условия сети.

Пол Цверки
источник
0

Если вам нужно смоделировать качество сетевого подключения при разработке для Windows Phone, вы можете попробовать встроенный инструмент Visual Studio под названием Simulation Dashboard (подробнее здесь http://msdn.microsoft.com/en-us/library /windowsphone/develop/jj206952(v=vs.105).aspx ):

Вы можете использовать Simulation Dashboard в Visual Studio, чтобы протестировать ваше приложение на наличие этих проблем с подключением и предотвратить попадание пользователей в такие сценарии, как:

  • Музыка или видео с высоким разрешением заикаются или замирают во время потоковой передачи, или загрузка через соединение с низкой пропускной способностью занимает много времени.
  • Звонки на веб-службу не выполняются с таймаутом.
  • Приложение вылетает, когда сеть недоступна.
  • Передача данных не возобновляется, когда сетевое соединение потеряно, а затем восстановлено.
  • Батарея пользователя разряжается потоковым приложением, которое использует сеть неэффективно.
  • Отображение маршрута пользователя прерывается в навигационном приложении.

...

В Visual Studio в меню Сервис откройте панель моделирования . Найдите раздел симуляции сети на панели управления и установите флажок Включить симуляцию сети .

Никита Г.
источник