🔍 Diagnóstico Básico
Comandos fundamentales para diagnosticar problemas de conectividad, verificar configuraciones de interfaz de red y resolver cuestiones de DNS.
Probar Conectividad con Ping
Prueba la conectividad de red y la accesibilidad de un host específico, enviando paquetes ICMP ECHO_REQUEST. La flag `-c 4` limita el envío a 4 paquetes, proporcionando una prueba rápida sin sobrecargar la red.
Ping Rápido con Intervalo Reducido
Realiza una prueba de conectividad con un intervalo reducido entre los paquetes. La flag `-i 0.5` define un intervalo de 0.5 segundos entre cada ping, útil para pruebas rápidas de latencia y para verificar la respuesta en tiempo real.
Rastrear Ruta hasta Destino (Traceroute)
Muestra la ruta que los paquetes IP recorren para alcanzar un destino, mostrando cada enrutador (hop) en el camino. Ayuda a identificar cuellos de botella, latencia excesiva o fallas en puntos específicos de la ruta de red.
Traceroute Continuo (MTR)
Combina las funcionalidades de `ping` y `traceroute` en una herramienta continua. Muestra estadísticas de latencia y pérdida de paquetes para cada salto (hop) en tiempo real, ideal para monitoreo prolongado e identificación de problemas intermitentes.
Mostrar Tabla ARP
Muestra la tabla ARP (Address Resolution Protocol) del sistema, que mapea direcciones IP a direcciones MAC (físicas) en la red local. La flag `-a` muestra todas las entradas, siendo útil para depurar problemas de resolución de direcciones en la capa 2.
Mostrar Interfaces y Direcciones IP
Muestra información detallada sobre todas las interfaces de red configuradas en el sistema, incluyendo direcciones IP, máscaras de subred, estado de la interfaz (UP/DOWN) y alcance. Es la herramienta moderna para reemplazar `ifconfig`.
Activar Interfaz de Red
Activa la interfaz de red `eth0`. Sustituye `eth0` por el nombre de la interfaz deseada (ej: `enp0s3`, `wlan0`). Usa `ip link set eth0 down` para desactivarla. Requiere privilegios de root.
Detalles de la Interfaz con Ethtool
Muestra y permite la configuración de parámetros de bajo nivel de la interfaz de red `eth0`, como velocidad, modo dúplex, auto-negociación y estadísticas de hardware. Útil para verificar el estado físico de la conexión.
Estadísticas de la Interfaz de Red
Muestra estadísticas de tráfico concisas (bytes enviados/recibidos, errores, paquetes descartados) para la interfaz de red `eth0`. La flag `-s` muestra un resumen de las estadísticas de paquetes y errores.
Listar Puertos Abiertos (Sockets)
Muestra información sobre sockets de red abiertos en el sistema. Las flags `-t` (TCP), `-u` (UDP), `-l` (listening sockets) y `-n` (numérico, sin resolución de nombres) son comúnmente usadas para listar puertos que están esperando conexiones.
Consulta DNS con Nslookup
Consulta servidores DNS para obtener información sobre nombres de dominio, como direcciones IP (registros A) y otros tipos de registros. Es una herramienta más antigua, pero aún útil para consultas DNS básicas y rápidas.
Consulta DNS Completa con Dig
Una herramienta más potente y flexible para consultas DNS. `ANY` solicita todos los tipos de registros DNS disponibles para el dominio especificado, incluyendo A, MX, NS, SOA, etc. Ideal para depuración avanzada de DNS.
Rastrear Ruta de Resolución DNS
Rastrea la ruta de resolución DNS para un dominio, mostrando los servidores DNS raíz, TLD y autoritativos consultados en cada paso. Útil para entender cómo se resuelve un nombre globalmente e identificar problemas de delegación.
Consultar Registros MX con Host
Consulta servidores DNS para obtener información sobre un dominio. La flag `-t mx` solicita específicamente los registros MX (Mail Exchanger), que indican los servidores de correo electrónico responsables de recibir mensajes para el dominio.
Estado DNS de Systemd-Resolved
Muestra el estado actual del resolvedor DNS del sistema gestionado por `systemd-resolved`, incluyendo servidores DNS configurados, interfaces y dominios de búsqueda. Relevante en sistemas que usan `systemd` para la gestión de red.
📊 Análisis de Tráfico
Comandos para capturar, filtrar y analizar paquetes de red, además de monitorear el tráfico en tiempo real.
Capturar Tráfico en la Interfaz (tcpdump)
Captura y muestra el tráfico de red que pasa por la interfaz `eth0` en tiempo real. Requiere privilegios de root. Use `Ctrl+C` para detener la captura. Es una herramienta fundamental para la inspección de paquetes.
Capturar Tráfico sin Resolución DNS
Captura tráfico en la interfaz `eth0` sin resolver direcciones IP a nombres de host o números de puerto a nombres de servicio. La flag `-n` acelera la visualización y es útil en entornos sin acceso DNS o para enfocarse solo en las IPs.
Filtrar Tráfico por Puerto
Filtra el tráfico en la interfaz `eth0` para mostrar solo paquetes que usan el puerto 80 (generalmente HTTP). El filtro puede aplicarse a puertos de origen o destino, facilitando el análisis de servicios específicos.
sudo tcpdump -i eth0 port 80
Filtrar Tráfico por Host Específico
Captura solo el tráfico que tiene como origen o destino la dirección IP `192.168.1.100` en la interfaz `eth0`. Esencial para aislar el tráfico de un único dispositivo o servidor.
sudo tcpdump -i eth0 host 192.168.1.100
Guardar Captura en Archivo PCAP
Captura el tráfico de la interfaz `eth0` y guarda los paquetes brutos en un archivo llamado `capture.pcap`. Este archivo puede ser analizado posteriormente con `tcpdump` o herramientas gráficas como `Wireshark`.
sudo tcpdump -i eth0 -w capture.pcap
Leer Archivo PCAP con Contenido ASCII
Lee y muestra el contenido de un archivo de captura (`.pcap`) previamente guardado. La flag `-A` intenta imprimir cada paquete (excluyendo la cabecera del enlace) en ASCII, útil para inspeccionar datos de texto dentro de los paquetes.
sudo tcpdump -r capture.pcap -A
Captura en Tiempo Real con Tshark
Inicia la captura de paquetes en tiempo real en la interfaz `eth0` usando `tshark`, la versión de línea de comandos de Wireshark. Ofrece capacidades de filtro y análisis más avanzadas que `tcpdump`.
Analizar Archivo PCAP con Tshark
Lee y muestra el contenido de un archivo de captura (`.pcap`) usando `tshark`. Permite aplicar filtros de visualización y realizar análisis detallado de los paquetes grabados.
Filtrar Peticiones HTTP en PCAP
Analiza un archivo `.pcap` y muestra solo los paquetes que corresponden al filtro de visualización de Wireshark `http.request`, mostrando detalladamente las peticiones HTTP capturadas.
tshark -r capture.pcap -Y "http.request"
Extraer IPs Origen/Destino de PCAP
Extrae y muestra campos específicos de paquetes de un archivo `.pcap`. `-T fields` especifica el formato de salida como campos, y `-e` lista los campos a extraer (en este caso, dirección IP de origen y destino).
tshark -r capture.pcap -T fields -e ip.src -e ip.dst
Estadísticas de Conversaciones IP con Tshark
Analiza un archivo `.pcap` y genera estadísticas de conversaciones IP. `-q` suprime la salida de paquetes, y `-z conv,ip` activa el estadístico de conversaciones IP, mostrando el volumen de datos y paquetes entre pares de IPs.
tshark -r capture.pcap -q -z conv,ip
Monitorear Tráfico en Tiempo Real (iftop)
Muestra el uso de ancho de banda en tiempo real para la interfaz `eth0`, mostrando las conexiones que están consumiendo más ancho de banda, ordenadas por volumen. Requiere `sudo` y la instalación de `iftop`.
Monitorear Tráfico por Proceso (nethogs)
Muestra el consumo de ancho de banda por proceso en la interfaz `eth0`. Útil para identificar qué aplicaciones están generando más tráfico de red en tiempo real. Requiere `sudo` y la instalación de `nethogs`.
Monitor de Ancho de Banda Gráfico (bmon)
Un monitor de ancho de banda y estadísticas de red que ofrece una vista gráfica y detallada del tráfico en todas las interfaces. Proporciona una interfaz interactiva para la visualización de métricas de red. Requiere la instalación de `bmon`.
Estadísticas de Red Detalladas (iptraf-ng)
Una herramienta de monitoreo de red interactiva que recopila y muestra una variedad de estadísticas, incluyendo información de IP, TCP, UDP, ICMP, Ethernet, y más. Útil para un análisis profundo del tráfico. Requiere la instalación de `iptraf-ng`.
Estadísticas de Red con Sar
Recopila, reporta o guarda información de actividad del sistema. `-n DEV` especifica el informe de estadísticas de red por dispositivo, `1` es el intervalo en segundos y `5` es el número de muestras a recolectar. Parte del paquete `sysstat`.
🔒 Firewall y Seguridad
Comandos para configurar y gestionar firewalls (UFW, iptables) y proteger el sistema con herramientas como Fail2Ban.
Activar Firewall UFW
Activa el firewall UFW (Uncomplicated Firewall). Asegúrese de tener reglas de acceso SSH configuradas antes de habilitar en servidores remotos para evitar el bloqueo del acceso. Requiere privilegios de root.
Estado Detallado de UFW
Muestra el estado actual de UFW, indicando si está activo, las reglas configuradas, el perfil predeterminado y el registro de reglas. La flag `verbose` proporciona más detalles sobre las reglas y el tráfico.
Permitir Conexión SSH (UFW)
Crea una regla para permitir conexiones TCP en el puerto 22 (SSH). Es crucial permitir SSH antes de habilitar el firewall en servidores remotos para mantener el acceso administrativo.
Bloquear IP Específico (UFW)
Crea una regla para bloquear todas las conexiones de entrada provenientes de la dirección IP `192.168.1.100`. Útil para mitigar ataques o bloquear accesos no deseados de una IP conocida.
sudo ufw deny from 192.168.1.100
Eliminar Regla UFW
Elimina una regla existente que permite el tráfico en el puerto 80. Para eliminar una regla específica, puedes usar `ufw status numbered` para ver las reglas con números y luego `ufw delete <número>`.
Recargar Reglas UFW
Recarga las reglas de UFW después de modificaciones, aplicando las nuevas configuraciones sin la necesidad de reiniciar el servicio. Esto garantiza que los cambios entren en vigor inmediatamente.
Listar Reglas Iptables
Lista todas las reglas del firewall `iptables`. `-L` lista las reglas, `-n` muestra direcciones y puertos numéricamente (sin resolución DNS para mayor velocidad), y `-v` muestra detalles como contadores de paquetes/bytes.
Permitir Puerto Específico (Iptables)
Añade (`-A`) una regla a la cadena `INPUT` para permitir (`-j ACCEPT`) conexiones TCP (`-p tcp`) destinadas al puerto 22 (`--dport 22`). Esta regla permite el tráfico SSH de entrada.
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Bloquear Subred (Iptables)
Añade una regla a la cadena `INPUT` para descartar (`-j DROP`) todos los paquetes provenientes de la subred `192.168.1.0/24`. Útil para aislar o bloquear tráfico de una red específica.
sudo iptables -A INPUT -s 192.168.1.0/24 -j DROP
Limpiar Todas las Reglas Iptables
Limpia (`-F`, flush) todas las reglas de todas las cadenas de `iptables`. Use con extrema precaución, ya que esto puede abrir su sistema a todo el tráfico y comprometer la seguridad.
Guardar Reglas Iptables
Guarda las reglas actuales de `iptables` en un archivo. En muchos sistemas, este archivo se usa para restaurar las reglas al inicio del sistema, garantizando la persistencia de las configuraciones del firewall.
sudo iptables-save > /etc/iptables/rules.v4
Estado General de Fail2Ban
Muestra el estado general del servicio Fail2Ban, incluyendo qué "jails" (servicios monitoreados, como SSH, Apache) están activos y el número total de IPs baneadas.
sudo fail2ban-client status
Estado Específico del Jail SSHd (Fail2Ban)
Muestra el estado específico del "jail" `sshd`, incluyendo cuántos IPs han sido baneados y qué IPs están actualmente baneadas para el servicio SSH. Útil para monitorear intentos de fuerza bruta.
sudo fail2ban-client status sshd
Desbloquear IP con Fail2Ban
Desbanea manualmente una dirección IP (`192.168.1.100`) del "jail" `sshd`. Útil si una IP legítima fue bloqueada accidentalmente o si el acceso necesita ser restaurado rápidamente.
sudo fail2ban-client set sshd unbanip 192.168.1.100
Recargar Configuración Fail2Ban
Recarga la configuración de Fail2Ban, aplicando cualquier cambio realizado en los archivos de configuración (ej: `jail.local`) sin la necesidad de reiniciar el servicio completo.
sudo fail2ban-client reload
⚖️ Load Balancing
Comandos para gestionar soluciones de balanceo de carga como HAProxy, Nginx e IPVS, asegurando distribución eficiente del tráfico.
Validar Configuración HAProxy
Valida la sintaxis del archivo de configuración de HAProxy (`/etc/haproxy/haproxy.cfg`) sin iniciar o reiniciar el servicio. Esencial para evitar errores antes de aplicar cambios en producción.
haproxy -f /etc/haproxy/haproxy.cfg -c
Reiniciar Servicio HAProxy
Reinicia el servicio HAProxy. Esto aplica nuevas configuraciones y puede causar una breve interrupción en el servicio, dependiendo de la configuración de alta disponibilidad.
sudo systemctl restart haproxy
Información de HAProxy vía Socket
Muestra información general sobre el estado de ejecución de HAProxy, como versión, tiempo de actividad (uptime), número de procesos y estadísticas de sesión. Requiere `socat` y acceso al socket de control de HAProxy.
echo "show info" | socat stdio /var/run/haproxy.sock
Estadísticas de HAProxy vía Socket
Muestra estadísticas detalladas sobre los frontends, backends y servidores, incluyendo conexiones activas, sesiones, tasas de solicitud y errores. Útil para monitoreo de rendimiento y salud de los servidores.
echo "show stat" | socat stdio /var/run/haproxy.sock
Probar Configuración Nginx
Prueba la sintaxis del archivo de configuración de Nginx. Es crucial ejecutar este comando antes de recargar o reiniciar Nginx para asegurar que no hay errores de configuración que puedan tumbar el servicio.
Recargar Configuración Nginx
Recarga la configuración de Nginx sin tumbar las conexiones existentes. Es la manera preferida de aplicar cambios en la configuración de un servidor Nginx en producción, garantizando cero downtime.
Estado del Nginx Load Balancer
Realiza una petición HTTP HEAD a la URL de estado de Nginx (si está configurada), mostrando métricas como conexiones activas, conexiones aceptadas y conexiones manejadas. Requiere el módulo `ngx_http_stub_status_module`.
curl -I http://localhost/nginx_status
Monitorizar Logs de Acceso Nginx
Monitoriza en tiempo real el archivo de log de acceso de Nginx, mostrando las peticiones HTTP a medida que llegan al servidor. Útil para depuración, observación del tráfico e identificación de patrones de acceso.
tail -f /var/log/nginx/access.log
Listar Reglas IPVS (Linux Virtual Server)
Lista todas las reglas de servicios virtuales y servidores reales configurados en IPVS (Linux Virtual Server). `-n` evita la resolución de nombres a IPs y puertos, haciendo la salida más rápida y concisa.
Añadir Servicio Virtual IPVS
Añade (`-A`) un servicio virtual TCP (`-t`) en la dirección `192.168.1.100` en el puerto 80, usando el algoritmo de programación `rr` (round-robin) para distribuir la carga entre los servidores reales.
sudo ipvsadm -A -t 192.168.1.100:80 -s rr
Añadir Servidor Real a IPVS
Añade (`-a`) un servidor real (`-r`) con IP `192.168.1.101` y puerto 80 al servicio virtual `192.168.1.100:80`, usando el método de enmascaramiento (`-m`).
sudo ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -m
Tasa de Conexiones IPVS
Lista las reglas de IPVS, incluyendo las tasas de conexión y tráfico para cada servicio virtual y servidor real, proporcionando métricas de rendimiento y uso en tiempo real.
🔐 VPN
Comandos para configurar, gestionar y monitorear conexiones VPN con OpenVPN, WireGuard e IPSec para comunicaciones seguras.
Estado del Servicio OpenVPN
Verifica el estado del servicio OpenVPN. En sistemas basados en `systemd`, muestra si el servidor o cliente OpenVPN está en ejecución, su tiempo de actividad (uptime) y actividad reciente. Útil para depuración.
sudo systemctl status openvpn
Conectar Cliente OpenVPN
Inicia una conexión OpenVPN como cliente, usando el archivo de configuración `client.ovpn`. Este comando se ejecuta en el lado del cliente para establecer el túnel VPN seguro.
openvpn --config client.ovpn
Iniciar Servidor OpenVPN en Daemon
Inicia el servidor OpenVPN en segundo plano (`--daemon`), usando el archivo de configuración `server.conf`. Requiere privilegios de root. El servidor queda escuchando por conexiones de clientes.
sudo openvpn --config server.conf --daemon
Monitorear Registros OpenVPN
Monitorea en tiempo real el archivo de registro (log) de OpenVPN, que registra eventos de conexión, autenticación, errores y desconexiones. Esencial para depuración y auditoría de la VPN.
tail -f /var/log/openvpn.log
Generar Claves WireGuard
Genera un par de claves criptográficas (privada y pública) para WireGuard. La clave privada se guarda en `private.key` y la pública en `public.key`. Fundamental para la configuración de peers.
wg genkey | tee private.key | wg pubkey > public.key
Activar Interfaz WireGuard
Activa la interfaz WireGuard `wg0` (o el nombre configurado), estableciendo la conexión VPN de acuerdo con la configuración en `/etc/wireguard/wg0.conf`. Requiere privilegios de root.
Estado de la VPN WireGuard
Muestra el estado actual de todas las interfaces WireGuard activas, incluyendo claves públicas, peers conectados, direcciones IP y tráfico de datos. Útil para verificar la conectividad y configuración.
Desactivar Interfaz WireGuard
Desactiva la interfaz WireGuard `wg0`, terminando la conexión VPN y eliminando las configuraciones de red asociadas. Requiere privilegios de root.
Estado de IPSec (strongSwan)
Muestra el estado general del servicio strongSwan IPSec, incluyendo información sobre las conexiones configuradas, túneles establecidos, peers y estadísticas de tráfico. Útil para monitoreo y depuración.
Iniciar Conexión IPSec
Inicia una conexión IPSec específica, identificada por `connection-name`, según lo configurado en los archivos de strongSwan (ej: `ipsec.conf`). Establece el túnel VPN.
sudo ipsec up connection-name
Terminar Conexión IPSec
Termina una conexión IPSec específica, liberando los recursos y el túnel VPN asociado. Desconecta el cliente o servidor de la VPN.
sudo ipsec down connection-name
Recargar Configuración IPSec
Recarga la configuración de strongSwan sin reiniciar el demonio, aplicando cualquier cambio realizado en los archivos de configuración de IPSec. Garantiza que las nuevas reglas entren en vigor.
⚡ Rendimiento y Optimización
Comandos para ajustar parámetros del kernel de red, configurar Calidad de Servicio (QoS) y realizar tests de rendimiento.
Mostrar Búfer Máximo de Recepción
Muestra el valor máximo del búfer de recepción de socket en bytes para todas las conexiones. Ajustar este valor puede mejorar el rendimiento en redes de alto ancho de banda y alta latencia, permitiendo que el sistema almacene más datos antes de procesarlos.
Mostrar Búfer Máximo de Envío
Muestra el valor máximo del búfer de envío de socket en bytes para todas las conexiones. Similar a `rmem_max`, su ajuste puede optimizar el throughput de envío, especialmente en escenarios de alta demanda.
Algoritmo de Controle de Congestionamento TCP
Exibe o algoritmo de controle de congestionamento TCP atualmente em uso (ex: `cubic`, `bbr`). A escolha do algoritmo pode impactar significativamente o desempenho da rede, especialmente em links com perda de pacotes ou alta latência.
sysctl net.ipv4.tcp_congestion_control
Tamaño de la Cola de Escucha TCP
Muestra el tamaño máximo de la cola de escucha para sockets TCP. Un valor bajo puede llevar a conexiones rechazadas (connection refused) en servidores con alto volumen de solicitudes, ya que las nuevas conexiones no pueden ser encoladas.
sysctl net.core.somaxconn
Mostrar Cola de Tráfico (Qdisc)
Muestra las disciplinas de encolamiento (qdisc - queueing discipline) configuradas para la interfaz de red `eth0`. Las qdiscs se usan para gestionar la forma en que los paquetes son encolados y transmitidos, siendo la base del QoS.
Crear HTB Qdisc para QoS
Crea una disciplina de encolamiento Hierarchical Token Bucket (HTB) como raíz (`root`) en la interfaz `eth0`, con handle `1:` y clase predeterminada `30`. HTB se usa para control de ancho de banda jerárquico, permitiendo priorización y limitación.
sudo tc qdisc add dev eth0 root handle 1: htb default 30
Limitar Ancho de Banda con Clase HTB
Añade una clase HTB (`classid 1:1`) bajo el qdisc padre `1:` en la interfaz `eth0`, limitando la tasa de salida a 1 Megabit por segundo (`rate 1mbit`). Esto permite controlar el ancho de banda disponible para tráfico específico.
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit
Filtrar Tráfico por Puerto para QoS
Añade un filtro para dirigir el tráfico IP de destino en el puerto 80 (`dport 80`) a la clase `1:10` (que debe ser definida previamente con una tasa o prioridad). `u32` es un clasificador potente para reglas de filtrado complejas.
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:10
Eliminar Configuración QoS
Elimina la disciplina de encolamiento raíz (`root`) de la interfaz `eth0`, desactivando todas las reglas de QoS configuradas para esa interfaz. Esto restaura el comportamiento predeterminado de encolamiento.
sudo tc qdisc del dev eth0 root
Iniciar Servidor Iperf3
Inicia el servidor `iperf3`, que espera conexiones de clientes para realizar pruebas de throughput de red. El servidor escucha en el puerto predeterminado 5201. Esencial para medir el ancho de banda entre dos puntos.
Prueba de Throughput con Iperf3
Inicia una prueba de throughput como cliente `iperf3`, conectándose a `server_ip` y ejecutando la prueba durante 30 segundos (`-t 30`). Muestra el ancho de banda promedio alcanzado durante el período.
iperf3 -c server_ip -t 30
Prueba de Latencia con Ping (Resumen)
Realiza 100 pings con un intervalo de 0.1 segundos a `server_ip` y muestra solo la última línea de la salida, que contiene el resumen de las estadísticas de latencia (min/avg/max/mdev). Útil para pruebas rápidas de latencia.
ping -c 100 -i 0.1 server_ip | tail -1
Probar Puerto Abierto con Netcat
Prueba si un puerto específico (en este caso, 80) está abierto y accesible en un `server_ip`. La flag `-z` realiza un escaneo sin enviar datos, y `-v` proporciona salida verbosa, indicando éxito o fallo en la conexión.
netcat -z -v server_ip 80