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ón | Descripción |
|---|---|
| -c N | Limita el número de paquetes a enviar a N. |
| -i N | Intervalo 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.com2
Ping a una IP de Google DNSbash
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 localbash
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 Destino | TTL Inicial Típico |
|---|---|
| Windows (moderno) | 128 |
| Linux / macOS / FreeBSD | 64 |
| Sistemas Unix Antiguos | 255 |
| Solaris / AIX | 254 |
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)
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.
Ejemplo práctico
1
Trazar la ruta hasta Wikipediabash
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 Googlebash
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.
• 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.
| Comando | Función | Descripción |
|---|---|---|
| ip a | address | Muestra todas las direcciones IP de todas las interfaces. |
| ip r | route | Muestra la tabla de enrutamiento del kernel. |
| ip link set eth0 up | link | Activa la interfaz eth0 (requiere sudo). |
Ejemplos prácticos
1
Mostrar interfaces de red y sus IPsbash
ip a
# o también:
ip addressSalida 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 redbash
ip route
3
Levantar una interfazbash
sudo ip link set eth0 up4
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.
1
Ver interfaces de redbash
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 interfazbash
sudo ifconfig eth0 uphostname
Nombre del Host
$ hostname -I
| Opción | Descripción |
|---|---|
| hostname | Muestra el nombre del host actual. |
| -I | Muestra todas las direcciones IP locales del host. |
1
Ver nombre del host y sus IPsbash
hostname # Salida: Ubuntu-24-04 hostname -I # Salida: 192.168.1.50 172.17.0.1
2
Cambiar hostname temporalmentebash
sudo hostname nueva-maquina3
Cambiar hostname permanentementebash
sudo hostnamectl set-hostname nueva-maquinanetstat
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ón | Descripción |
|---|---|
| -tulpn | Muestra sockets tcp, udp, listening, programa/PID, numérico. |
| -r | Muestra la tabla de rutas (similar a ip r). |
| -ant | Muestra conexiones TCP establecidas. |
1
Ver todos los puertos de escucha y sus programasbash
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 abiertosbash
netstat -tuln
3
Ver conexiones TCP establecidasbash
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ón | Descripción |
|---|---|
| -l | Muestra solo los sockets en estado de listening (escucha). |
| -t | Muestra solo los sockets tcp. |
| -u | Muestra solo los sockets udp. |
| -p | Muestra el proceso que usa el socket. |
| -n | Muestra direcciones y puertos numéricos. |
1
Ver sockets abiertos TCP y UDPbash
ss -tuln2
Listar conexiones TCP establecidasbash
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ísticasbash
ss -s
4
Ver puertos usados por procesosbash
ss -plntnslookup
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 dominiobash
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íficobash
nslookup google.com 1.1.1.1dig
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.
| Opción | Descripción |
|---|---|
| @servidor | Especifica qué servidor DNS consultar. |
| TIPO | Especifica el tipo de registro (MX, NS, A, AAAA, TXT…). |
| +short | Muestra solo la respuesta, sin el output completo. |
Ejemplos prácticos
1
Consulta básicabash
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 personalizadobash
dig @8.8.8.8 openai.comcurl
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ón | Descripción |
|---|---|
| -O | Guarda la salida con el nombre remoto original. |
| -o archivo | Guarda la salida en el archivo especificado. |
| -I | Muestra solo los encabezados (Headers) HTTP. |
| -X POST | Enví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 webbash
curl https://example.com2
Descargar un archivo con su nombre originalbash
curl -O http://example.com/imagen.jpgSalida esperada
% Total % Received Average Speed Time 100 12.5M 100 12.5M 2388k 0:00:05
3
Guardar contenido en un archivobash
curl -o pagina.html https://example.com
4
Ver solo los encabezados HTTPbash
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ón | Descripción |
|---|---|
| -P /ruta/ | Especifica el directorio destino donde guardar el archivo. |
| -O nombre | Descarga y renombra el archivo. |
| -b | Ejecuta el comando en background (segundo plano). |
| --mirror | Modo espejo: descarga recursiva del sitio. |
| --convert-links | Modifica los enlaces para que funcionen localmente. |
1
Descargar un archivobash
wget https://example.com/archivo.zip2
Descargar a un directorio específicobash
wget -P /home/jose/Descargas/ http://example.com/documento.zip
3
Descargar y renombrarbash
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
| Comando | Alcance | Interfaz | Nivel |
|---|---|---|---|
| arp-scan -l | Red local automática | Automática | Mínimo (rápido) |
| arp-scan 192.168.1.0/24 | Rango especificado | Automática | Medio |
| arp-scan -I eth0 -g 192.168.1.0/24 | Rango especificado | Especí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 activosbash
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 activosbash
sudo nmap -sn 192.168.1.0/24
2
Escaneo rápido de puertos y serviciosbash
sudo nmap -T4 -F 192.168.1.0/24
| Comando | Objetivo | Tipo de Escaneo | ¿Muestra Puertos? |
|---|---|---|---|
| nmap -sn | Descubrir hosts activos | Ping Sweep | NO |
| nmap -T4 -F | Descubrir servicios abiertos | Escaneo rápido de puertos | SÍ |
masscan / unicornscan
Escaneo Rápido de Grandes Rangos
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 controladabash
sudo masscan 192.168.1.0/24 -p1-65535 --rate=1000
| 192.168.1.0/24 | Subred objetivo completa (256 IPs). |
| -p1-65535 | Escanea todos los 65.535 puertos TCP posibles. |
| --rate=1000 | Limita a 1000 paquetes/segundo para no saturar la red ni disparar IDS/IPS. |
unicornscan — escaneo asíncrono
2
Escaneo completo de todos los puertos TCPbash
sudo unicornscan -Iv 192.168.1.0/24:a
| -Iv | Verbose informativo: muestra detalles completos del proceso. |
| 192.168.1.0/24:a | Target + 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 conectividadbash
ping -c 4 1.1.1.1
2
Ver IP asignadabash
ip a
3
Ver rutas de redbash
ip route
4
Ver puertos abiertosbash
ss -tuln5
Consultar un dominio DNSbash
dig openai.com
6
Ver ruta hasta OpenAIbash
traceroute openai.com
7
Descargar página y ver encabezado HTTPbash
curl -I https://openai.com