Come simulare connessioni Internet lente sul mac

135

Che cos'è una buona soluzione software per rallentare le connessioni Internet sul Mac per test e simulazioni?

Il mio bisogno primario è quando collaudo il codice nel simulatore iPhone / iOS, quindi rallentare la connessione per applicazioni o processi specifici sarebbe grandioso.

    
posta aneuryzm 03.09.2011 - 19:02
fonte

7 risposte

156

Apple ha creato uno strumento ufficiale molto utile per rallentare le connessioni di rete sul tuo Mac a scopo di test.

La preferenza Condizionatore collegamento di rete è scaricabile gratuitamente da Xcode (per Lion e SO successivo). Inoltre, iOS ha una funzione simile accessibile da Xcode e iOS 6 o successivi.

Leversioniprecedentidi Xcode prima della versione 4.3.2 includevano una copia di questo strumento . Ora, usi Xcode a scaricalo direttamente in modo simile ai simulatori iOS e alla documentazione per gli sviluppatori.

Ci sono 11 profili incorporati da una rete Lossy Edge con ritardo di 400 ms per un modem via cavo. Se hai bisogno di altri limiti, puoi creare profili personalizzati con le tue impostazioni oppure puoi utilizzare ipfw te stesso come descritto nell'articolo Craig Hockenberry guida lenta, rendilo facile Menziona anche Limite velocità pannello di Mike Schrag che è un download più piccolo di Xcode , ma ha meno opzioni rispetto allo strumento di Apple.

Rallenta l'intero stack di rete, quindi non puoi limitare l'applicazione per app senza fare cose come installare lion in una macchina virtuale e impostare la VM con uno stack limitato.

    
risposta data 03.09.2011 - 21:06
fonte
34

OS X 10.9 e precedenti forniscono ipfw e ti permettono di definire regole personalizzate del firewall. Crea una pipe con larghezza di banda limitata utilizzando ipfw ed è possibile eseguire i test e le simulazioni.

  1. Crea una pipe "1" limitata a 500 KBy / s via

    sudo ipfw pipe 1 config bw 500KByte/s
    
  2. Guida tutto il traffico di rete della porta 80 attraverso la pipe "1" usando

    sudo ipfw add 1 pipe 1 src-port 80
    
  3. Quando non hai più bisogno del tubo, rimuovilo dalla porta usando

    sudo ipfw delete 1
    

Altre

  • Se desideri impostare barriere del traffico più elevate, puoi utilizzare MByte/s
  • Porta 80 : porta standard per traffico% nonhttp non crittografato. Questa porta è utilizzata per la maggior parte della navigazione e del download. Dovresti stare bene con questo nella maggior parte dei casi.
  • Porta 443 : porta standard per il traffico crittografato con https .
risposta data 28.03.2012 - 08:10
fonte
30

Limite di velocità è un pannello Preferenze di sistema per rallentare intenzionalmente e selettivamente porte e domini specifici.

    
risposta data 03.09.2011 - 21:11
fonte
8

Se hai solo bisogno di una limitazione per lo sviluppo Web, posso consigliare senza riserve Charles . È uno strumento eccellente per il debug delle applicazioni HTTP e, tra le sue numerose funzionalità, offre un'opzione Throttle. Il software non è economico, ma fa un lavoro eccellente.

    
risposta data 03.09.2011 - 19:38
fonte
6

Per aggiungere alla risposta accettata: sembra che non dovresti aver bisogno di XCode, solo un account sul sito web di Apple Developer (più semplice del primo scaricando il pacchetto XCode da 2 GB se non lo hai già).

Vai al link e cerca "Network Link Conditioner" o "Hardware IO Tools per XCode", essendo quest'ultimo il nome del pacchetto in cui si trova.

Per scaricarlo tramite Xcode 8.x:

  • Fai clic sul menu Xcode
  • Vai a Open Developer Tool > Altri strumenti per gli sviluppatori ...
  • Questo aprirà una pagina su developer.apple.com (Nota: potresti aver bisogno di accedere prima)
  • Fai clic sul segno "+" accanto a Strumenti aggiuntivi per Xcode 8.x
  • Fai clic sull'URL di download
risposta data 17.12.2013 - 18:23
fonte
3

Puoi anche utilizzare i piping ipfw per rallentare la tua rete.

Per prima cosa, configura una "pipa" virtuale per limitare il throughput a 800 KBit / sec:

ipfw pipe 1 config bw 800Kbit

Quindi puoi impostare le regole per spingere il traffico attraverso quel tubo (tubo 1). (le porte 6881-6890 sono traffico bittorrent)

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

Ecco un altro esempio per limitare il traffico a 10Kbit / sec da un indirizzo IP specifico:

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

(Origine)

    
risposta data 07.09.2011 - 18:46
fonte
0

Mac OS X 10.10+ deve utilizzare dnctl e pfctl ma gli esempi di utilizzo documentati non sono facili da trovare.

# 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

Se vuoi dare il massimo e modellare tutto ciò che puoi usare:

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

Credo che ciò influenzi anche i pipe del localhost che hanno rallentato il debug del codice vs, quindi ricordati di questo.

    
risposta data 18.07.2018 - 09:48
fonte

Leggi altre domande sui tag