Comandos de diagnóstico: ip, ping, ss, traceroute

Introducción

Antes de modificar cualquier configuración de red conviene saber leer el estado actual del sistema. Estos comandos permiten inspeccionar interfaces, rutas, conexiones activas y diagnosticar problemas de conectividad.

ip — Herramienta principal de red

Reemplaza a los comandos clásicos ifconfig y route. Es el estándar actual en todas las distribuciones modernas.

ip addr — Ver y gestionar direcciones IP


$ ip addr show                  # todas las interfaces y sus IPs
$ ip addr show eth0             # solo la interfaz eth0
$ ip addr show dev enp0s3       # por nombre de dispositivo

# Asignar/eliminar una IP de forma temporal (no persiste al reiniciar)
# ip addr add 192.168.1.20/24 dev eth0
# ip addr del 192.168.1.20/24 dev eth0
          

Salida típica:


2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
    inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0
    inet6 fe80::a00:27ff:fe4e:66a1/64 scope link
          

ip link — Estado de las interfaces


$ ip link show                  # listar todas las interfaces
$ ip link show eth0             # estado de eth0

# Activar / desactivar una interfaz
# ip link set eth0 up
# ip link set eth0 down
          

El estado UP indica que la interfaz está activa. LOWER_UP confirma que hay enlace físico (cable conectado o WiFi asociado).

ip route — Tabla de rutas


$ ip route show                             # ver todas las rutas
$ ip route show default                     # ver solo el gateway

# Añadir/eliminar rutas temporales
# ip route add 10.10.0.0/24 via 192.168.1.254
# ip route del 10.10.0.0/24
# ip route add default via 192.168.1.1      # definir gateway por defecto
          

ping — Verificar conectividad

Envía paquetes ICMP a un destino y mide el tiempo de respuesta. Es la primera herramienta de diagnóstico ante cualquier problema de red.


$ ping 8.8.8.8                  # ping continuo a IP (Ctrl+C para parar)
$ ping -c 4 8.8.8.8             # solo 4 paquetes
$ ping -c 4 google.com          # verificar también resolución DNS
$ ping6 ::1                     # ping IPv6 al loopback local
          

Diagnóstico por fases:

  • ping 127.0.0.1 → comprueba que TCP/IP funciona en el propio equipo
  • ping 192.168.1.1 → comprueba conectividad con el gateway local
  • ping 8.8.8.8 → comprueba salida a Internet (sin DNS)
  • ping google.com → comprueba que la resolución DNS funciona

ss — Conexiones y puertos activos

Reemplaza al clásico netstat. Muestra sockets TCP, UDP y Unix activos en el sistema. Imprescindible para ver qué servicios están escuchando y en qué puerto.


$ ss -tuln                      # TCP y UDP, puertos en escucha, sin resolver nombres
$ ss -tulnp                     # igual + proceso propietario del socket
$ ss -s                         # resumen de estadísticas
$ ss -t state established       # conexiones TCP establecidas
$ ss -tulnp | grep :80          # quién escucha en el puerto 80
          

Flags más usados:

  • -t → TCP
  • -u → UDP
  • -l → solo sockets en escucha (listening)
  • -n → mostrar números en lugar de nombres de servicio
  • -p → mostrar el proceso asociado (requiere root para ver todos)

traceroute / tracepath — Ruta de paquetes

Muestra el camino que siguen los paquetes hasta llegar al destino, pasando por cada router intermedio. Útil para detectar dónde se pierde la conectividad.


$ traceroute 8.8.8.8            # ruta hasta Google DNS
$ traceroute -n 8.8.8.8         # sin resolver nombres (más rápido)
$ tracepath 8.8.8.8             # alternativa sin privilegios de root
          

Salida típica:


 1  192.168.1.1     1.2 ms    ← router local (gateway)
 2  10.0.0.1        8.5 ms    ← router del ISP
 3  *  *  *                   ← salto que no responde (firewall)
 4  8.8.8.8         15.3 ms   ← destino alcanzado
          

Otros comandos útiles


$ hostname -I                   # mostrar todas las IPs del equipo
$ ip neigh show                 # tabla ARP (vecinos en la red local)
$ nmap -sn 192.168.1.0/24      # descubrir equipos activos en la red local
$ curl -s ifconfig.me           # ver la IP pública del equipo
          

El diagnóstico siempre sigue el mismo orden: primero verificar la interfaz, luego el gateway, luego Internet y finalmente el DNS.

Configuración de red en Debian: /etc/network/interfaces, systemd-networkd

Índice de la sección

Índice del curso