¿Cuál es una buena solución de software para ralentizar las conexiones a Internet en Mac para pruebas y simulaciones?
Mi principal necesidad es cuando pruebo el código en el simulador de iPhone/iOS, por lo que sería genial ralentizar la conexión para aplicaciones o procesos específicos.
La herramienta oficial de Apple para ralentizar las conexiones de red en su Mac con fines de prueba es Network Link Conditioner
Además, iOS tiene una función similar a la que se puede acceder desde Xcode e iOS 6 o posterior.
Las versiones anteriores de Xcode antes de la versión 4.3.2 incrustaron una copia de esta herramienta. Este subproceso SO documenta algo de la historia de la herramienta de manera similar a los simuladores de iOS y la documentación del desarrollador.
Hay 11 perfiles integrados 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 usarlo usted mismo como se ipfw
describe en el artículo de Craig Hockenberry . que Xcode, pero tiene menos opciones que la herramienta de Apple.
Ralentiza toda la pila de red, por lo que no puede acelerar por aplicación sin hacer cosas como instalar Lion en una máquina virtual y configurar esa VM con una pila acelerada.
OS X 10.9 y versiones anteriores proporcionan ipfw
y le permiten definir reglas de firewall personalizadas. Cree una tubería con ancho de banda limitadoipfw
y podrá ejecutar sus pruebas y simulaciones.
Cree una tubería "1" limitada a 500 KBytes/s a través de
sudo ipfw pipe 1 config bw 500KByte/s
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
Cuando ya no necesite la tubería, retírela del puerto usando
sudo ipfw delete 1
MByte/s
80
no cifrado . http
Este puerto se usa para la mayoría de las búsquedas y descargas. Debería estar bien con esto en la mayoría de los casos.443
encriptado SSL .https
El límite de velocidad es un panel de Preferencias del sistema para ralentizar de manera intencional y selectiva puertos y dominios específicos.
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 descargar primero el paquete XCode de 2GB si aún no lo tiene).
Vaya a https://developer.apple.com/downloads y busque "Network Link Conditioner" o "Additional Tools for XCode", siendo este último el nombre del paquete en el que se encuentra.
Para descargarlo a través de Xcode 8.x:
Si solo necesita aceleración para el desarrollo web, puedo recomendar de todo corazón a Charles . De todos modos, es una excelente herramienta para depurar aplicaciones HTTP y, entre sus muchas características, tiene una opción de Acelerador. El software no es barato, pero hace un excelente trabajo.
Los usuarios de Mac OS X 10.10+ necesitan usar dnctl
y pfctl
, sin embargo, 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 ir a por todas y darle 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 host local que ralentizaron la depuración de mi código vs, así que tenlo en cuenta.
sudo pfctl -E
primero para habilitar pfctl. También me aseguré de que mi firewall estuviera habilitado en Preferencias del sistema> Seguridad y privacidad> Firewall, pero no estoy seguro de si eso es necesario.También puede usar tuberías ipfw para ralentizar su red.
Primero, configure una "tubería" virtual para limitar el rendimiento a 800 KBit/seg:
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 10 Kbit/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
Encontré este comando de terminal útil en mi caso
Instalación:
Abra la terminal mac y escriba este comando
sudo npm install @sitespeed.io/throttle -g
Uso:
Abra la terminal y escriba el comando requerido
Acelerador de inicio (supongamos que queremos velocidades de carga y descarga de 5000 kbps)
throttle --up 5000 --down 5000
detener el acelerador
throttle --stop
También hay perfiles prefabricados.
--profile Premade profiles, set to one of the following
3g: up:768 down:1600 rtt:150
3gfast: up:768 down:1600 rtt:75
3gslow: up:400 down:400 rtt:200
2g: up:256 down:280 rtt:400
cable: up:1000 down:5000 rtt:14
dsl: up:384 down:1500 rtt:14
3gem: up:400 down:400 rtt:200
4g: up:9000 down:9000 rtt:85
lte: up:12000 down:12000 rtt:35
edge: up:200 down:240 rtt:35
dial: up:30 down:49 rtt:60
fois: up:5000 down:20000 rtt:2
Uso de perfiles
throttle 4g
En XCode 12, debe instalar herramientas adicionales para XCode 12 en lugar de herramientas de IO de hardware.
Para XCode 10.2, en Más herramientas para desarrolladores - Herramientas adicionales para XCode 10.2, encontrará Network Link Conditioner.
jason salaz
mike weller
randy l
Pierz
dnctl
/ipfw
reglas dummynet a través de sunlcd
daemon (ver: newosxbook.com/bonus/vol1ch16.html )