Przepustowość przepustowości sieci na aplikację w Mac OS X

37

Zauważam, że iTunes wydaje się pochłaniać całą moją przepustowość i nie działa dobrze z innymi aplikacjami, które korzystają z Internetu podczas pobierania. W rzeczywistości nie zapewnia sobie wystarczającej przepustowości podczas przeglądania sklepu iTunes Store podczas pobierania dużych lub wielu plików (podcastów, programów telewizyjnych, dużych aplikacji itp.).

Nie zależy mi na jak najszybszym pobraniu wszystkich moich plików do pobrania, mają one naprawdę niski priorytet i wolę nie robić tego, gdy nie śpię, ale nie mogę nacisnąć przycisku odświeżania, jeśli „ m w łóżku i już o tym zapomniałem.

Czy za pośrednictwem terminalu jest dostępna aplikacja lub narzędzie do ograniczania przepustowości pobierania, jaką uzyskuje iTunes, nie przeszkadzając również przeglądarkom internetowym lub innym aplikacjom?

Preferowane jest oprogramowanie FOSS / GPL, ale oprogramowanie płatne również może być akceptowalne.

dotHTM
źródło
1
Network Link Conditioner jest bardzo dobry do ograniczenia przepustowości dla wszystkich aplikacji apple.stackexchange.com/questions/164959/…
Khaled Annajar
To pytanie stało się w dużej mierze przestarzałe na moje szczególne zastosowanie. Rzadko pobieram treści w iTunes regularnie (podcasty używają teraz aplikacji innych producentów tylko na iPhone'a, AppleTV do zakupów wideo w iTunes i nie synchronizuję aplikacji z komputerem).
dotHTM

Odpowiedzi:

9

GUI:

CLI (bez filtrowania specyficznego dla portu, ale można go dostosować):

Te narzędzia opierają się na portach lub zakresach portów jako kryterium filtru. Jeśli nie wiesz, z jakich portów korzysta Twoja aplikacja, możesz sprawdzić jej dokumentację lub użyć, lsofgdy aplikacja jest uruchomiona, aby wyświetlić numery portów.

sudo lsof -i -P

Większość lub wszystkie narzędzia używają ipfw, który jest oficjalnie przestarzały na korzyść pf , więc nie jestem pewien, czy te rozwiązania będą działać w systemie OS X 10.9 i nowszych.

Stefan Schmidt
źródło
5

Stare pytanie, ale właśnie wpadłem na podobny problem, więc pomyślałem, że odpowiem.

Problem prawdopodobnie wynika z kształtowania ruchu u Twojego dostawcy usług internetowych. Agresywnie priorytetyzują ruch do znanych dostawców treści, starając się zapewnić lepszą obsługę transmisji strumieniowej dla klientów. Twierdziłbym, że w niektórych przypadkach posunęli się za daleko - właśnie zdiagnozowałem podobny problem, gdy przesyłanie zdjęć w tle przez iCloud powodowało czasy pingów przekraczające 45000 ms.

Aby rozwiązać problem, możesz po prostu zmniejszyć całkowitą przepustowość, z której komputer będzie korzystać, aby zapobiec całkowitemu kradzieży przepustowości przez wszystkie inne aplikacje przez kształtowanie ruchu ISP. Jak na ironię poprawi to wydajność przeglądania na własnym komputerze, a także oczywiście poprawi wydajność innych komputerów w sieci. Jeśli na przykład masz ograniczenie pobierania danych w wysokości 15 Mb / s, możesz ograniczyć komputer do korzystania z niego tylko 12 Mb / s, a algorytm ISP nie będzie już widział potrzeby agresywnego kształtowania ruchu:

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

W moim przypadku czynnikiem ograniczającym była przepustowość w górę (ograniczona przez 1Mb / s), więc uruchomiłem następujące rozwiązanie, które rozwiązało mój problem:

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

Pamiętaj, że te polecenia będą obowiązywać tylko do ponownego uruchomienia, ale aby anulować regułę, wykonaj następujące czynności:

ipfw delete 1
John Mileham
źródło
Znajduję stronę podręcznika użytkownika FreeBSD dotyczącą ipfw, ale według Wikipedii ipfw nie jest wyróżniane w OS X od 10.4 do 10.5. Nie znalazłem dzisiaj ipfw na mojej instalacji 10.10, a zarówno Homebrew, jak i MacPorts nie mają aktywnie rozwijanych instalacji dla ipfw.
dotHTM
2
ipfwzostał przerwany w os x, ale jestpf
Chris
4

Co powiesz na waterroof ? To łatwy interfejs dla IPFW. (I open source.)

Ben Chun
źródło
4

Użyj IceFloor na [Mountain] Lion

GJ
źródło
Głosuję za odrzuceniem tej odpowiedzi po odkryciu, że IceFloor jest bardziej skoncentrowany na protokole niż na aplikacji. Więc jeśli chcę ograniczyć tylko określoną aplikację, jest to trudne.
knocte
Pozytywnie oceniany, ponieważ odkrywanie IceFloor doprowadziło mnie do znalezienia Vallum, które pozwala mi blokować dostęp do sieci dla każdej aplikacji.
skplunkerin
2

To naprawdę przewrotna myśl, ale możesz użyć wbudowanych w Mac OS X ipfw i dummynet, aby napisać reguły, aby to zrobić. Zobacz strony podręcznika dla tych narzędzi.

Spiff
źródło
Film przedstawiający kogoś, kto właśnie to robi w systemie OSX: youtube.com/watch?v=VgwR230coOw
Prof. Falken
2

W odniesieniu do obecnych zmian OS X 10.10, ipfwplik wykonywalny, o którym często się mówi, nie jest już dostępny. Istnieje jednak pfplik wykonywalny, który może obsługiwać podobne konfiguracje zapory.

Istnieje interfejs GUI o nazwie „Murus” ( http://www.murusfirewall.com ), którego można użyć do konfiguracji pf. O ile rozumiem, aktywnie obsługuje również ograniczenie przepustowości (z interfejsu użytkownika).

[EDYTOWAĆ]

W przypadku, gdy ktoś nie może się obejść ipfw , możesz spróbować skompilować go samodzielnie. Kod źródłowy (z FreeBSD) jest dostępny tutaj: http://www.freebsd.org/cgi/cvsweb.cgi/src/sbin/ipfw/

Apple publikuje również kod źródłowy wykorzystywanych przez siebie projektów open source (d). ipfwmożna znaleźć tutaj: http://www.opensource.apple.com/source/network_cmds/network_cmds-329.2.2/

Chris
źródło
1
Udało mi się skonfigurować Murusa do dławienia Skype 8 na OS X 10.14 Mojave, postępując
Jon Schneider
1

to jest strużka .

Jedyne problemy to to, że nie obsługuje plików wykonywalnych wykorzystujących Kqueue i nie obsługuje plików wykonywalnych połączonych statycznie. iTunes powinien być w porządku.

John T.
źródło
1
Nie udało mi się stworzyć wersji 1.0.6 lub 1.0.7. Po uruchomieniu ./configure pojawia się błąd informujący, że nie można znaleźć libevent. Zainstalowałem libevent przez MacPorts i przy ponownej próbie dostałem ten sam błąd.
dotHTM
Wersje @Kio> 1.06 nie budują się z powodu problemów z połączeniem z poll(). Starsze powinny jednak działać.
John T
4
Pobrałem strużkę 1.0.5, uruchomiłem „$ sudo ./configure” i otrzymałem następujący błąd, tak jak poprzednio: „config: error: libevent not found”. Sprawdziłem, a MacPorts ma zainstalowaną bibliotekę libevent. Poza tym nie przepadam za oprogramowaniem, które nie było aktualizowane od lat.
dotHTM
1

http://github.com/zquestz/throttled to może być to, czego szukasz, jeśli jeszcze jej nie znalazłeś.

Robbie
źródło
To jest już nieaktualne i wykorzystuje ipfw, które nie są już dostępne.
Chris,
0

Niedawno odkryłem (i wciąż testuję) Vallum, aby mieć kontrolę nad moimi aplikacjami:

Jest to zapora ogniowa aplikacji dla systemu macOS, która pozwala ograniczyć dostęp aplikacji do Internetu. Jak dotąd jest to naprawdę sprytne, właśnie utworzyłem Profil domyślny, który zezwala na wszystko, do czego chcę mieć dostęp, oraz Profil mobilnego punktu dostępowego, który ogranicza więcej aplikacji, gdy jestem w drodze.


Aktualizacja: Nie byłem w stanie „zmniejszyć przepustowości” aplikacji korzystających z Vallum , konfigurowałem tylko różne profile, w których ograniczam więcej / mniej aplikacji.

skplunkerin
źródło
3
wydaje się w ogóle nie pozwalać na dławienie
GJ.
@GJ. to prawda, nie widziałem też tej zdolności ... do tej pory mogę pozwolić aplikacji tylko na dostęp do sieci lub nie. W celu obejścia tego problemu skonfigurowałem różne profile jako „przepustnice”.
skplunkerin
0

Najlepszym sposobem na ograniczenie przepustowości w systemie macOS jest użycie Dummynet, który jest wbudowany w jądro macOS i działa z filtrem pakietów pf. Moim zdaniem jedynym sposobem skutecznego dostrojenia przepustowości dla poszczególnych procesów jest określenie, które porty lokalne są powiązane przez proces, a następnie utworzenie odpowiednich reguł dummynet pf. O ile mi wiadomo, jedyną aplikacją macOS, która oferuje tę opcję, jest Scudo (jestem programistą Scudo, Vallum i Murus). Scudo 1.0 beta 3 jest obecnie dostępny za darmo, więcej informacji na temat dostrajania przepustowości Scudo dla poszczególnych procesów można znaleźć tutaj: http://www.murusfirewall.com/forum/viewtopic.php?f=2&t=1919&p=3281#p3281

Hany El Imam
źródło
Próbowałem tego i wydaje się, że działa. To jest teraz w wersji beta 6 (beta 3 już nie będzie działać) - murusfirewall.com/forum/viewtopic.php?f=2&t=1949 Podoba mi się Monitor sieci, który pozwala dodawać do zapory i ograniczać przepustowość.
f01