Как имитировать медленные интернет-соединения на маке

Какое хорошее программное решение для замедления интернет-подключений на Mac для тестирования и моделирования?

Моей основной потребностью является тестирование кода в симуляторе iPhone /iOS, поэтому было бы здорово замедлить соединение для определенных приложений или процессов.

131 голос | спросил aneuryzm 3 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 03 Sep 2011 21:02:48 +0400 2011, 21:02:48

7 ответов


152

Apple сделала очень удобный официальный инструмент для замедления сетевых подключений на вашем Mac для тестирования.

Предпочтение Network Link Conditioner - бесплатная загрузка из Xcode (для Lion и более поздней ОС). Кроме того, iOS имеет аналогичную функцию, доступную из Xcode и iOS 6 или более поздних версий.

введите описание изображения здесь>> </p>

<p> Предыдущие версии <a href= Xcode перед вставкой версии 4.3.2 копию этого инструмента. Теперь вы используете Xcode для загрузите его непосредственно аналогично симуляторам iOS и документации разработчика.

Есть 11 встроенных профилей из сети Lossy Edge с задержкой в ​​400 мс для кабельного модема. Если вам нужны другие ограничения, вы можете создавать собственные профили с собственными настройками или вы также можете использовать ipfw самостоятельно, как описано в Craig Hockenberry медленная поездка, сделать это легко В нем также упоминается панель Speed ​​Limit с помощью Mike Schrag , который меньше загружает, чем Xcode, но имеет меньше вариантов, чем инструмент Apple.

Он замедляет весь сетевой стек, поэтому вы не можете дросселировать на основе каждого приложения, не выполняя такие действия, как установка льва на виртуальной машине, и установите эту виртуальную машину с дроссельным стеком.

ответил bmike 3 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 03 Sep 2011 23:06:35 +0400 2011, 23:06:35
33

OS X 10.9 и более ранние версии обеспечивают ipfw и позволяют определять пользовательские правила брандмауэра. Создайте канал с ограниченной пропускной способностью с помощью ipfw, и вы можете запускать свои тесты и симуляции.

  1. Создайте канал «1», ограниченный 500 Кбайт /с через

    sudo ipfw pipe 1 config bw 500KByte /s
    
  2. Направьте весь сетевой трафик порта 80 через трубу «1», используя

    sudo ipfw add 1 pipe 1 src-port 80
    
  3. Если вам больше не нужен канал, удалите его из порта, используя

    sudo ipfw delete 1
    

Другие

  • Если вы хотите установить более высокие барьеры трафика, вы можете использовать MByte /s
  • Порт 80: стандартный порт для незашифрованного трафика http. Этот порт используется для большинства видов просмотра и загрузки. В большинстве случаев вы должны быть в порядке.
  • Порт 443: стандартный порт для трафика с шифрованием SSL https.
ответил gentmatt 28 MaramWed, 28 Mar 2012 10:10:03 +04002012-03-28T10:10:03+04:0010 2012, 10:10:03
30

Ограничение скорости - это панель системных настроек для преднамеренного и выборочного замедления определенных портов и доменов.

ответил Randy6T9 3 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 03 Sep 2011 23:11:40 +0400 2011, 23:11:40
8

Если вам требуется только дросселирование для веб-разработки, я могу полностью рекомендовать Charles . Это отличный инструмент для отладки приложений HTTP в любом случае, и среди его многочисленных функций у него есть опция Throttle. Программное обеспечение не дешево, но оно отлично работает.

ответил Kiezpro 3 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 03 Sep 2011 21:38:12 +0400 2011, 21:38:12
6

Чтобы добавить к принятому ответу: похоже, вам не нужен XCode, просто учетная запись на веб-сайте Apple Developer (проще, чем первая загрузка пакета XCode 2GB, если у вас его еще нет).

Перейдите в https://developer.apple.com/downloads и выполните поиск по «Сетевой ссылке» «Conditioner» или «Hardware IO Tools for XCode», последний из которых является именем пакета, в котором он находится.

Чтобы загрузить его через Xcode 8.x:

  • Нажмите на меню Xcode
  • Перейдите в Open Developer Tool> Дополнительные инструменты для разработчиков ...
  • Это откроет страницу на developer.apple.com (Примечание: вам может потребоваться сначала войти в систему)
  • Нажмите на значок «+» рядом с дополнительными инструментами для Xcode 8.x
  • Нажмите URL-адрес загрузки
ответил Roger Dueck 17 TueEurope/Moscow2013-12-17T21:23:40+04:00Europe/Moscow12bEurope/MoscowTue, 17 Dec 2013 21:23:40 +0400 2013, 21:23:40
3

Вы также можете использовать ipfw-трубопровод для замедления вашей сети.

Сначала настройте виртуальный «канал», чтобы ограничить пропускную способность до 800 Кбит /с:

ipfw pipe 1 config bw 800Kbit

Затем вы можете настроить правила для передачи трафика через этот канал (труба 1). (порты 6881-6890 являются битрейдер-трафиком)

ipfw добавить 10 трубок 1 tcp от любого ко мне 6881-6890
ipfw добавить 11 трубок 1 tcp из любых 6881-6890 для меня

Вот еще один пример, чтобы ограничить трафик до 10 Кбит /с с определенного IP-адреса:

ipfw pipe 2 config bw 10Kbit
ipfw добавить 15 труб 2 ip от меня до 64.81.84.114

(Источник)

ответил daviesgeek 7 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 07 Sep 2011 20:46:23 +0400 2011, 20:46:23
0

Mac OS X 10.10+ необходимо использовать dnctl и pfctl, но документированные примеры использования найти нелегко.

# Настроить `pfctl` для использования` customRule`.
(cat /etc/pf.conf & echo "dummynet-anchor \" customRule \ "" & & echo "anchor \" customRule \ "") | sudo pfctl -f -

# Определите `customRule`, чтобы передать трафик на` pipe 1`.
# Обратите внимание, что это фактическое определение порта, а не текстовый комментарий
echo "dummynet в быстром проточном tcp от любого к любому порту 443 pipe 1" | sudo pfctl -a customRule -f -

# Определите, что должно делать «труба 1» для трафика
sudo dnctl pipe 1 config delay 10000
sudo dnctl pipe 1 config bw 10 Кбит /с

# НЕ ЗАБЫВАЙТЕ, чтобы отменить их, когда закончите
sudo dnctl -q flush
sudo pfctl -f /etc/pf.conf

Если вы хотите изо всех сил и сформировать все, что вы можете использовать:

echo "dummynet в быстром проточном tcp от любого к любому каналу 1" | sudo pfctl -a customRule -f -

Я считаю, что это также влияет на каналы localhost, которые замедляли мою отладку vs-кода, поэтому помните об этом.

ответил ubershmekel 18 J000000Wednesday18 2018, 10:48:03

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132