2015-10-11 8 views
19

Ho bisogno di rallentare (simulare la connessione internet), ho trovato della documentazione dove è stato ottenuto dal comando "ipfw pipe", il fatto è che nell'ultimo MAC OS versioni, ipfw è stato deprecato (e rimosso) ...alla ricerca di una soluzione alternativa a IPFW per il rallentamento di una connessione Internet

Mi chiedevo se ci sono alternative all'API ipfw? Qualcuno sa come l'ultimo Network Link Conditioner lo raggiunge?

Il precedente modo originale che ha permesso di rallentare una connessione Internet:

sudo ipfw pipe 1 config bw 56Kbit/s delay 200 plr 0.2 

e per cancellare il tubo:

sudo ipfw delete 1 

Grazie.

risposta

0

Ho trovato diverse soluzioni che potrebbero funzionare. Vengono da alcune vecchie discussioni, ma potrebbero aiutare:

How to simulate slow internet connections on the mac

Apple has made a very handy official tool to slow down the network connections on you Mac for testing purposes.

The Network Link Conditioner preference is a free download from within Xcode (for Lion and later OS). Additionally, iOS has similar function accessible from within Xcode and iOS 6 or later.

How do I simulate a bad Wi-Fi connection on my iPad?

There are a few ways you can do this, depending on your situation:

  1. Move further away from your router. While this may seem a bit obvious, I realize that it isn't always possible while testing/debugging (for example, if you are working on a desktop computer).

  2. Put aluminum foil around the router and/or antenna. This will (partially) block some or all of the radio signals by creating a makeshift Faraday cage. The results you get will depend on the strength of your router signal, distance from the router, and other environmental factors.

  3. Set your router's wireless signal power to a lower setting. The method for doing this is different for each router, so you will have to look at the user guide for instructions on how to do this.

Slow down internet for iOS simulator

You can set the network to slow characteristic by testing on devices. Go to Settings -> Developer Settings -> Network Link Conditioner -> Enable. This is for iPhone/iPad running iOS 6

non so se l'ultimo quello che si può ancora fare.

+1

grazie per le risposte, ma il primo suggerimento, è obsoleto api come ho già descritto, e il Network Link Conditioner è uno strumento di interfaccia utente, e ho bisogno di alcuni comandi CLI/riga di comando che sono ancora supportati ... Grazie comunque – Igal

+13

Se ritieni che questa domanda sia un duplicato, contrassegnala come tale. Non pubblicare link ad altri post StackOverflow come risposta ... – JAL

+0

@Igal qualsiasi motivo per cui è necessaria la CLI? si configura lo strumento dell'interfaccia utente, quindi è possibile testare lo strumento sapendo che la connessione è lenta. –

3

Non so molto di Mac OS (uso io stesso Linux), ma darò una possibilità.

Un gruppo di scavi ha stabilito che ipfw sembra non disponibile, come dici tu.

Non è stato possibile trovare un modo per utilizzare il condizionatore del collegamento di rete dalla riga di comando. Tutto dovrebbe essere utilizzabile dalla riga di comando, quindi è stupido.

Una soluzione sarebbe cercare di accedere all'NLC da AppleScript. Di seguito le informazioni che vi sul commutando la NLC:

property thePane : "com.apple.Network-Link-Conditioner" 
tell application "System Preferences" 
activate 
    set the current pane to pane id thePane 
--delay 2 
end tell 
--- 
tell application "System Events" 
    tell application process "System Preferences" 
    try 
    click ((checkboxes of window "Network Link Conditioner") whose description is "enable switch") 
    on error 
    click ((checkboxes of window "Network Link Conditioner") whose description is "enable switch") 
    end try 
    end tell 
end tell 

penso che è possibile eseguire uno script dal terminale con osascript <SCRIPT>.

In alternativa, Charles Proxy è un programma pay-to-use che può essere utilizzato per eseguire la limitazione, a condizione che sia possibile convincere il software che si sta testando a connettersi alla porta del proxy anziché direttamente a Internet. Forse ci sono soluzioni proxy gratuite là fuori da qualche parte?

Forse Squid avrebbe funzionato al riguardo. SquidMan sembra essere un modo facile per installarlo per Mac. Sembra che DelayPools e/o Client Bandwidth Limits possano essere utili per simulare una connessione a bassa velocità, anche se non riesco a trovare la prova che le persone li hanno usati per tale.

+0

Questa è una bella soluzione. Ho provato a eseguire il pannello delle preferenze eseguibile dalla riga di comando (/ Library/PreferencePanes/Network Link Conditioner.prefPane/Contents/MacOS/Network Link Conditioner), ma si stava verificando l'errore di errore exec: ./Network \ Link \ Conditioner'. . Il che è strano, considerando che 'file Network \ Link \ Conditioner' mostra che si tratta di un binario universale Mach-O con 2 architetture. – JAL

+0

È possibile eseguire il pannello delle preferenze di sistema stesso dalla riga di comando e passare al pannello NLC tramite AppleScript? – Richard

+0

In teoria è possibile aprire il pannello delle preferenze NLC con 'apri/Libreria/PreferencePanes/Network Link Conditioner.prefPane', oppure apri il pannello delle preferenze di sistema principale dal binario nel pacchetto app'/Applications/System \ Preferences.app/Contents/ MacOS/System \ Preferences' – JAL

0

Ho usato molti metodi in passato per rallentare le connessioni di rete, tra i quali:

  • l'esecuzione di un download parallelo di alcuni massiccia Linux file ISO;
  • estraendo fisicamente il cavo Ethernet (a un certo punto, in realtà mi sono divertito con l'idea di costruire un dispositivo a pulsante che si posizionasse tra due cavi cat5 e lo fare senza dover scollegare fisicamente l'intero cavo).
  • utilizzando ifconfig eth0 down ; sleep 1 ; ifconfig eth0 up.

Speriamo che uno o più di questi metodi possano essere d'aiuto.

+0

grazie per la risposta, iconfig è ottimo, ma non puoi controllare quanti pacchetti vuoi "rilasciare", ho ragione? – Igal

0

Se stai cercando di rallentare la tua connessione di rete perché stai facendo test/profiling lavoro, un'opzione è quella di ottenere un dispositivo specifico che può creare latenza/rumore di rete.

Ad esempio l'emulatore mini2 WAN di Apposite Tech consente di modificare i valori per la larghezza di banda e la perdita di pacchetti. Puoi anche eseguire il rollover del tuo dispositivo utilizzando qualcosa come: http://wanem.sourceforge.net/. Dipende solo dalle tue esigenze, dal tempo e dal budget.