Cómo simular conexiones de Internet lentas en el mac

134

¿Cuál es una buena solución de software para ralentizar las conexiones de Internet en el mac para pruebas y simulaciones?

Mi necesidad principal es cuando se prueba el código en el simulador de iPhone / iOS, por lo que la desaceleración de la conexión para aplicaciones o procesos específicos sería excelente.

    
pregunta aneuryzm 03.09.2011 - 19:02

7 respuestas

155

Apple ha creado una herramienta oficial muy útil para reducir la velocidad de las conexiones de red en tu Mac con fines de prueba.

La preferencia Acondicionador de enlace de red es una descarga gratuita desde Xcode (para Lion y posterior sistema operativo). Además, iOS tiene una función similar accesible desde Xcode y iOS 6 o posterior.

Lasversionesanterioresde Xcode antes de la versión 4.3.2 incrustaron una copia de esta herramienta . Ahora, utiliza Xcode para descárguelo directamente de manera similar a los simuladores de iOS y la documentación del desarrollador.

Hay 11 perfiles incorporados desde una red Lossy Edge con un retraso de 400 ms hasta un módem por cable. Si necesita otros límites, puede crear perfiles personalizados con su propia configuración o también puede usar ipfw usted mismo como se describe en el artículo de Craig Hockenberry viaje lento, hazlo fácil También menciona el Límite de velocidad por Mike Schrag que es una descarga más pequeña que Xcode , pero tiene menos opciones que la herramienta de Apple.

Ralentiza toda la pila de la red, por lo que no puede acelerarse por aplicación sin hacer cosas como instalar lion en una máquina virtual y configurar esa VM con una pila estrangulada.

    
respondido por el bmike 03.09.2011 - 21:06
34

OS X 10.9 y versiones anteriores proporcionan ipfw y le permite definir reglas de firewall personalizadas. Cree un canal con ancho de banda limitado utilizando ipfw y podrá ejecutar sus pruebas y simulaciones.

  1. Cree un conducto "1" limitado a 500 KB por / s a través de

    sudo ipfw pipe 1 config bw 500KByte/s
    
  2. Guíe todo el tráfico de red del puerto 80 a través de la tubería "1" usando

    sudo ipfw add 1 pipe 1 src-port 80
    
  3. Cuando ya no necesite la tubería, elimínela del puerto usando

    sudo ipfw delete 1
    

Otro

  • Si desea establecer barreras de tráfico más altas, puede usar MByte/s
  • Puerto 80 : puerto estándar para http traffic no cifrado. Este puerto se utiliza para la mayoría de la navegación y descarga. En la mayoría de los casos, debería estar bien con esto.
  • Puerto 443 : puerto estándar para SSL cifrado https traffic.
respondido por el gentmatt 28.03.2012 - 08:10
30

Límite de velocidad es un panel de Preferencias del sistema para reducir intencionalmente y selectivamente los puertos y dominios específicos.

    
respondido por el Randy6T9 03.09.2011 - 21:11
8

Si solo necesita una limitación para el desarrollo web, puedo recomendar de todo corazón Charles . De todos modos, es una excelente herramienta para la depuración de aplicaciones HTTP, y entre sus muchas características, tiene una opción de Acelerador. El software no es barato, pero hace un excelente trabajo.

    
respondido por el Kiezpro 03.09.2011 - 19:38
6

Para agregar a la respuesta aceptada: parece que no debería necesitar XCode, solo una cuenta en el sitio web de Apple Developer (más simple que la primera descarga del paquete XCode de 2GB si aún no lo tiene).

Vaya a enlace y busque "Network Link Conditioner" o "Hardware IO Tools para XCode", este último es el nombre del paquete se encuentra en.

Para descargarlo a través de Xcode 8.x:

  • Haz clic en el menú Xcode
  • Ir a Open Developer Tool > Más herramientas para desarrolladores ...
  • Esto abrirá una página en developer.apple.com (Nota: es posible que deba iniciar sesión primero)
  • Haga clic en el signo '+' al lado de Herramientas adicionales para Xcode 8.x
  • Haz clic en la URL de descarga
respondido por el Roger Dueck 17.12.2013 - 18:23
3

También puedes usar tuberías IPfw para ralentizar tu red.

Primero, configure una "tubería" virtual para limitar el rendimiento a 800Kbit / sec:

ipfw pipe 1 config bw 800Kbit

Luego, puede configurar reglas para impulsar el tráfico a través de esa tubería (tubería 1). (Los puertos 6881-6890 son tráfico 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

Aquí hay otro ejemplo para limitar el tráfico a 10Kbit / seg desde una dirección IP específica:

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

(Source)

    
respondido por el daviesgeek 07.09.2011 - 18:46
0

Mac OS X 10.10+ necesita usar dnctl y pfctl pero los ejemplos de uso documentados no son fáciles de encontrar.

# 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

Si quieres hacer todo lo posible para dar forma a todo lo que puedes usar:

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

Creo que esto también afecta a las canalizaciones de localhost que ralentizaron mi depuración de código vs, así que ten esto en cuenta.

    
respondido por el ubershmekel 18.07.2018 - 09:48

Lea otras preguntas en las etiquetas