Mac OS X에서 응용 프로그램 당 네트워크 대역폭 조절


37

iTunes가 대역폭을 모두 소모하는 것처럼 보이며 다운로드 할 때 웹을 사용하는 다른 응용 프로그램과 잘 어울리지 않습니다. 실제로, 대용량 또는 많은 파일 (포드 캐스트, TV 쇼, 대형 앱 등)을 다운로드하는 동안 iTunes Store를 탐색 할 때 충분한 대역폭을 제공하지도 않습니다.

가능한 한 빨리 모든 다운로드를 얻는 것에 대해 걱정하지 않고 우선 순위가 낮으며 깨어있는 동안이 작업을 수행 할 필요는 없지만 새로 고침 버튼을 누르면 침대에 누워 이미 잊어 버렸습니다.

웹 브라우저 나 다른 응용 프로그램을 방해하지 않고 iTunes가받는 다운로드 대역폭을 제한하기위한 응용 프로그램이나 도구가 터미널을 통해 있습니까?

FOSS / GPL 소프트웨어가 바람직하지만 유료 소프트웨어도 허용 될 수 있습니다.


1
네트워크 링크 컨디셔너는 모든 앱의 대역폭을 제한하는 데 매우 좋습니다 apple.stackexchange.com/questions/164959/…
Khaled Annajar

이 질문은 주로 특정 용도로 사용되지 않습니다. iTunes의 컨텐츠를 정기적으로 다운로드하는 경우는 거의 없습니다 (이제 podcast는 이제 iPhone 전용 타사 응용 프로그램, iTunes 비디오 구매 용 AppleTV를 사용하며 컴퓨터와 전혀 동기화되지 않습니다).
dotHTM 2018 년

답변:


9

GUI :

CLI (포트 별 필터링은 없지만 조정할 수 있음) :

이러한 도구는 포트 또는 포트 범위를 필터 기준으로 사용합니다. 응용 프로그램이 사용하는 포트를 모르는 경우 해당 설명서를 확인하거나 응용 프로그램 lsof이 실행되는 동안 사용 하여 포트 번호를 확인할 수 있습니다.

sudo lsof -i -P

대부분 또는 모든 도구 는 공식적으로 pf 대신 사용되지 않는 ipfw 를 사용 하므로 이러한 솔루션이 OS X 10.9 이상에서 작동하는지 확실하지 않습니다.


5

오래된 질문이지만 방금 비슷한 문제가 발생하여 회신 할 것이라고 생각했습니다.

문제는 실제로 ISP의 트래픽 형성으로 인한 것일 수 있습니다. 고객에게 더 나은 스트리밍 서비스를 제공하기 위해 알려진 컨텐츠 제공 업체에 대한 트래픽의 우선 순위를 적극적으로 지정합니다. 나는 그들이 어떤 경우에는 너무 멀리 갔다고 주장했다. 배경 iCloud 사진 업로드가 45000ms를 초과하는 핑 시간을 일으키는 유사한 문제를 방금 진단했다.

이 문제를 해결하기 위해 ISP의 트래픽 쉐이핑이 다른 모든 응용 프로그램에서 대역폭을 완전히 빼내는 것을 방지하기 위해 컴퓨터가 사용할 총 대역폭의 양을 간단히 줄일 수 있습니다. 아이러니하게도, 이것은 자신의 컴퓨터에서 검색 성능을 향상시킬뿐만 아니라 네트워크상의 다른 컴퓨터의 성능을 향상시킵니다. 예를 들어 15Mbps 다운 스트림 캡이있는 경우 12Mbps 만 사용하도록 컴퓨터를 제한 할 수 있으며 ISP 알고리즘은 더 이상 트래픽을 공격적으로 구성 할 필요가 없다고 판단합니다.

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

필자의 경우, 제한 요소 인 업스트림 대역폭 (ISP에 의해 1Mbps로 제한)이 발생하여 다음을 실행하여 문제를 해결했습니다.

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

이 명령은 다시 시작할 때까지만 유효하지만 규칙을 취소하려면 다음을 수행하십시오.

ipfw delete 1

ipfw에 대한 FreeBSD 맨 페이지를 찾았지만 Wikipedia에 따르면 ipfw는 10.4부터 10.5부터 OS X에서 강조 표시되지 않았습니다. 오늘 10.10 설치에서 ipfw를 찾을 수 없으며 Homebrew와 MacPorts 모두 ipfw 용으로 개발 된 설치가 없습니다.
dotHTM

2
ipfwOS X에서 단종되었지만 다음과 같습니다pf
Chris


4

[산] 사자에서 IceFloor 사용


IceFloor가 앱 중심보다 프로토콜 중심이라는 것을 알게 된 후이 답변을 다운 투표하고 있습니다. 따라서 특정 응용 프로그램 만 제한하려면 어렵습니다.
knocte

IceFloor를 탐색하면서 Vallum을 찾아서 앱별로 네트워크 액세스를 차단할 수 있었기 때문에 공감했습니다.
skplunkerin

2

이것은 정말 잘못된 생각이지만 Mac OS X의 내장 ipfw 및 dummynet을 사용하여이를 수행하는 규칙을 작성할 수 있습니다. 해당 도구에 대한 매뉴얼 페이지를 참조하십시오.


OSX에서 누군가 그렇게하는 비디오 : youtube.com/watch?v=VgwR230coOw
교수 Falken

2

의 현재 개발과 관련하여 일반적으로 참조 OS X 10.10되는 ipfw실행 파일을 더 이상 사용할 수 없습니다. 그러나 pf유사한 방화벽 구성을 처리 할 수 있는 실행 파일이 있습니다.

"Murus"( http://www.murusfirewall.com ) 라는 GUI 인터페이스가 있으며 이를 구성하는 데 사용할 수 있습니다 pf. 내가 이해하는 한, (UI에서) 대역폭 제한을 적극적으로 지원합니다.

[편집하다]

누군가가없이 갈 수없는 경우 ipfw직접 컴파일하려고 시도 할 수 있습니다. 소스 코드 (FreeBSD)는 http://www.freebsd.org/cgi/cvsweb.cgi/src/sbin/ipfw/에서 확인할 수 있습니다.

Apple은 또한 사용하는 오픈 소스 프로젝트의 소스 코드를 공개합니다 (d). http://www.opensource.apple.com/source/network_cmds/network_cmds-329.2.2/ipfw 에서 찾을 수 있습니다 .


1
여기에서 지침을 사용하여 OS X 10.14 Mojave에서 Skype 8을 조절하도록 Murus를 성공적으로 구성 할 수있었습니다. murusfirewall.com/forum/viewtopic.php?t=428
Jon Schneider

1

물방울 은 당신이 추구 하는 것입니다.

유일한 문제는 kqueue를 사용하는 실행 파일을 지원하지 않으며 정적으로 링크 된 실행 파일을 지원하지 않는다는 것입니다. iTunes는 괜찮을 것입니다.


1
1.0.6이나 1.0.7을 만들 수 없었습니다. ./configure를 실행 한 후 libevent를 찾을 수 없다는 오류가 발생합니다. MacPorts를 통해 libevent를 설치했으며 다시 시도 할 때 동일한 오류가 발생했습니다.
dotHTM

@Kio 버전> 1.06은에 대한 호출 문제로 인해 빌드되지 않습니다 poll(). 그러나 오래된 것들이 작동해야합니다.
John T

4
trickle 1.0.5를 다운로드하고 "$ sudo ./configure"를 실행 한 후 "configure : error : libevent not found"와 같은 오류가 발생했습니다. 확인했는데 MacPorts에 libevent가 설치되어 있습니다. 게다가, 나는 몇 년 동안 업데이트되지 않은 소프트웨어를 좋아하지 않습니다.
dotHTM


0

최근에 Vallum 이 내 앱을 제어 할 수 있다는 것을 알았습니다 (그리고 여전히 시험 중입니다) .

인터넷을 사용할 수있는 앱을 제한 할 수있는 macOS Application Firewall입니다. 지금까지는 매끄 럽습니다. 방금 액세스하려는 모든 것을 허용 하는 기본 프로필이동 중에 더 많은 앱을 제한 하는 모바일 핫스팟 프로필 을 만들었습니다 .


업데이트 : Vallum을 사용하는 앱의 대역폭을 "스로틀"할 수 없었고 더 많거나 적은 앱을 제한하는 다른 프로파일 만 설정했습니다.


3
스로틀 링을 전혀 허용하지 않는 것 같습니다
GJ.

@GJ. 사실, 나는 그 능력을 볼 수 없었습니다 ... 지금까지는 앱에 네트워크 액세스 만 허용 할 수 있습니다. 이 문제를 해결하기 위해 다른 프로필을 "스로틀"로 설정했습니다.
skplunkerin

0

macOS에서 대역폭을 조절하는 가장 좋은 방법은 macOS 커널에 내장되어 있고 pf 패킷 필터와 함께 작동하는 Dummynet을 사용하는 것입니다. 제 생각에는 프로세스별로 대역폭을 효과적으로 조정하는 유일한 방법은 프로세스에 바인딩 된 로컬 포트를 식별 한 다음 해당 pf 더미 넷 규칙을 만드는 것입니다. 내가이 옵션을 제공하는 유일한 macOS 응용 프로그램을 알고있는 한 Scudo (나는 Scudo, Vallum 및 Murus의 개발자입니다). Scudo 1.0 베타 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.