Отрегулируйте пропускную способность сети для каждого приложения в Mac OS X

37

Я заметил, что iTunes, кажется, высасывает всю мою пропускную способность и не очень хорошо работает с другими приложениями, которые используют Интернет при загрузке. На самом деле, он даже не обеспечивает достаточную пропускную способность при просмотре iTunes Store при загрузке большого или большого количества файлов (подкасты, телешоу, большие приложения и т. Д.).

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

Есть ли приложение или инструмент через Терминал для ограничения пропускной способности загрузки, которую получает iTunes, не мешая при этом веб-браузерам или другим приложениям?

Программное обеспечение FOSS / GPL предпочтительнее, но платное программное обеспечение также может быть приемлемым.

dotHTM
источник
1
Network Link Conditioner очень хорош для ограничения пропускной способности для всех приложений apple.stackexchange.com/questions/164959/…
Халед Аннажар
Этот вопрос в значительной степени устарел для моего конкретного использования. Я редко загружаю контент в iTunes на регулярной основе (подкасты теперь используют стороннее приложение только на iPhone, AppleTV для покупок видео с iTunes и вообще не синхронизируют приложения с компьютером).
dotHTM

Ответы:

9

GUI:

CLI (нет специфичной для порта фильтрации, но может быть адаптирован):

Эти инструменты полагаются на порты или диапазоны портов в качестве критерия фильтра. Если вы не знаете, какие порты использует ваше приложение, вы можете проверить его документацию или использовать его lsofво время работы приложения, чтобы узнать номера портов.

sudo lsof -i -P

Большинство или все инструменты используют ipfw, который официально устарел в пользу pf , поэтому не уверен, что эти решения будут работать на OS X 10.9 и выше.

Штефан Шмидт
источник
5

Старый вопрос, но я попал в самую гущу подобной проблемы, поэтому подумал, что отвечу.

Проблема, вероятно, на самом деле из-за формирования трафика у вашего интернет-провайдера. Они настойчиво отдают приоритет трафику для известных поставщиков контента, стремясь предоставить клиентам более качественную потоковую передачу. Я бы сказал, что в некоторых случаях они зашли слишком далеко - я только что диагностировал аналогичную проблему, когда загрузка фотографий iCloud в фоновом режиме вызывала пинг, превышающий 45000 мс.

Чтобы решить эту проблему, вы можете просто уменьшить общую пропускную способность, которую ваш компьютер будет использовать, чтобы не дать трафику интернет-провайдера полностью лишить пропускную способность всех других приложений. По иронии судьбы, это улучшит производительность просмотра на вашем компьютере, в дополнение к очевидному улучшению производительности для других компьютеров в вашей сети. Если, например, у вас есть ограничение 15 Мбит / с в нисходящем направлении, вы можете ограничить свой компьютер только 12 Мбит / с, и алгоритм ISP больше не увидит необходимости агрессивно формировать ваш трафик:

sudo ipfw pipe 1 config bw 12Mbits/s
sudo ipfw add 1 pipe 1 tcp from any to me

В моем случае ограничивающим фактором была пропускная способность восходящего канала (ограниченная 1 Мбит / с моим провайдером), поэтому я выполнил следующее, что решило мою проблему:

sudo ipfw pipe 1 config bw 768Kbits/s
sudo ipfw add 1 pipe 1 tcp from me to any

Обратите внимание, что эти команды будут эффективны только до перезапуска, но чтобы отменить правило, просто сделайте следующее:

ipfw delete 1
Джон Майлхэм
источник
Я нахожу справочную страницу по FreeBSD для ipfw, но, согласно Википедии, ipfw был лишен акцента в OS X, начиная с 10.4 до 10.5. Я не нахожу ipfw в своей установке 10.10 сегодня, и как Homebrew, так и MacPorts не предлагают активно разработанных установок для ipfw.
dotHTM
2
ipfwбыло прекращено в OS X, но естьpf
Крис
4

Как насчет крыши ? Это простой интерфейс для IPFW. (И с открытым исходным кодом.)

Бен Чун
источник
4

Используйте IceFloor на [Mountain] Lion

ГДж.
источник
Я опускаю этот ответ, обнаружив, что IceFloor больше ориентирован на протокол, чем на приложение. Поэтому, если я хочу ограничить только определенное приложение, это сложно.
knocte
Проголосовал, потому что изучение IceFloor привело меня к поиску Vallum, который позволяет мне блокировать доступ к сети для каждого приложения.
skplunkerin
2

Это действительно извращенная мысль, но вы можете использовать встроенные в Mac OS X ipfw и dummynet для написания правил для этого. Смотрите справочные страницы для этих инструментов.

Spiff
источник
Видеозапись кто - то делает только что на OSX: youtube.com/watch?v=VgwR230coOw
Профессор Falken поддерживает Monica
2

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

Существует графический интерфейс под названием "Murus" ( http://www.murusfirewall.com ), который вы можете использовать для настройки pf. Насколько я понимаю, он также активно поддерживает ограничение пропускной способности (из пользовательского интерфейса).

[РЕДАКТИРОВАТЬ]

Если кто-то не может обойтись без ipfw, вы можете попробовать скомпилировать его самостоятельно. Исходный код (из FreeBSD) доступен здесь: http://www.freebsd.org/cgi/cvsweb.cgi/src/sbin/ipfw/

Apple также публикует исходный код открытых проектов, которые она использует (d). ipfwможно найти здесь: http://www.opensource.apple.com/source/network_cmds/network_cmds-329.2.2/

Крис
источник
1
Я успешно смог настроить Murus для управления Skype 8 в OS X 10.14 Mojave, используя инструкции здесь: murusfirewall.com/forum/viewtopic.php?t=428
Джон Шнайдер
1

струйка это то, что вы после.

Единственные проблемы заключаются в том, что он не поддерживает исполняемые файлы, использующие kqueue, и не поддерживает статически связанные исполняемые файлы. iTunes должен быть в порядке.

Джон Т
источник
1
Я не мог получить ручеек 1.0.6 или 1.0.7 для сборки. После запуска ./configure я получаю сообщение об ошибке, что не удается найти libevent. Я установил libevent через MacPorts и получил ту же ошибку при повторной попытке.
dotHTM
@Kio версии> 1.06 не строят из-за проблем с вызовом poll(). Старшие должны работать однако.
Джон Т
4
Я скачал trickle 1.0.5, запустил «$ sudo ./configure» и получил следующую ошибку, как и раньше: «configure: error: libevent not found». Я проверил, и MacPorts установил libevent. Кроме того, я не очень люблю программное обеспечение, которое не обновлялось годами.
dotHTM
1

http://github.com/zquestz/throttled это может быть то, что вы ищете, если вы еще не нашли его.

Робби
источник
Это устареть теперь и использования ipfw, которые больше не доступны.
Крис
0

Недавно я нашел (и до сих пор испытания того) Валлум , чтобы иметь контроль над своими приложениями:

Это MacOS Application Firewall, который позволяет вам ограничивать доступ приложений к Интернету. Пока это очень удобно, я только что создал профиль по умолчанию, который разрешает доступ ко всему, что я хочу, и профиль мобильной точки доступа, который ограничивает доступ к большему количеству приложений, когда я в пути.


Обновление: мне не удалось «уменьшить» пропускную способность для приложений, использующих Vallum , я только настраивал разные профили, где я ограничиваю большее / меньшее количество приложений.

skplunkerin
источник
3
кажется, не позволяет регулировать вообще
GJ.
@GJ. правда, я не смог увидеть эту возможность либо ... пока я могу только дать приложению доступ к сети, или нет. Я настраивал различные профили как «дроссели» для моего решения этой проблемы.
skplunkerin
0

Наилучшим способом регулирования пропускной способности в macOS является использование Dummynet, который встроен в ядро ​​macOS и работает с фильтром пакетов pf. По моему мнению, единственный способ эффективно настроить пропускную способность для каждого процесса - определить, какие локальные порты связаны процессом, а затем создать соответствующие правила pf dummynet. Насколько я знаю, единственным приложением macOS, которое предлагает эту опцию, является Scudo (я разработчик Scudo, Vallum и Murus). Scudo 1.0 beta 3 в настоящее время доступна бесплатно, более подробную информацию о настройке пропускной способности Scudo для каждого процесса можно найти здесь: http://www.murusfirewall.com/forum/viewtopic.php?f=2&t=1919&p=3281#p3281

Хани Эль Имам
источник
Я попробовал это, и это, кажется, работает. Сейчас это бета-версия 6 (бета-версия 3 больше не будет работать) - murusfirewall.com/forum/viewtopic.php?f=2&t=1949 Мне нравится сетевой монитор, позволяющий добавлять брандмауэр и регулировать пропускную способность.
f01