Как мне симулировать медленное интернет-соединение на OS X?

3099
slhck

Я хотел бы проверить, как ведут себя некоторые веб-сайты и другие службы при использовании их при медленном соединении, скажем, с максимальной пропускной способностью 512 кбит / с и задержкой в ​​500 мс.

Как я могу сделать это в OS X?

6

3 ответа на вопрос

8
slhck

Используйте встроенную ipfw(8)утилиту для управления межсетевым экраном ipfw и формирователем трафика dummynet для создания нового канала. Этот канал будет служить виртуальным каналом, через который должны проходить пакеты.

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

Запустите Терминал из /Applications/Utilities/Terminal.app . Затем введите следующее и подготовьтесь к вводу пароля администратора:

sudo ipfw pipe 1 config bw 512Kbit/s delay 500ms 

Используемые значения говорят сами за себя. Для потери пакетов добавьте plr <n>, где число <n>с плавающей запятой между 0 и 1 (0 означает отсутствие потерь, а 1 означает, что все пакеты отбрасываются). Это, например, очень хорошо имитирует мобильное соединение с потерями.

Теперь давайте добавим этот канал для любых подключений к 80-му порту (который используется для HTTP-трафика).

sudo ipfw add 1 pipe 1 src-port 80 sudo ipfw add 2 pipe 1 dst-port 80 

Наслаждайся медленным подключением. Если вы сделали, удалите эти правила и удалите канал:

sudo ipfw delete 1 sudo ipfw delete 2 sudo ipfw pipe 1 delete 
6
user495470

Другим вариантом будет использование панели настроек Network Link Conditioner, которая устанавливается с Xcode на 10.7 и выше.

Чтобы установить - см. Этот вопрос http://stackoverflow.com/questions/9659382/install-apples-network-link-conditioner-tool Doug Harris 11 лет назад 0
1
Andy Davies

http://slowyapp.com/ is another (now free) option.

All three options - Network Link Conditioner, ipfw and Slowy - are just UIs onto the part of the OSX network stack that can shape network traffic (dummynet), so just pick the one you're most comfortable with.