Inicio > Cursos > Linux & Terminal > Redes y Troubleshooting
Linux & TerminalAdministracion AvanzadaLección 10 de 12

Redes y Troubleshooting

Diagnosticar problemas de red es una habilidad esencial para cualquier developer. Ya sea que tu app no se conecta a la base de datos, un API no responde, o un servidor esta caido, estas herramientas te ayudan a encontrar la causa rapidamente.

# DIAGNOSTICO BASICO

# ping: verificar conectividad
ping -c 4 google.com
# PING google.com (142.250.80.46): 56 bytes
# 64 bytes: icmp_seq=0 ttl=117 time=12.3 ms
# 64 bytes: icmp_seq=1 ttl=117 time=11.8 ms
# --- google.com ping statistics ---
# 4 packets transmitted, 4 received, 0% packet loss

# traceroute: ver la ruta de los paquetes
traceroute google.com
# 1  192.168.1.1     1.234 ms   (tu router)
# 2  10.0.0.1        5.678 ms   (ISP)
# 3  72.14.232.100   10.123 ms  (Google)

# Verificar que puertos estan abiertos
ss -tlnp
# State   Recv-Q  Send-Q  Local Address:Port
# LISTEN  0       128     0.0.0.0:22     (sshd)
# LISTEN  0       128     0.0.0.0:80     (nginx)
# LISTEN  0       128     127.0.0.1:3000 (node)

# netstat (version antigua, todavia util)
netstat -tlnp
# CURL Y WGET: hacer peticiones HTTP

# curl: la navaja suiza de HTTP
curl https://api.ejemplo.com/users
# [{"id": 1, "name": "Juan"}, ...]

# Ver headers de respuesta
curl -I https://google.com
# HTTP/2 200
# content-type: text/html; charset=UTF-8
# server: gws

# Enviar POST con JSON
curl -X POST https://api.ejemplo.com/users \
  -H "Content-Type: application/json" \
  -d '{"name": "Juan", "email": "juan@mail.com"}'

# Descargar un archivo
curl -O https://ejemplo.com/archivo.zip
wget https://ejemplo.com/archivo.zip

# wget: descargar recursivamente
wget -r -l 2 https://ejemplo.com/docs/

# Probar si un servicio responde
curl -sf http://localhost:3000/health && echo "OK" || echo "FALLO"
# DNS: resolver nombres de dominio

# dig: consultar DNS
dig google.com
# ;; ANSWER SECTION:
# google.com.  300  IN  A  142.250.80.46

# Solo la IP
dig +short google.com
# 142.250.80.46

# nslookup: alternativa mas simple
nslookup google.com
# Name:    google.com
# Address: 142.250.80.46

# Ver la configuracion DNS del sistema
cat /etc/resolv.conf
# nameserver 8.8.8.8
# nameserver 8.8.4.4

# IPTABLES BASICO: firewall

# Ver reglas actuales
sudo iptables -L -n

# Permitir puerto 80 (HTTP)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# Bloquear una IP
sudo iptables -A INPUT -s 192.168.1.100 -j DROP

# TROUBLESHOOTING comun
# App no conecta a DB:
ping db-server           # Hay conectividad?
curl db-server:5432      # El puerto esta abierto?
dig db-server            # El DNS resuelve?
ss -tlnp | grep 5432    # El servicio esta corriendo?
ConsejoOrden para diagnosticar problemas de red: 1) ping - hay conectividad? 2) dig/nslookup - el DNS resuelve? 3) curl/telnet - el puerto esta abierto? 4) ss/netstat - el servicio esta escuchando? 5) iptables - el firewall lo bloquea?
← Cron y Automatizacion de TareasBash Scripting Avanzado →

Practica esta lección

Resuelve los ejercicios del curso de Linux & Terminal en la app, gratis y con corrección automática.

Empezar a practicar