GNU/Linux >> Tutoriales Linux >  >> Linux

Los 17 mejores comandos de solución de problemas y redes de Linux para principiantes

Configuración de red, diagnóstico y solución de problemas generales de Linux son partes esenciales de la administración del sistema. Incluso para un desarrollador que trabaja con sistemas Linux, el conocimiento sobre comandos de red de Linux es una ventaja añadida.

En concreto, si quieres convertirte en ingeniero DevOps o formar parte de SRE, es fundamental conocer todos los comandos de solución de problemas de Linux ya que formarán parte de tus actividades del día a día.

Esta publicación cubrirá los importantes comandos de resolución de problemas y redes de Linux que están disponibles de forma nativa en los sistemas Linux.

¿Cuáles son los mejores comandos de solución de problemas y redes de Linux?

A continuación se muestra la lista de comandos de resolución de problemas disponibles de forma nativa.

Comando Descripción
hostname Para verificar y establecer el nombre de host del servidor.
host Para obtener detalles del DNS del host
ping Comprueba si se puede acceder al servidor remoto mediante el protocolo ICMP. También muestra el tiempo de ida y vuelta de los paquetes.
curl Una utilidad multiplataforma que se utiliza para transferir datos. Se puede utilizar para solucionar varios problemas de red.
wget Utilidad para descargar archivos. Se puede utilizar para solucionar problemas de conexión y conectividad de proxy.
ip Un reemplazo para ifconfig . Se puede usar para configurar y recuperar información sobre las interfaces de red de los sistemas
arp Utilidad para ver y administrar caché arp.
ss/netstat Principalmente utilizado para verificar las conexiones y PID en puertos y sockets Unix.
tracerout e Esta utilidad utiliza el protocolo ICMP y encuentra los saltos involucrados en la lectura del servidor de destino. También muestra el tiempo que tarda entre saltos.
mtr mtr es una mezcla de ping y traceroute . También proporciona información adicional, como hosts intermedios y capacidad de respuesta.
dig Le ayuda a obtener los registros DNS asociados con un nombre de dominio.
nslookup Comando similar a cavar.
nc utilidad para depurar sockets TCP/UDP.
telnet Se puede utilizar para probar la conectividad remota en los puertos
route Le ayuda a obtener toda la información de la tabla de rutas
tcpdump Esta utilidad lo ayuda a capturar paquetes de red y analizarlos en busca de problemas de red.
lsof enumere todos los archivos abiertos y la información del proceso que lo abrió

Comprendamos cada comando y veamos cómo podemos usarlo para solucionar problemas de Linux.

Nota importante: Cada comando/utilidad mencionado en esta publicación tiene muchas opciones y banderas. Cada comando tiene una página de manual y puede usarla para identificar los indicadores y las opciones que se requieren para su caso de uso. Por ejemplo, para ip comando, puede escribirlo man ip en la terminal para obtener todos los detalles sobre ese comando.

1. nombre de host

El comando de nombre de host se utiliza para ver el nombre de host de la máquina y configurar el nombre de host.

hostname

Puede usar el comando hostname para establecer un nuevo nombre de host para la máquina. Por ejemplo,

sudo hostname temp.com

Si configura el nombre de host usando “hostname ”, cuando reinicie la máquina, el nombre de host cambiará al nombre especificado en el archivo de nombre de host (por ejemplo:/etc/hostname).

Entonces, si desea cambiar el nombre de host de forma permanente, puede usar /etc/hosts archivo o archivo de nombre de host relevante presente en el servidor.

  1. Para máquinas ubuntu, puede cambiarlo en /etc/hostname archivo.
  2. Para RHEL, CentOS y Fedora, puede cambiarlo en /etc/sysconfig/network archivo.

2. anfitrión

El comando Host es para la búsqueda inversa de IP o un nombre DNS.

Por ejemplo, si desea encontrar un DNS adjunto con una IP, puede usar los comandos de host de la siguiente manera.

host 8.8.8.8

También puede hacer lo contrario para encontrar la dirección IP asociada con el nombre de dominio. Por ejemplo,

host devopscube.com

3. hacer ping

La utilidad de red ping se utiliza para comprobar si el servidor remoto es accesible o no. Se utiliza principalmente para verificar la conectividad y solucionar problemas de la red.

Proporciona los siguientes detalles.

  1. Bytes enviados y recibidos
  2. Paquetes enviados, recibidos y perdidos
  3. Tiempo aproximado de ida y vuelta (en milisegundos)

El comando ping tiene la siguiente sintaxis.

ping <IP or DNS>

Por ejemplo,

ping devopscube.com

Para hacer ping a la dirección IP

ping 8.8.8.8

Si desea limitar la salida de ping sin usar ctrl+c, puede usar el indicador "-c" con un número como se muestra a continuación.

ping -c 1 devopscube.com

4. rizo

La utilidad Curl se utiliza principalmente para transferir datos desde o hacia un servidor. Sin embargo, puede usarlo para solucionar problemas de red.

Para solucionar problemas de red, curl admite protocolos como DICT , FILE , FTP , FTPS , GOPHER , HTTP , HTTPS , IMAP , IMAPS , LDAP , LDAPS , MQTT , POP3 , POP3S , RTMP , RTMPS , RTSP , SCP , SFTP , SMB , SMBS , SMTP , SMTPS , TELNET y TFTP

Por ejemplo, curl puede verificar la conectividad en el puerto 22 usando telnet.

curl -v telnet://192.168.33.10:22

Puede verificar la conectividad FTP usando curl.

curl ftp://ftptest.net 

También puede solucionar problemas de conectividad del servidor web.

curl http://devopscube.com -I

5. wget

El wget El comando se usa principalmente para obtener páginas web.

Puedes usar wget para solucionar problemas de red también.

Por ejemplo, puede solucionar problemas de conexión del servidor proxy mediante wget.

wget -e use_proxy=yes http_proxy=<proxy_host:port> http://externalsite.com

Puede comprobar si un sitio web está activo recuperando los archivos.

wget www.google.com

6. ip (ifconfig)

ip El comando se utiliza para mostrar y manipular rutas e interfaces de red. ip El comando es la versión más nueva de ifconfig . ifconfig funciona en todos los sistemas, pero es mejor usar el comando ip en lugar de ifconfig.

Veamos algunos ejemplos de ip comando.

Mostrar dispositivos de red y configuración

ip addr

Puede usar este comando con tuberías y grep para obtener resultados más granulares, como la dirección IP de la interfaz eth0. Es muy útil cuando trabaja en herramientas de automatización que requieren que la IP se obtenga dinámicamente.

El siguiente comando obtiene la dirección IP de eth0 interfaz de red.

ip a | grep eth0  | grep "inet" | awk -F" " '{print $2}'

Obtener detalles de una interfaz específica

ip a show eth0

Puede enumerar las tablas de enrutamiento.

ip route
ip route list

7. arp

ARP (Protocolo de resolución de direcciones ) muestra la tabla de caché de las direcciones IP y las direcciones MAC de las redes locales con las que interactuó el sistema.

arp

Salida de ejemplo,

[email protected]:~$ arp
Address                  HWtype  HWaddress           Flags Mask            Iface
10.0.2.3                 ether   52:54:00:12:35:03   C                     eth0
192.168.33.1             ether   0a:00:27:00:00:00   C                     eth1
10.0.2.2                 ether   52:54:00:12:35:02   C                     eth0

8. ss (netstat)

El ss comando es un reemplazo para netstat . Todavía puedes usar el netstat comando en todos los sistemas.

Usando ss comando, puede obtener más información que netstat dominio. El comando ss es rápido porque obtiene toda la información del espacio de usuario del kernel.

Ahora echemos un vistazo a algunos usos de ss comando.

Lista de todas las conexiones

El “ss El comando ” enumerará todas las conexiones de socket TCP, UDP y Unix en su máquina.

[email protected]:~$ ss
Netid  State      Recv-Q Send-Q   Local Address:Port       Peer Address:Port
u_str  ESTAB      0      0                    * 7594                  * 0
u_str  ESTAB      0      0      @/com/ubuntu/upstart 7605                  * 0  
u_str  ESTAB      0      0                    * 29701                 * 0
u_str  ESTAB      0      0      /var/run/dbus/system_bus_socket 29702                 * 0
tcp    ESTAB      0      400      172.31.18.184:ssh         1.22.167.31:61808

La salida del ss El comando será grande para que pueda usar ” ss | less ” para hacer que la salida se pueda desplazar.

Filtrado de sockets TCP, UDP y Unix

Si desea filtrar los detalles del socket TCP, UDP o UNIX, use el indicador "-t", "-u" y "-x" con el comando "ss". Mostrará todas las conexiones establecidas a los puertos específicos. Si desea enumerar los puertos conectados y de escucha usando "a" con la bandera específica como se muestra a continuación.

ss -ta
ss -ua
ss -xa

Lista de todos los puertos de escucha

Para enumerar todos los puertos de escucha, use el indicador "-l" con el comando ss. Para enumerar sockets TCP, UDP o UNIX específicos, use el indicador "-t", "-u" y "-x" con "-l" como se muestra a continuación.

[email protected]:~$ ss -lt
State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port
LISTEN     0      128                     *:ssh                      *:*
LISTEN     0      50                     :::http-alt                 :::*
LISTEN     0      50                     :::55857                   :::*
LISTEN     0      128                    :::ssh                     :::*
LISTEN     0      50                     :::53285                   :::*
[email protected]:~$

Lista de todos los establecidos

Para listar todos los puertos establecidos, use el state established bandera como se muestra a continuación.

ss -t -r state established

Para listar todos los sockets en estado de escucha,

ss -t -r state listening

9. trazar ruta

Si no tiene un traceroute utilidad en su sistema o servidor, puede instalarlo desde el repositorio nativo.

traceroute es una utilidad de solución de problemas de red. Usando traceroute puede encontrar la cantidad de saltos necesarios para que un paquete en particular llegue al destino.

Por ejemplo,

traceroute google.com

Aquí está la salida.

traceroute to google.com (173.194.33.163), 30 hops max, 60 byte packets
 1  ec2-50-112-0-84.us-west-2.compute.amazonaws.com (50.112.0.84)  1.974 ms  1.895 ms  1.899 ms
 2  100.64.1.247 (100.64.1.247)  1.414 ms 100.64.1.137 (100.64.1.137)  1.127 ms 100.64.1.97 (100.64.1.97)  1.313 ms
 3  100.64.0.198 (100.64.0.198)  1.443 ms 100.64.0.62 (100.64.0.62)  2.160 ms 100.64.0.60 (100.64.0.60)  2.116 ms
10  66.249.94.214 (66.249.94.214)  6.313 ms  7.104 ms 209.85.249.34 (209.85.249.34)  5.986 ms
11  209.85.244.65 (209.85.244.65)  6.157 ms  6.341 ms  6.574 m.
.
12  sea09s18-in-f3.1e100.net (173.194.33.163)  6.302 ms  6.517 ms  6.071 ms
[email protected]:~$

El resultado anterior muestra el conteo de saltos (12) para llegar a google.com desde el servidor devopscube AWS ec2.

10. metros

El mtr La utilidad es una herramienta de diagnóstico de red para solucionar los cuellos de botella de la red. Combina la funcionalidad de ambos ping y traceroute

Por ejemplo, el siguiente comando muestra el traceroute salida en tiempo real.

mtr google.com

Aquí está la salida.

informe mtr

Puede generar un informe usando el indicador –report. Cuando ejecuta el informe mtr, envía 10 paquetes al destino y crea el informe.

mtr -n --report google.com

11. cavar

Si tiene alguna tarea relacionada con la búsqueda de DNS, puede usar “dig ” comando para consultar los servidores de nombres DNS.

Obtener todos los registros DNS con dig

El siguiente comando devuelve todos los registros DNS y la información TTL de un twitter.com

dig twiter.com ANY

Usa +short para obtener la salida sin detalles.

dig google.com ANY +short

Obtener registro DNS específico con dig

Por ejemplo, si desea obtener el A record para el nombre de dominio en particular, puede usar el comando dig. +short proporcionará la información sin detalles

dig www.google.com A +short

De manera similar, puede obtener la información de otros registros por separado usando los siguientes comandos.

dig google.com CNAME +short
dig google.com MX +short
dig google.com TXT +short
dig google.com NS +short

Búsqueda inversa de DNS con dig

Puede realizar una búsqueda inversa de DNS con dig usando el siguiente comando. Reemplazar 8.8.8.8 con la IP requerida

dig -x 8.8.8.8

12. nslookup

Nslookup (Búsqueda de servidor de nombres) se utiliza para comprobar las entradas de DNS. Es similar al comando de excavación.

Para verificar los registros DNS de un dominio, puede usar el siguiente comando.

nslookup google.com

También puede realizar una búsqueda inversa con la dirección IP.

nslookup 8.8.8.8

Para obtener todos los registros DNS de un nombre de dominio, puede usar lo siguiente.

nslookup -type=any google.com

Del mismo modo, puede consultar registros como mx , soa etc.

13. nc (netcat)

El nc El comando (netcat) se conoce como el ejército suizo de comandos de red.

Usando nc , puede verificar la conectividad de un servicio que se ejecuta en un puerto específico.

Por ejemplo, para comprobar si ssh puerto está abierto, puede usar el siguiente comando.

nc -v -n 192.168.33.10 22

netcat también se puede utilizar para la transferencia de datos a través de TCP/UDP y escaneo de puertos.

No se recomienda escanear puertos en entornos de nube. Debe solicitar al proveedor de la nube que realice operaciones de escaneo de puertos en su entorno.

14. telnet

El comando telnet se usa para solucionar problemas de las conexiones TCP en un puerto.

Para verificar la conectividad del puerto usando telnet, use el siguiente comando.

telnet 10.4.5.5 22

15. ruta

La “route El comando ” se utiliza para obtener los detalles de la tabla de rutas de su sistema y manipularla. Veamos algunos ejemplos del comando de ruta.

Lista de todas las rutas

Ejecute la “route ” comando sin ningún argumento para enumerar todas las rutas existentes en su sistema o servidor.

[email protected]:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         ip-172-31-16-1. 0.0.0.0         UG    0      0        0 eth0
172.17.0.0      *               255.255.0.0     U     0      0        0 docker0
172.31.16.0     *               255.255.240.0   U     0      0        0 eth0
[email protected]:~$

Si desea obtener la salida completa en forma numérica sin ningún nombre de host, puede usar el indicador "-n" con el comando de ruta.

[email protected]:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.31.16.1     0.0.0.0         UG    0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.31.16.0     0.0.0.0         255.255.240.0   U     0      0        0 eth0
[email protected]:~$

16. volcado tcp

El tcpdump El comando se utiliza principalmente para solucionar problemas de tráfico de red.

Nota: Para analizar la salida de tcpdump El comando requiere algo de aprendizaje, por lo que explicarlo está fuera del alcance de este artículo.

tcpdump El comando funciona con las interfaces de red del sistema. Por lo tanto, debe usar privilegios administrativos para ejecutar el comando.

Lista de todas las interfaces de red

Use el siguiente comando para enumerar todas las interfaces.

sudo  tcpdump --list-interfaces

Capturar paquetes en una interfaz específica

Para obtener el volcado de paquetes en una interfaz específica, puede usar el siguiente comando.

Nota: presione ctrl + c para dejar de capturar los paquetes.

sudo tcpdump -i eth0

Para limitar la captura de paquetes, puede usar -c bandera con el número.

Por ejemplo,

sudo tcpdump -i eth0 -c 10

Capturar paquetes en todas las interfaces

Para capturar paquetes en todas las interfaces, utilice any bandera como se muestra a continuación.

sudo tcpdump -i any

17. lsof

lsof es un comando que se usaría en la resolución de problemas de Linux del día a día. Este comando es igualmente importante para cualquiera que trabaje con sistemas Linux.

Para enumerar todos los archivos abiertos, ejecute lsof comando.

lsof

Uno de los errores comunes que enfrentan los desarrolladores y los ingenieros de DevOps es "Error de enlace fallido:la dirección ya está en uso “. Puede encontrar el ID de proceso asociado con un puerto usando el siguiente comando. Puede eliminar el proceso para liberar el puerto.

lsof -i :8080

Utilidades de solución de problemas de red de terceros

Hay más utilidades de línea de comandos para la solución de problemas de redes disponibles de soluciones de terceros.

Debe instalarlos por separado y usarlos para solucionar problemas. Por razones de cumplimiento de seguridad, no todas las organizaciones le permitirán hacerlo. Sin embargo, si tiene la opción de usar herramientas de terceros, puede explorarlas.

Conclusión

En este artículo, hemos cubierto las importantes utilidades de línea de comandos de Linux para configuración y resolución de problemas de red.

Si se está iniciando en la administración de sistemas, DevOps o roles SRE, es esencial conocer estas utilidades para respaldar los proyectos en los que está trabajando.

Cada utilidad tiene muchas funcionalidades y puede explorar más para cumplir con sus requisitos.

Si cree que nos hemos perdido algún comando importante, infórmenos en la sección de comentarios.

Además, si desea aprender a usar scripts de shell, consulte nuestra guía sobre cómo aprender a usar scripts de shell. Si son desarrolladores, consulten mi guía sobre los comandos de Linux que todo desarrollador debería conocer.


Linux
  1. 10 tutoriales de comandos de Linux para principiantes y expertos

  2. Tutorial de comando de nombre de host de Linux para principiantes (5 ejemplos)

  3. Comandos de Linux:descripción general y ejemplos

  4. Comandos de Linux:trabajos, bg y fg

  5. Los mejores comandos básicos de Linux para principiantes

Tutorial de comandos de Linux pushd y popd para principiantes (3 ejemplos)

Tutorial de comandos ss de Linux para principiantes (8 ejemplos)

Comando de localización de Linux para principiantes (8 ejemplos)

16 ejemplos prácticos del comando Linux LS para principiantes

Los 40 comandos útiles del servidor Linux para principiantes y profesionales

Tutoriales y ejemplos de comandos de Linux Head para principiantes