12 comandos básicos de red que todo usuario de Linux debería conocer
Linux es un gran sistema operativo para redes. Es un sistema superior para servidores por una razón. Las distribuciones de Linux vienen preinstaladas con muchas herramientas de red y puedes instalar más desde tu administrador de paquetes. Éstos son algunos de los comandos de red de Linux que debe conocer.
1 ping
El comando de red más importante en Linux podría ser ping. Este comando le permite verificar si una máquina remota está respondiendo a sus solicitudes. Puede ver si su conexión a Internet está activa o si un servidor ha fallado.
El uso básico es ping seguido de una dirección IP o DNS:
ping linux-console.net
El ping se ejecutará para siempre hasta que presione Ctrl+C y luego le proporcione algunas estadísticas. Puede establecer un recuento con la opción -c, seguida de un número. ping entonces solo hará ping a una máquina esa cantidad de veces:
Por ejemplo, para hacer ping a linux-console.net cuatro veces:
ping -c 4 linux-console.net
No se alarme si no obtiene una respuesta. Muchos servidores están configurados para ignorar las solicitudes de ping por motivos de seguridad. Pruebe diferentes máquinas si quiere asegurarse de que su conexión a Internet esté funcionando.
Tenga cuidado al hacer ping a algunas máquinas. Algunos administradores pueden interpretar los pings repetidos como un intento de robo.
2 traceroute
Mientras que ping le indicará si un servidor está activo y escuchando solicitudes de ping, traceroute le mostrará las posibles rutas que tomarán sus paquetes desde su máquina hasta su destino.
Por ejemplo, para encontrar la ruta desde su máquina a HTG:
traceroute linux-console.net
Verás una lista de saltos que llenan la terminal. Probablemente verás muchas entradas en blanco. Esto también se debe a que muchas máquinas no escuchan los comandos ping. traceroute funciona configurando el TTL o "Tiempo de vida" de un paquete de Internet en cantidades crecientes para que fallen y devuelvan la ubicación de los servidores a lo largo de una posible ruta. Las rutas pueden cambiar cada vez que ejecuta traceroute.
3 metro
Es posible que no sepa si utilizar ping o traceroute. ¿Por qué no utilizar ambos? Eso es lo que hace mtr, o My Traceroute. mtr combina ping y traceroute en un solo programa. Obtienes la ruta que toman tus paquetes mientras puedes ver estadísticas. mtr corre continuamente. También se ejecuta en pantalla completa o como ventana GUI.
Lo fascinante es ver cómo las estadísticas se actualizan continuamente. mtr muestra el máximo y el mínimo, así como el promedio y la desviación estándar, o qué tan dispersos están estos valores alrededor del promedio. A menudo verás uno o dos saltos más lentos que los demás a lo largo del camino. Esto significa que hay un cuello de botella que retrasa el tráfico en el camino.
mtr también puede ilustrar cómo las rutas a través de la red entre máquinas pueden cambiar con cada ejecución.
4 ip
ip ha reemplazado a ifconfig como herramienta de configuración de Internet en la mayoría de las principales distribuciones de Linux. No tendrás que hacer mucho con él, ya que tu distribución manejará la mayoría de los dispositivos de red por sí sola. Puede ver información útil con ip. Por ejemplo, para mostrar sus direcciones IP actuales en sus dispositivos de red:
ip address
También puedes ver la ruta por donde irán tus paquetes:
ip route
Ejecutado por sí solo, ip mostrará los nombres de los dispositivos de red conectados, sus direcciones IP actualmente asignadas, así como la máscara de subred, la parte que pertenece a la red. Las interfaces Ethernet normalmente comienzan con "en".
5 netstat
netstat mostrará las conexiones abiertas en su máquina sin ningún argumento. La opción -r mostrará la tabla de enrutamiento.
Lo más probable es que necesites ser root para ejecutarlo por seguridad:
sudo netstat
netstat mostrará los sockets abiertos en su máquina y cuáles están escuchando. Puede utilizar esto para monitorear sus conexiones e investigar cualquier cosa que parezca sospechosa.
6 ruta
route, como su nombre lo indica, mostrará la tabla de enrutamiento de cualquier interfaz de red en su máquina. Generalmente será el enrutador o conmutador más cercano. Incluso puede agregar o eliminar rutas manualmente, pero probablemente no sea necesario en circunstancias normales en una máquina de escritorio estándar.
La línea "predeterminada" significa la ruta predeterminada de la red a la que irán las solicitudes. Este suele ser el enrutador o módem por cable más cercano si está conectado directamente a su máquina.
La mayoría de los sistemas de escritorio normales administran el enrutamiento automáticamente y, de todos modos, generalmente solo hay un lugar al que pueden ir en las redes residenciales, como su enrutador Wi-Fi.
7 ss
ss es una utilidad para volcar estadísticas de cualquier socket de su máquina al terminal. Esto es útil para encontrar conexiones de red abiertas. Al igual que netstat, es una herramienta útil para investigar sus conexiones de red y ver si hay algo conectado a su máquina que no debería estarlo. Puede desglosar sus conexiones por protocolo o socket.
ss y netstat son buenas maneras de aprender más sobre sockets o redes en general.
8 tcpdump
tcpdump es un rastreador de paquetes que es una contraparte basada en terminal del popular programa Wireshark. Con tcpdump, puede ver los paquetes que envía su máquina. Debido a que esto muestra todo el tráfico en una interfaz, normalmente necesitarás ser root para ejecutarlo:
sudo tcpdump
Esto mostrará todos los paquetes que se envían y reciben en la interfaz de red predeterminada en tiempo real. Este es un diagnóstico útil, pero también puede usarse para espiar el tráfico de Internet. Afortunadamente, hoy en día es más común que el tráfico de Internet esté encriptado, por lo que si alguien consiguiera sus transmisiones, sería inútil a menos que encontrara una manera de decodificarlas.
9 excavar
Si quieres saber quién está detrás de ese nombre de dominio, puedes usar el comando dig:
dig linux-console.net
Cuando ingresa un nombre de dominio, dig consultará los servidores DNS y mostrará los resultados. DNS es lo que conecta los nombres de dominio con la dirección IP. Los nombres de dominio serán "autoritarios", lo que significa que provienen de la dirección IP del dominio solicitado, o "recursivos", lo que significa que un servidor preguntó a otro servidor DNS cuál era la dirección.
La excavación mostrará la dirección IP asociada con el dominio en la sección "respuesta". También mostrará cuándo realizó la solicitud y cuánto tiempo tardó el servidor DNS en responder al final de la salida.
10 host
host también le brindará más información sobre un nombre de dominio, como qué servidores manejan el correo electrónico. Al igual que con dig, le indicará la dirección IP del nombre de dominio y qué servidores manejarán su correo electrónico.
Esta herramienta es más sencilla de leer que de excavar, ya que tiene menos información. Notarás que muchos sitios tienen múltiples servidores de correo, incluido HTG. Los múltiples servidores de correo normalmente corresponden a subdominios, como ventas.ejemplo.com para el equipo de ventas de ejemplo.com e ingeniería.ejemplo.com para el departamento de ingeniería, etc.
Probablemente lo que más le interese sea la primera línea, que le indica qué dirección respondió a la solicitud de DNS.
11 whois
whois devolverá los registros oficiales de un nombre de dominio, lo que puede resultar útil si necesita ponerse en contacto con un administrador de un sitio web para informar un problema. También es posible abusar de esto, razón por la cual es posible registrar un nombre de dominio de forma anónima.
Verá gran parte de la misma información en dig o host, pero también verá la información de contacto de quien registró el nombre de dominio. Si el propietario del sitio no quiere que nadie que sepa cómo ejecutar una consulta whois pueda acceder a su nombre y dirección, el nombre de dominio a menudo será registrado por una corporación que vende nombres de dominio, como GoDaddy. También verá cuándo se registró el nombre de dominio y cuándo caduca.
12 curl o wget
curl y wget son utilidades populares para descargar archivos desde servidores mediante la línea de comandos. wget seguirá automáticamente las redirecciones, pero curl es popular para secuencias de comandos. Algunas herramientas, como Oh My Zsh, te permitirán usar una de ellas como parte del proceso de instalación.
Para usar curl para descargar la página de inicio de linux-console.net:
curl linux-console.net
Y para wget:
wget linux-console.net
Si utiliza una de estas utilidades, tenga cuidado al rastrear el sitio de otra persona. Es mejor realizar una descarga exhaustiva desde una máquina de su propiedad o que tenga permiso para hacerlo. De lo contrario, podría interpretarse como un ataque al sitio.
La principal diferencia entre los dos es que curl se adapta mejor a la descarga de archivos individuales, mientras que wget puede seguir enlaces de un sitio para descargar otras páginas. Incluso puedes descargar una copia completa de un sitio web usando wget, lo cual es útil para hacer una copia de seguridad local si alguna vez falla.