Ghost AcademySecLearn// Seguridad Informática
🐧 Linux Networking — Parte II

Comandos de Red II

Diagnóstico, consulta DNS, transferencia de datos y descubrimiento de red con herramientas modernas y clásicas.

11Comandos
40+Ejemplos
5Categorías
🏓
ping
Prueba de Conectividad ICMP
$ ping -c 4 8.8.8.8
ping (Packet InterNet Groper) es la herramienta fundamental para probar la conectividad a nivel de red (Capa 3). Envía paquetes ICMP Echo Request y espera una respuesta.
OpciónDescripción
-c NLimita el número de paquetes a enviar a N.
-i NIntervalo de segundos a esperar entre el envío de cada paquete.
Ejemplos prácticos
1
Comprobar acceso a internet (4 paquetes)
bash
ping -c 4 google.com
2
Ping a una IP de Google DNS
bash
ping -c 4 8.8.8.8
Salida esperada
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=25.4 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=25.3 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=25.5 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=117 time=25.4 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
3
Ping a una IP local
bash
ping -c 4 192.168.1.1
4
Ping continuo (Ctrl+C para parar)
bash
ping google.com
Interpretar el TTL
El valor TTL (Time To Live) que ves en la respuesta está directamente relacionado con el SO del host destino y el número de saltos que el paquete atravesó. El TTL recibido no es el inicial, sino TTL inicial − número de saltos.
Sistema Operativo del DestinoTTL Inicial Típico
Windows (moderno)128
Linux / macOS / FreeBSD64
Sistemas Unix Antiguos255
Solaris / AIX254
🎯
Detección de SO por TTL:
TTL de respuesta ~120 → probablemente Windows (128 − 8 saltos)
TTL de respuesta ~59 → probablemente Linux/macOS (64 − 5 saltos)
🛤️
traceroute
Trazar la Ruta de Paquetes
$ traceroute wikipedia.org
traceroute muestra la ruta (los saltos o hops) que toma un paquete para ir desde el host local hasta el destino, identificando cada router intermedio.
📦 Instalación:
bash
sudo apt install traceroute
Ejemplo práctico
1
Trazar la ruta hasta Wikipedia
bash
traceroute wikipedia.org
Salida esperada
traceroute to wikipedia.org (208.80.154.224), 30 hops max
 1  router.local (192.168.1.1)       1.234 ms  1.345 ms  1.456 ms
 2  ip-del-isp (10.0.0.1)            8.765 ms  9.876 ms 10.987 ms
 3  * * *
 4  backbone.isp.net (62.xx.xx.xx)  25.123 ms 26.234 ms 27.345 ms
 ... (Continúa hasta el destino)
2
Ver ruta hasta Google
bash
traceroute google.com
⚠️
¿Qué significa * * *? No significa que la conexión esté fallando. Las causas más comunes son:
• Firewall: el router bloquea paquetes ICMP.
• Tráfico congestionado: el router descarta ICMP para priorizar tráfico de datos.
• Ruta asimétrica: los paquetes de respuesta toman otra ruta o se pierden.
⚡
ip
Herramienta Moderna de Red Moderno
$ ip a
El comando ip es la herramienta moderna y preferida en Linux para configurar interfaces, rutas y túneles. Reemplaza a ifconfig y route.
ComandoFunciónDescripción
ip aaddressMuestra todas las direcciones IP de todas las interfaces.
ip rrouteMuestra la tabla de enrutamiento del kernel.
ip link set eth0 uplinkActiva la interfaz eth0 (requiere sudo).
Ejemplos prácticos
1
Mostrar interfaces de red y sus IPs
bash
ip a
# o también:
ip address
Salida esperada
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536
    inet 127.0.0.1/8 scope host lo
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP
    inet 192.168.1.50/24 brd 192.168.1.255 scope global dynamic ens33
2
Mostrar rutas de red
bash
ip route
3
Levantar una interfaz
bash
sudo ip link set eth0 up
4
Asignar IP manualmente (modo estático)
bash
sudo ip addr add 192.168.1.100/24 dev eth0
⚙️
ifconfig
Configuración de Interfaces Legado
ifconfig es la herramienta de configuración de red tradicional, reemplazada por ip en distribuciones modernas, pero sigue siendo útil y común. Requiere el paquete net-tools.
📦 Instalación:
bash
sudo apt install net-tools
1
Ver interfaces de red
bash
ifconfig
Salida esperada
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.50  netmask 255.255.255.0  broadcast 192.168.1.255
lo:    flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
2
Levantar interfaz
bash
sudo ifconfig eth0 up
🖥️
hostname
Nombre del Host
$ hostname -I
OpciónDescripción
hostnameMuestra el nombre del host actual.
-IMuestra todas las direcciones IP locales del host.
1
Ver nombre del host y sus IPs
bash
hostname
# Salida: Ubuntu-24-04

hostname -I
# Salida: 192.168.1.50 172.17.0.1
2
Cambiar hostname temporalmente
bash
sudo hostname nueva-maquina
3
Cambiar hostname permanentemente
bash
sudo hostnamectl set-hostname nueva-maquina
📋
netstat
Estadísticas de Red Legado
$ netstat -tulpn
netstat (network statistics) es una herramienta antigua para monitorear conexiones de red. Ha sido reemplazada por ss, que es más moderna y eficiente.
OpciónDescripción
-tulpnMuestra sockets tcp, udp, listening, programa/PID, numérico.
-rMuestra la tabla de rutas (similar a ip r).
-antMuestra conexiones TCP establecidas.
1
Ver todos los puertos de escucha y sus programas
bash
netstat -tulpn | grep LISTEN
Salida esperada
tcp   0  0  0.0.0.0:22      0.0.0.0:*  LISTEN  -   ← SSH
tcp   0  0  127.0.0.53:53   0.0.0.0:*  LISTEN  -   ← DNS local
2
Ver puertos abiertos
bash
netstat -tuln
3
Ver conexiones TCP establecidas
bash
netstat -ant
🔌
ss
Estadísticas de Socket Moderno
$ ss -tuln
ss es el reemplazo moderno de netstat, mucho más rápido y eficiente. Ya viene preinstalado en distribuciones modernas.
OpciónDescripción
-lMuestra solo los sockets en estado de listening (escucha).
-tMuestra solo los sockets tcp.
-uMuestra solo los sockets udp.
-pMuestra el proceso que usa el socket.
-nMuestra direcciones y puertos numéricos.
1
Ver sockets abiertos TCP y UDP
bash
ss -tuln
2
Listar conexiones TCP establecidas
bash
ss -t state established
Salida esperada
Netid  State   Recv-Q  Send-Q  Local Address:Port   Peer Address:Port
tcp    ESTAB   0       0       192.168.1.50:52345   142.250.203.14:443
tcp    ESTAB   0       0       192.168.1.50:48912   172.67.158.42:80
3
Ver resumen de estadísticas
bash
ss -s
4
Ver puertos usados por procesos
bash
ss -plnt
🔍
nslookup
Consulta DNS Legado
$ nslookup google.com
nslookup es una herramienta sencilla para realizar consultas DNS básicas. Ha sido reemplazada por dig para uso avanzado.
1
Encontrar la IP de un dominio
bash
nslookup google.com
Salida esperada
Server:     127.0.0.53
Address:    127.0.0.53#53

Non-authoritative answer:
Name:   google.com
Address: 142.250.186.46
2
Consultar usando un servidor DNS específico
bash
nslookup google.com 1.1.1.1
⛏️
dig
Domain Information Groper Moderno
$ dig google.com MX
dig es la herramienta preferida por los administradores de red para consultas DNS detalladas. Ofrece mucho más control y verbosidad que nslookup.
📦 Instalación:
bash
sudo apt install dnsutils
OpciónDescripción
@servidorEspecifica qué servidor DNS consultar.
TIPOEspecifica el tipo de registro (MX, NS, A, AAAA, TXT…).
+shortMuestra solo la respuesta, sin el output completo.
Ejemplos prácticos
1
Consulta básica
bash
dig google.com
2
Ver solo la IP (respuesta corta)
bash
dig +short google.com
3
Consultar registros MX (servidores de correo)
bash
dig google.com MX
Sección de respuesta (fragmento)
;; ANSWER SECTION:
example.com.  86400  IN  MX  10 mail.example.com.
4
Usar servidor DNS personalizado
bash
dig @8.8.8.8 openai.com
🌀
curl
Transferencia de Datos con URL
$ curl -I https://openai.com
curl es una herramienta versátil y potente para transferir datos con sintaxis de URL, compatible con HTTP, HTTPS, FTP y más.
OpciónDescripción
-OGuarda la salida con el nombre remoto original.
-o archivoGuarda la salida en el archivo especificado.
-IMuestra solo los encabezados (Headers) HTTP.
-X POSTEnvía una petición POST.
-d "datos"Envía datos en el cuerpo de la petición.
Ejemplos prácticos
1
Descargar una página web
bash
curl https://example.com
2
Descargar un archivo con su nombre original
bash
curl -O http://example.com/imagen.jpg
Salida esperada
  % Total    % Received  Average Speed  Time
100  12.5M  100  12.5M   2388k          0:00:05
3
Guardar contenido en un archivo
bash
curl -o pagina.html https://example.com
4
Ver solo los encabezados HTTP
bash
curl -I https://openai.com
Salida esperada
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Cache-Control: max-age=604800
...
5
Enviar datos por POST (formulario de login)
Envía usuario y contraseña en el cuerpo de una petición POST, como haría un navegador al iniciar sesión.
bash
curl -X POST -d "usuario=jose&clave=123" https://ejemplo.com/login
⬇️
wget
Descargador No Interactivo
$ wget https://example.com/archivo.zip
wget es una herramienta simple para descargar archivos de la web, ideal para scripts ya que opera de forma no interactiva (funciona en segundo plano sin terminal).
OpciónDescripción
-P /ruta/Especifica el directorio destino donde guardar el archivo.
-O nombreDescarga y renombra el archivo.
-bEjecuta el comando en background (segundo plano).
--mirrorModo espejo: descarga recursiva del sitio.
--convert-linksModifica los enlaces para que funcionen localmente.
1
Descargar un archivo
bash
wget https://example.com/archivo.zip
2
Descargar a un directorio específico
bash
wget -P /home/jose/Descargas/ http://example.com/documento.zip
3
Descargar y renombrar
bash
wget -O nuevo_nombre.zip https://example.com/archivo.zip
4
Descargar un sitio completo (modo espejo)
Rastrea recursivamente todo el contenido, descarga CSS/imágenes/JS, modifica los enlaces para uso local y guarda en la carpeta indicada.
bash
wget --mirror -p --convert-links -P /home/jose/sitio/ https://example.com/
📡
arp-scan
Descubrimiento de Hosts ARP
$ sudo arp-scan -l
arp-scan envía paquetes ARP para descubrir dispositivos activos en la red local. Es uno de los métodos más fiables para el descubrimiento de hosts a nivel de capa 2.
Variantes del comando
1
Escaneo local (más simple y rápido)
Detecta automáticamente la interfaz y subred, y escanea toda la red local.
bash
sudo arp-scan -l
2
Escaneo de un rango específico
Útil para escanear una red diferente a la conectada, o limitar el rango dentro de tu subred.
bash
sudo arp-scan 192.168.1.0/24
3
Escaneo con interfaz y rango específicos (máximo control)
El método más preciso. Necesario en sistemas con múltiples interfaces de red.
bash
sudo arp-scan -I eth0 -g 192.168.1.0/24
ComandoAlcanceInterfazNivel
arp-scan -lRed local automáticaAutomáticaMínimo (rápido)
arp-scan 192.168.1.0/24Rango especificadoAutomáticaMedio
arp-scan -I eth0 -g 192.168.1.0/24Rango especificadoEspecífica (eth0)Máximo control
🗺️
netdiscover
Descubrimiento Pasivo/Activo de Red
$ sudo netdiscover -r 192.168.1.0/24
1
Escaneo de rango (interfaz automática)
bash
sudo netdiscover -r 192.168.1.0/24
2
Escaneo con interfaz específica (recomendado)
bash
sudo netdiscover -i eth0 -r 192.168.1.0/24
✅
Buena práctica: Siempre usa -i para especificar la interfaz. Elimina ambigüedades y garantiza que los paquetes se envíen a través del segmento correcto, especialmente con múltiples interfaces de red.
💨
fping
Ping Masivo de Red
$ fping -a -g 192.168.1.0/24
fping permite hacer ping a múltiples hosts simultáneamente. La opción -a muestra solo los hosts activos y 2>/dev/null oculta los errores.
1
Escaneo básico de hosts activos
bash
fping -a -g 192.168.1.0/24 2>/dev/null
2
Escaneo con interfaz específica (más fiable)
bash
fping -I eth0 -g 192.168.1.0/24 -a 2>/dev/null
🛡️
nmap
Escáner de Red y Puertos
$ sudo nmap -sn 192.168.1.0/24
nmap es el escáner de red más popular. Puede detectar hosts activos, puertos abiertos, servicios y sistemas operativos.
nmap -sn → Ping Sweep
Solo detecta qué hosts están activos. No escanea puertos. Muy rápido.
nmap -T4 -F → Port Scan
Escanea los 100 puertos TCP más comunes a velocidad agresiva. Muestra servicios detectados.
1
Ping Sweep — descubrir hosts activos
bash
sudo nmap -sn 192.168.1.0/24
2
Escaneo rápido de puertos y servicios
bash
sudo nmap -T4 -F 192.168.1.0/24
ComandoObjetivoTipo de Escaneo¿Muestra Puertos?
nmap -snDescubrir hosts activosPing SweepNO
nmap -T4 -FDescubrir servicios abiertosEscaneo rápido de puertosSÍ
⚡
masscan / unicornscan
Escaneo Rápido de Grandes Rangos
📦 Instalación:
bash
sudo apt install masscan unicornscan
masscan — velocidad extrema
masscan puede escanear Internet completa en minutos. Requiere sudo para enviar paquetes RAW a alta velocidad.
1
Escanear todos los puertos con velocidad controlada
bash
sudo masscan 192.168.1.0/24 -p1-65535 --rate=1000
192.168.1.0/24Subred objetivo completa (256 IPs).
-p1-65535Escanea todos los 65.535 puertos TCP posibles.
--rate=1000Limita a 1000 paquetes/segundo para no saturar la red ni disparar IDS/IPS.
unicornscan — escaneo asíncrono
2
Escaneo completo de todos los puertos TCP
bash
sudo unicornscan -Iv 192.168.1.0/24:a
-IvVerbose informativo: muestra detalles completos del proceso.
192.168.1.0/24:aTarget + modo :a = todos los puertos TCP (1-65535).
⚠️
Precaución: Estas herramientas son extremadamente potentes. Úsalas solo en redes donde tengas autorización explícita. El uso no autorizado puede tener consecuencias legales.
✅
Checklist — Mapeo de Red
Fase de reconocimiento de red
Identificar interfaces y configuración
Configuración de red
Ver interfaces y IPs asignadas
bash
ip a
Ver tabla de rutas
bash
ip route
Ver IPs locales del host
bash
hostname -I
Comprobar conectividad básica
Ping
Ping a un host concreto
bash
ping -c 4 192.168.1.1
Ping broadcast (si está permitido)
bash
ping -b 192.168.1.255
Descubrimiento de hosts
ARP Scan
arp-scan local
bash
sudo arp-scan -l
netdiscover con interfaz
bash
sudo netdiscover -i eth0 -r 192.168.1.0/24
nmap ping sweep
bash
sudo nmap -sn 192.168.1.0/24
nmap escaneo rápido de puertos
bash
sudo nmap -T4 -F 192.168.1.0/24
🏋️
Ejercicio Práctico de Red
Secuencia de comandos completa
Ejecuta estos comandos en orden para hacer un reconocimiento y diagnóstico completo de tu red y conectividad.
1
Verificar conectividad
bash
ping -c 4 1.1.1.1
2
Ver IP asignada
bash
ip a
3
Ver rutas de red
bash
ip route
4
Ver puertos abiertos
bash
ss -tuln
5
Consultar un dominio DNS
bash
dig openai.com
6
Ver ruta hasta OpenAI
bash
traceroute openai.com
7
Descargar página y ver encabezado HTTP
bash
curl -I https://openai.com