Пропускна здатність мережі дросельних мереж на одну програму в Mac OS X


37

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

Я не переймаюся тим, щоб якнайшвидше отримати всі мої завантаження, вони справді мають низький пріоритет, і я б краще не робив цього, поки я не сплю, але не можу натиснути кнопку оновлення, якщо я ' м у ліжку і забув це вже.

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

Програмне забезпечення FOSS / GPL є кращим, але програмне забезпечення для оплати може бути прийнятним.


1
Кондиціонер для мережевих посилань дуже добре обмежувати пропускну здатність для всіх додатків apple.stackexchange.com/questions/164959/…
Khaled Annajar

Це питання значною мірою застаріло для мого конкретного використання. Я рідко завантажую вміст в iTunes регулярно (подкасти тепер використовують сторонні додатки лише на iPhone, AppleTV для покупок відео в iTunes, а не синхронізують додатки на комп'ютер).
dotHTM

Відповіді:


9

GUI:

CLI (фільтрація не залежить від порту, але її можна адаптувати):

Ці інструменти покладаються на порти або діапазони портів як критерій фільтра. Якщо ви не знаєте, які порти використовує ваша програма, ви можете перевірити її документацію або використовувати, lsofпоки програма працює, щоб виявити номери портів.

sudo lsof -i -P

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


5

Старе запитання, але я просто потрапив у розпал подібної проблеми, тому я подумав, що відповім.

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

Щоб вирішити проблему, ви можете просто зменшити величину загальної пропускної здатності, яку використовуватиме ваш комп’ютер, щоб не допустити, щоб трафік постачальника послуг повністю пограбував пропускну здатність для всіх інших програм. Як не дивно, це покращить ефективність перегляду на вашому власному комп’ютері, а також, очевидно, покращить продуктивність для інших комп’ютерів у вашій мережі. Якщо, наприклад, у вас є обмежене обмеження 15 Мбіт / с, ви можете обмежити свій комп’ютер лише використанням 12 Мбіт / с, і алгоритм провайдера більше не буде бачити необхідності агресивно формувати ваш трафік:

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
Chris


4

Використовуйте IceFloor на [Гірському] Леві


Я відповідаю за цю відповідь, виявивши, що IceFloor орієнтований більше на протокол, ніж на додаток. Тож якщо я хочу обмежити лише певну програму, важко.
knocte

Запропоновано тому, що вивчення IceFloor привело мене до пошуку Vallum, який дозволяє мені блокувати доступ до мережі на додаток.
skplunkerin

2

Це дійсно збочена думка, але ви можете використовувати вбудовані ipfw та dummynet Mac OS X для написання правил для цього. Див. Довідкові сторінки для цих інструментів.


Відео про те, що хтось робить саме це на OSX: youtube.com/watch?v=VgwR230coOw
Проф. Фолкен

2

Що стосується поточних розробок для OS X 10.10, як ipfwчасто називають виконуваний файл, більше недоступний. Однак є pfвиконуваний файл, який може обробляти подібні конфігурації брандмауера.

Існує інтерфейс GUI під назвою "Murus" ( http://www.murusfirewall.com ), який ви можете використовувати для налаштування pf. Наскільки я розумію, він також активно підтримує обмеження пропускної здатності (від інтерфейсу).

[EDIT]

Якщо хтось не може обійтись 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
Я завантажив стручку 1.0.5, запустив "$ sudo ./configure" і отримав таку помилку, як і раніше: "configure: error: libevent not found". Я перевірив, і MacPorts встановив libevent. Крім того, я не люблю програмне забезпечення, яке не оновлювалося роками.
dotHTM


0

Нещодавно я знайшов (і досі пробує) Vallum, щоб мати контроль над своїми програмами:

Це брандмауер програми macOS, який дозволяє обмежити, якими програмами можна користуватися в Інтернеті. Це дійсно гладко до цих пір, я щойно створив профіль за замовчуванням, який дозволяє отримати доступ до всього, що я хочу мати, і профіль мобільної точки доступу, який обмежує більше програм, коли я в дорозі.


Оновлення: мені не вдалося " заглушити " пропускну здатність для додатків за допомогою Vallum , налаштувати лише різні профілі, де я обмежую більше / менше програм.


3
Схоже, взагалі не дозволяє дроселювання
GJ.

@GJ. правда, я також не зміг побачити цю здатність ... поки що я можу дозволити додатку мати доступ до мережі, чи ні. Я налаштовував різні профілі як "дросельні", щоб вирішити це.
skplunkerin

0

Найкращий спосіб зменшити пропускну здатність на macOS - це використання Dummynet, який вбудований в ядро ​​macOS і працює з фільтрами пакетів pf. На мій погляд, єдиний спосіб ефективної настройки пропускної здатності на основі кожного процесу - це визначити, які локальні порти пов'язані процесом, а потім створити відповідні правила фіктивного монтажу. Наскільки я знаю, єдиний додаток 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.