Conexión lenta al servidor: cómo saber si es la red, el VPS o el sitio
En pocas palabras
La lentitud puede venir de cuatro lugares y cada uno se mide distinto: tu propia conexión, la ruta hasta el datacenter, el servidor y la aplicación. Empezá por curl con los tiempos desglosados: si conectar lleva 20 ms y el primer byte tarda un segundo, la red queda descartada y el problema está en el VPS o en el sitio. Si la conexión misma es lenta, mtr muestra en qué salto aparece la demora o la pérdida, e iperf3 mide el ancho de banda real contra tu servidor. Probá siempre desde dos redes distintas.
Dos minutos para descartar lo obvio
- Mirá la página de estado del servicio. Si hay un incidente en curso, no hace falta medir nada.
- Abrí el sitio desde el celular con datos móviles, sin wifi. Si así anda bien, el problema está entre tu computadora y tu proveedor de internet.
- Si desde la oficina no abre nada y desde los datos móviles sí, puede que un firewall haya bloqueado la IP de la oficina después de varios intentos fallidos de contraseña. En un VPS lo hace tu propio fail2ban; en el hosting, el desbloqueo se pide en la página de desbloqueo de IP.
- Pedí un archivo estático, como
/robots.txto una imagen. Si llega al instante y la portada tarda, la red funciona y lo lento es lo que arma la página.
Paso 1: desarmar el tiempo con curl
curl puede informar cuánto tardó cada etapa de un pedido. Es la medición que ordena todo lo demás, porque separa lo que es red de lo que es servidor:
curl -so /dev/null https://tudominio.com.ar/ -w 'dns: %{time_namelookup}\nconexion: %{time_connect}\ntls: %{time_appconnect}\nprimer byte: %{time_starttransfer}\ntotal: %{time_total}\n'- Los tiempos están en segundos y son acumulados: cada uno incluye a los anteriores.
- Corrélo tres o cuatro veces. La primera suele ser más lenta porque el nombre todavía no estaba en la caché del DNS.
- En Windows 10 y 11,
curlviene instalado, pero en Windows PowerShell escribícurl.exe: a secas,curlllama a otro comando.
Cómo leer cada tramo
| Tramo | Cuenta | Normal con el servidor en el país | Si da alto, mirá |
|---|---|---|---|
| Resolver el nombre | dns | Menos de 50 ms; casi cero con caché | El DNS que usa tu equipo |
| Abrir la conexión | conexión menos dns | Lo mismo que un ping: de 5 a 40 ms | La ruta, con mtr |
| Negociar el cifrado | tls menos conexión | Un viaje de ida y vuelta más | Un servidor sin CPU libre |
| Armar la respuesta | primer byte menos tls | Menos de 200 ms una página en caché; hasta 600 una dinámica | El servidor y la aplicación |
| Bajar el contenido | total menos primer byte | Según el peso de la página | El ancho de banda, con iperf3 |
Si la conexión se abre en 20 ms y el primer byte llega al segundo, la red no tiene nada que ver.
La contraprueba, desde el propio VPS
Para confirmar que el lento es el servidor, repetí la medición desde el VPS contra sí mismo. Con --resolve el pedido va a la máquina local pero conserva el nombre del sitio y su certificado, así que pasa por la misma configuración que un visitante:
curl -so /dev/null -w '%{time_starttransfer}\n' --resolve tudominio.com.ar:443:127.0.0.1 https://tudominio.com.ar/- Si desde adentro el primer byte también tarda, la red quedó fuera de la discusión.
- Si desde adentro es rápido y desde afuera no, el problema está en el camino o en algo que se interpone, como un firewall que inspecciona el tráfico.
Paso 2: latencia y pérdida, con ping y mtr
ping -c 30 tudominio.com.ar resume cuatro números al final: mínimo, promedio, máximo y mdev, la desviación. El promedio es la latencia; la desviación es lo que se siente como entrecortado. Treinta milisegundos parejos andan mejor que quince que saltan a doscientos cada tanto.
Para ver en qué tramo aparece el problema, mtr combina ping y traceroute. En Debian y Ubuntu se instala con apt install mtr-tiny; en AlmaLinux, con dnf install mtr. Un informe de doscientos ciclos, con nombres y direcciones, se pide así:
mtr -r -w -b -c 200 tudominio.com.ar
# si en el camino filtran ICMP, por TCP al puerto del sitio
mtr -r -w -b -c 200 -T -P 443 tudominio.com.arQué dice cada patrón en un informe de mtr
Hacé un informe en cada sentido: desde tu computadora hacia el VPS y desde el VPS hacia la IP pública de tu conexión, porque la ida y la vuelta pueden ir por caminos distintos. Después leelos con esta guía:
| Lo que ves | Lo que significa |
|---|---|
| Pérdida en un salto intermedio, 0 % en los siguientes | Ese router contesta pocas sondas, pero reenvía el tráfico. No hay problema. |
| Pérdida desde un salto hasta el final | Pérdida real, en ese equipo o en el enlace que llega a él |
| Pérdida solo en el último salto | El camino está bien; el destino no contesta todo: firewall o servidor saturado |
| La latencia sube de golpe y ya no baja | El tramo largo. De 15 a 130 ms suele ser el cruce a otro continente, y es normal |
| Un salto con 200 ms entre otros de 20 | Un router que atiende las sondas con baja prioridad. No afecta al tráfico |
| Filas con ??? | Equipos que no responden sondas. Solo preocupa si siguen hasta el destino |
Paso 3: ancho de banda real, con iperf3
Las pruebas de velocidad de los navegadores miden tu enlace contra un servidor de la propia prueba, cercano a vos. No dicen nada del camino hasta tu VPS. Para medir ese camino, iperf3 hace de servidor en un extremo y de cliente en el otro. En el ejemplo, reemplazá 203.0.113.10 por la IP de tu VPS:
# en el VPS: abrí el puerto solo mientras dure la prueba
sudo ufw allow 5201/tcp # o: sudo firewall-cmd --add-port=5201/tcp
iperf3 -s
# en tu computadora
iperf3 -c 203.0.113.10 -t 20 # subida hacia el VPS
iperf3 -c 203.0.113.10 -t 20 -R # bajada desde el VPS- Si el resultado se acerca a lo que tenés contratado con tu proveedor de internet, el camino está bien y el cuello de botella es otro.
- Si da mucho menos solo en un sentido, anotalo: es un dato valioso para cualquier reclamo.
- En los servidores cloud la salida es de hasta 100 Mbps: unos 11 MB/s reales son el techo del plan, no una falla.
- Al terminar, cortá
iperf3con Ctrl+C y cerrá el puerto consudo ufw delete allow 5201/tcp. En firewalld, la regla sin--permanentdesaparece sola al recargarlo.
Paso 4: cuando el que tarda es el servidor
Si la red quedó descartada, entrá por SSH y revisá en este orden. Cada comando responde una pregunta concreta:
| Comando | Qué responde | Señal de problema |
|---|---|---|
uptime y nproc | ¿Hay más trabajo que núcleos? | Carga sostenida por encima de la cantidad de núcleos |
vmstat 1 10 | ¿En qué se va el tiempo? | Columna wa alta: espera de disco. si y so distintas de cero: está usando swap |
free -h | ¿Queda memoria? | available cerca de cero |
df -h y df -i | ¿Hay lugar y quedan inodos? | Más del 90 % en cualquiera de los dos |
iostat -x 1 5 | ¿El disco da abasto? | %util cerca de 100 de forma sostenida |
journalctl -p err -b | ¿Algo falla desde el último arranque? | Un servicio que se reinicia una y otra vez |
ss -s | ¿Cuántas conexiones hay abiertas? | Miles, muy por encima de lo normal para tu sitio |
iostat viene en el paquete sysstat.
Tres trampas que parecen problemas de red
- IPv6 a medias. Si el dominio tiene registro AAAA pero la ruta IPv6 falla, algunos clientes esperan antes de probar por IPv4. Compará
curl -4concurl -6en el mismo pedido. - El tamaño de los paquetes. Si las páginas chicas cargan y las pesadas se cuelgan, sobre todo a través de una VPN, puede haber un problema de MTU. En Linux, probá
ping -M do -s 1472contra el servidor: si falla y con un número más chico funciona, ahí está. - Un resolvedor lento.
dig tudominio.com.arinforma la demora en la líneaQuery time. Si pasa de unos cientos de milisegundos, el que tarda es el DNS de tu red, no el servidor.
Qué pasarle al soporte
En un VPS, el sistema operativo lo administrás vos; el soporte revisa la red y la plataforma. Con estos datos lo hace rápido y sin idas y vueltas, por ticket, correo, chat o teléfono:
- Fecha y hora exactas en que lo notaste, y si es constante o va y viene.
- Tu IP pública y el tipo de conexión desde el que medís: fibra, cable, datos móviles, VPN.
- Tres corridas del
curlcon los tiempos, pegadas como texto. - Los dos informes de
mtr, de ida y de vuelta, y el resultado deiperf3si lo hiciste. - Qué cambió antes de que empezara: una actualización, un plugin nuevo, más tráfico, un respaldo que corre a esa hora.
Preguntas frecuentes
¿Por qué la prueba de velocidad da bien y el sitio anda lento?
Porque mide otro camino: tu conexión contra un servidor de la prueba que suele estar en tu misma ciudad. El recorrido hasta tu VPS pasa por otros equipos, y además la prueba no ve el tiempo que el servidor tarda en armar la página.
¿Qué latencia es razonable hasta un servidor en Buenos Aires?
Desde el AMBA, menos de 10 ms con fibra y algo más con datos móviles. Desde otras provincias, entre 10 y 40 ms. Desde el resto de América del Sur, entre 30 y 70. Importa más que sea pareja que el número exacto.
¿Es grave que un salto del medio muestre 60 % de pérdida en mtr?
Si los saltos que siguen muestran 0 %, no: es un router que no contesta todas las sondas. La pérdida que cuenta es la que llega hasta el destino.
¿Puedo dejar iperf3 escuchando siempre en el VPS?
No conviene. Es un puerto abierto que cualquiera puede usar para saturar tu enlace. Levantalo para la prueba y cerralo al terminar.
Seguí leyendo
IP bloqueada en el hosting: por qué pasa y cómo pedir el desbloqueo
Panel, correo y FTP dejan de responderte mientras el sitio les anda a los demás: el firewall bloqueó tu IP. Cómo confirmarlo, destrabarlo y que no se repita.
5 min de lectura
Cómo saber si tu VPS se quedó chico antes de pagar más
Carga, memoria, disco y procesos PHP: qué comandos correr, qué valores preocupan y cómo distinguir falta de recursos de un problema de configuración.
5 min de lectura
Firewall y fail2ban en un VPS Linux, sin quedarte afuera
Cómo activar ufw o firewalld sin cortar tu propio acceso, qué puertos abrir según lo que corre en el VPS y cómo frenar con fail2ban los ataques a SSH.
7 min de lectura
