Mac에서 느린 인터넷 연결을 시뮬레이트하는 방법 및 시뮬레이션을 위해 Mac에서 인터넷 연결을 느리게하는

테스트 및 시뮬레이션을 위해 Mac에서 인터넷 연결을 느리게하는 좋은 소프트웨어 솔루션은 무엇입니까?

필자의 주요 요구 사항은 iPhone / iOS 시뮬레이터에서 코드를 테스트 할 때 특정 응용 프로그램이나 프로세스의 연결 속도를 늦추는 것입니다.



답변

Apple은 테스트를 위해 Mac의 네트워크 연결 속도를 늦출 수있는 매우 편리한 공식 도구를 만들었습니다.

네트워크 링크 컨디셔너 선호 (사자 나중에 OS 용) 엑스 코드 내에서 무료로 다운로드 할 수 있습니다. 또한 iOS에는 Xcode 및 iOS 6 이상에서 액세스 할 수있는 유사한 기능이 있습니다.

4.3.2 이전 버전의 Xcode 는이 도구의 사본을 포함했습니다. 이제 Xcode 를 사용 하여 iOS 시뮬레이터 및 개발자 설명서와 유사한 방식으로 직접 다운로드합니다 .

400ms 지연된 Lossy Edge 네트워크에서 케이블 모뎀으로 11 개의 내장 프로파일이 있습니다. 다른 제한이 필요한 경우 고유 한 설정으로 사용자 정의 프로파일을 만들거나 Craig Hockenberry 의 기사 느린 승차에ipfw 설명 된대로 자신을 사용할 수도 있습니다 . 더 쉽게 다운로드 할 수있는 Mike Schrag속도 제한 패널 도 언급되어 있습니다. Xcode보다 적지 만 Apple 도구보다 옵션이 적습니다.

전체 네트워크 스택을 느리게하므로 가상 머신에 lion을 설치하고 스로틀 스택으로 해당 VM을 설정하지 않고 앱별로 스로틀을 할 수 없습니다.


답변

OS X 10.9 및 이전 버전은 ipfw사용자 정의 방화벽 규칙을 정의하고 정의 할 수 있습니다. 사용하여 제한된 대역폭파이프를 생성하면 ipfw테스트 및 시뮬레이션을 실행할 수 있습니다.

  1. 를 통해 500KBytes / s로 제한되는 파이프 “1”을 만듭니다.

    sudo ipfw pipe 1 config bw 500KByte/s
    
  2. 파이프 “1”을 통해 포트 80의 모든 네트워크 트래픽을 사용하여 안내

    sudo ipfw add 1 pipe 1 src-port 80
    
  3. 더 이상 파이프가 필요하지 않으면 다음을 사용하여 포트에서 파이프를 제거하십시오.

    sudo ipfw delete 1
    

다른

  • 더 높은 교통 장벽을 설정하려면 MByte/s
  • 포트 80: 암호화되지 않은 http트래픽의 표준 포트입니다 . 이 포트는 대부분의 탐색 및 다운로드에 사용됩니다. 대부분의 경우 이것으로 충분해야합니다.
  • 포트 443: SSL 암호화 https트래픽의 표준 포트 .

답변

속도 제한 은 특정 포트 및 도메인을 의도적으로 선택적으로 느리게하기위한 시스템 환경 설정 패널입니다.


답변

허용되는 답변에 추가하려면 XCode가 필요하지 않은 것 같습니다 .Apple Developer 웹 사이트의 계정 일뿐입니다 (2GB XCode 패키지가없는 경우 먼저 다운로드하는 것보다 간단합니다).

https://developer.apple.com/downloads로 이동하여 “Network Link Conditioner”또는 “Additional Tools for XCode”를 검색하십시오 (후자는 패키지의 이름 임).

Xcode 8.x를 통해 다운로드하려면 :

  • Xcode 메뉴를 클릭하십시오
  • 개발자 도구 열기> 추가 개발자 도구 …로 이동하십시오.
  • developer.apple.com에서 페이지가 열립니다 (참고 : 먼저 로그인해야 할 수도 있습니다)
  • Xcode 8.x 용 추가 도구 옆에있는 ‘+’기호를 클릭하십시오.
  • 다운로드 URL을 클릭하십시오

답변

웹 개발에만 조절이 필요한 경우 Charles를 진심으로 추천 할 수 있습니다 . 어쨌든 HTTP 응용 프로그램을 디버깅하기위한 훌륭한 도구이며 많은 기능 중에서 스로틀 옵션이 있습니다. 소프트웨어는 싸지는 않지만 훌륭한 일을합니다.


답변

맥 OS X 10.10 사용자는 사용할 필요 dnctl하고 pfctl있지만, 문서화 된 예문 쉽게 찾을 수 없습니다.

# Configure `pfctl` to use `customRule`.
(cat /etc/pf.conf && echo "dummynet-anchor \"customRule\"" && echo "anchor \"customRule\"") | sudo pfctl -f -

# Define `customRule` to pipe traffic to `pipe 1`.
# Note this is the actual port definition, not a textual comment
echo "dummynet in quick proto tcp from any to any port 443 pipe 1" | sudo pfctl -a customRule -f -

# Define what `pipe 1` should do to traffic
sudo dnctl pipe 1 config delay 10000
sudo dnctl pipe 1 config bw 10Kbit/s

# DO NOT FORGET to undo these when you're done
sudo dnctl -q flush
sudo pfctl -f /etc/pf.conf

모두 나가서 사용할 수있는 모든 것을 만들고 싶다면 :

echo "dummynet in quick proto tcp from any to any pipe 1" | sudo pfctl -a customRule -f -

나는 이것이 로컬 호스트 파이프에 영향을 미쳐 내 vs 코드 디버깅을 느리게한다고 생각하므로주의하십시오.


답변

ipfw 파이핑을 사용하여 네트워크 속도를 늦출 수도 있습니다.

먼저 가상 “파이프”를 설정하여 처리량을 800KBit / sec로 제한하십시오.

ipfw pipe 1 config bw 800Kbit

그런 다음 해당 파이프 (파이프 1)를 통해 트래픽을 푸시하는 규칙을 설정할 수 있습니다. (포트 토트 트래픽 인 포트 6881-6890)

ipfw add 10 pipe 1 tcp from any to me 6881-6890
ipfw add 11 pipe 1 tcp from any 6881-6890 to me

특정 IP 주소에서 트래픽을 10Kbit / sec로 제한하는 또 다른 예는 다음과 같습니다.

ipfw pipe 2 config bw 10Kbit
ipfw add 15 pipe 2 ip from me to 64.81.84.114

(출처)