Este artículo es el primero de una serie centrada en las recomendaciones de comando de "fuentes multitudinarias". Le pregunté a un grupo de nuestros colaboradores principales cuáles eran sus comandos favoritos de Linux y los comentarios fueron abrumadores. Recibimos 46 comandos individuales y muchos de ellos fueron subrayados por múltiples envíos.
Esta serie representa la lista completa, desglosada por categoría. He llamado a estos siete primeros comandos "Comandos de red que todo el mundo debería saber".
Nota del editor :Evans Amoany proporcionó la información y los ejemplos del comando. Uno de nuestros Sudoers y un talentoso administrador de *nix. Gracias a Evans por hacer el trabajo pesado aquí.
[ También puede disfrutar: Redes de Linux:13 usos para netstat ]
ip
La ip
El comando es uno de los comandos básicos que todo administrador necesitará en el trabajo diario, desde la configuración de nuevos sistemas y la asignación de direcciones IP hasta la resolución de problemas de los sistemas existentes. La ip
El comando puede mostrar información de direcciones, manipular el enrutamiento y mostrar varios dispositivos, interfaces y túneles de la red.
La sintaxis es la siguiente:
ip
El OBJETO es la parte más importante de la sinopsis y se admite lo siguiente (algunos se omiten por brevedad):
dirección:dirección de protocolo (IPv4 o IPv6) en un dispositivo.
- túnel - túnel sobre IP
- ruta - entrada de la tabla de enrutamiento
- regla - regla en la base de datos de políticas de enrutamiento
- vrf:administre enrutamiento virtual y dispositivos de reenvío
- xfrm - administrar políticas IPSec
Estos son algunos casos de uso comunes para ip
comando.
Para mostrar las direcciones IP asignadas a una interfaz en su servidor:
[root@server ~]# ip address show
Para asignar una IP a una interfaz, por ejemplo, enps03 :
[root@server ~]# ip address add 192.168.1.254/24 dev enps03
Para eliminar una IP en una interfaz:
[root@server ~]# ip address del 192.168.1.254/24 dev enps03
Modifique el estado de la interfaz trayendo la interfaz eth0 en línea:
[root@server ~]# ip link set eth0 up
Modifique el estado de la interfaz trayendo la interfaz eth0 fuera de línea:
[root@server ~]# ip link set eth0 down
Modifique el estado de la interfaz cambiando la MTU de eth0 :
[root@server ~]# ip link set eth0 mtu 9000
Modifique el estado de la interfaz habilitando el modo promiscuo para eth0 :
[root@server ~]# ip link set eth0 promisc on
Agregue una ruta predeterminada (para todas las direcciones) a través de la puerta de enlace local 192.168.1.254 a la que se puede acceder en el dispositivo eth0 :
[root@server ~]# ip route add default via 192.168.1.254 dev eth0
Agregue una ruta a 192.168.1.0/24 a través de la puerta de enlace en 192.168.1.254:
[root@server ~]# ip route add 192.168.1.0/24 via 192.168.1.254
Agregue una ruta a 192.168.1.0/24 a la que se pueda acceder en el dispositivo eth0 :
[root@server ~]# ip route add 192.168.1.0/24 dev eth0
Elimine la ruta para 192.168.1.0/24 a través de la puerta de enlace en 192.168.1.254:
[root@server ~]# ip route delete 192.168.1.0/24 via 192.168.1.254
Mostrar la ruta tomada para IP 10.10.1.4:
[root@server ~]# ip route get 10.10.1.4
ifconfig
El ifconfig
El comando era/es un elemento básico en el cinturón de herramientas de muchos administradores de sistemas para configurar y solucionar problemas de redes. Desde entonces ha sido reemplazado por ip
comando discutido anteriormente. Sin embargo, si desea obtener más información al respecto, consulte nuestro artículo publicado anteriormente aquí.
metro
MTR (Matt's traceroute) es un programa con una interfaz de línea de comandos que sirve como herramienta de diagnóstico y solución de problemas de la red. Este comando combina la funcionalidad del ping
y traceroute
comandos Al igual que un traceroute
, el mtr
El comando mostrará la ruta desde una computadora a un host específico. mtr
proporciona muchas estadísticas sobre cada salto, como el tiempo de respuesta y el porcentaje. Con el mtr
comando, obtendrá más información sobre la ruta y podrá ver los dispositivos problemáticos en el camino. Si ve un aumento repentino en el tiempo de respuesta o una pérdida de paquetes, obviamente, hay un enlace defectuoso en alguna parte.
La sintaxis del comando es la siguiente:
mtr
Veamos algunos casos de uso comunes.
El mtr
básico El comando le muestra las estadísticas, incluidos cada salto (nombres de host) con tiempo y % de pérdida:
[root@server ~]# mtr google.com
Mostrar direcciones IP numéricas (si usa -g
, obtendrá direcciones IP (números) en lugar de nombres de host):
[root@server ~]# mtr -g google.com
Muestre también las direcciones IP numéricas y los nombres de host:
[root@server ~]# mtr -b google.com
Establezca el número de pings que desea enviar:
[root@server ~]# mtr -c 10 google.com
Obtener un informe del mtr
resultado del comando:
[root@server ~]# mtr -r -c 10 google.com > mtr-command-google-output
o:
[root@server ~]# mtr -rw -c 10 google.com > mtr-command-google-output
Forzar el uso de TCP en lugar de ICMP:
[root@server ~]# mtr –tcp google.com
Forzar el uso de UDP en lugar de ICMP:
[root@server ~]# mtr –udp google.com
Establecer la cantidad máxima de saltos:
[root@server ~]# mtr -m 35 216.58.223.78
Defina el tamaño del paquete:
[root@server ~]# mtr -r -s 50 google.com
Imprimir en salida CSV:
[root@server ~]# mtr –csv google.com
Imprimir en salida XML:
[root@server ~]# mtr –xml google.com
tcpdump
El tcpdump
El comando está diseñado para capturar y mostrar paquetes.
Puede instalar tcpdump
con el siguiente comando:
[root@server ~]# dnf install -y tcpdump
Antes de iniciar cualquier captura, debe saber qué interfaces tcpdump
puedo usar. En este caso, necesitará usar sudo o tener acceso de root.
[root@server ~]# tcpdump -D
1 eth0
2 nflog
3 nfqueue
4 usbmon1
5 any
6 lo (Loopback)
Si quieres captar tráfico en eth0 , puede iniciar eso con tcpdump -i eth0
salida de muestra:
[root@server ~]# tcpdump -i eth0
[root@server ~]# tcpdump -i eth0 -c 10
Capturar el tráfico hacia y desde un host
Puede filtrar el tráfico procedente de un host específico. Por ejemplo, para buscar tráfico procedente y dirigido a 8.8.8.8, utilice el comando:
[root@server ~]# tcpdump -i eth0 -c 10 host 8.8.8.8
Para el tráfico procedente de 8.8.8.8, utilice:
[root@server ~]# tcpdump -i eth0 src host 8.8.8.8
Para el tráfico saliente que va a 8.8.8.8, use:
[root@server ~]# tcpdump -i eth0 dst host 8.8.8.8
Capturar el tráfico hacia y desde una red
También puede capturar el tráfico hacia y desde una red específica con el siguiente comando:
[root@server ~]# tcpdump -i eth0 net 10.1.0.0 mask 255.255.255.0
o:
[root@server ~]# tcpdump -i eth0 net 10.1.0.0/24
También puede filtrar según el origen o el destino.
Basado en la fuente (tráfico proveniente de):
[root@server ~]# tcpdump -i eth0 src net 10.1.0.0/24
Basado en el destino (tráfico hacia):
[root@server ~]# tcpdump -i eth0 dst net 10.1.0.0/24
Capturar tráfico hacia y desde números de puerto
Captura solo el tráfico del puerto DNS 53:
[root@server ~]# tcpdump -i eth0 port 53
Para un host específico,
[root@server ~]# tcpdump -i eth0 host 8.8.8.8 and port 53
Para capturar solo tráfico HTTPS,
[root@server ~]# tcpdump -i eth0 -c 10 host www.google.com and port 443
Para capturar todos los puertos excepto los puertos 80 y 25,
[root@server ~]# tcpdump -i eth0 port not 53 and not 25
netstat
El netstat
herramienta para imprimir conexiones de red, tablas de enrutamiento, estadísticas de interfaz, conexiones enmascaradas y membresías de multidifusión. Esta utilidad es parte del paquete net-tool, al igual que ifconfig
. En el nuevo paquete iproute2, el ss
herramienta se utiliza para lograr los mismos objetivos.
Si netstat
no se encuentra en su sistema, instálelo con este comando:
[root@server ~]# dnf install net-tools
El uso principal de netstat
no tiene ningún parámetro:
[root@server ~]# netstat
Para uso avanzado, expanda netstat
comando con opciones:
netstat <options>
O enumere las opciones una por una:
netstat <option 1> <option 2> <option 3>
Para enumerar todos los puertos y conexiones independientemente de su estado o protocolo, utilice:
[root@server ~]# netstat -a
Enumere todos los puertos TCP ejecutando:
[root@server ~]# netstat -at
Enumere todos los puertos UDP con:
[root@server ~]# netstat -au
Para devolver una lista de solo puertos de escucha para todos los protocolos, use:
[root@server ~]# netstat -l
Enumere todos los puertos TCP de escucha con:
[root@server ~]# netstat -lt
Devuelva solo los puertos UDP de escucha ejecutando:
[root@server ~]# netstat -lu
Para enumerar los puertos de escucha de UNIX, use:
[root@server ~]# netstat -lx
Mostrar estadísticas para todos los puertos independientemente del protocolo con:
[root@server ~]# netstat -s
Enumere las estadísticas de los puertos TCP solo con:
[root@server ~]# netstat -st
Para ver las conexiones TCP con el PID/nombre del programa en la lista, utilice:
[root@server ~]# netstat -tp
Para encontrar un proceso que esté usando un número de puerto en particular, ejecute:
[root@server ~]# netstat -an | grep ‘:<port number>’
nslookup
Usa el nslookup
utilidad para consultar servidores de nombres de Internet de forma interactiva. Úselo para realizar consultas DNS y recibir nombres de dominio o direcciones IP, o cualquier otro registro DNS específico.
Considere los siguientes ejemplos comunes.
Para encontrar el registro A de un dominio:
[root@server ~]# nslookup example.com
Para comprobar los registros NS de un dominio:
[root@server ~]# nslookup -type=ns example.com
Para encontrar los registros MX responsables del intercambio de correo electrónico:
[root@server ~]# nslookup -query=mx example.com
Para encontrar todos los registros DNS disponibles de un dominio:
[root@server ~]# nslookup -type=any example.com
Para verificar el uso de un servidor DNS específico (en este caso, consulta usando el servidor de nombres específico ns1.nsexample.com):
[root@server ~]# nslookup example.com ns1.nsexample.com
Verificar los registros DNS A para ver las IP de un dominio es una práctica común, pero a veces es necesario verificar si una dirección IP está relacionada con un dominio específico. Para ello, necesita una búsqueda DNS inversa.
[root@server ~]# nslookup 10.20.30.40
ping
Ping es una herramienta que verifica la conectividad de nivel IP a otra computadora TCP/IP mediante el envío de mensajes de solicitud de eco del Protocolo de mensajes de control de Internet (ICMP). Se muestra la recepción de los mensajes de respuesta de eco correspondientes, junto con los tiempos de ida y vuelta. Ping es el comando TCP/IP principal que se utiliza para solucionar problemas de conectividad, accesibilidad y resolución de nombres.
ping
simple Los comandos toman solo un parámetro:el nombre de host o la dirección IP del host que desea verificar. Un simple ping
ejemplo es como a continuación:
[root@server ~]# ping google.com
PING google.com (216.58.206.174) 56(84) bytes of data.
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=1 ttl=56 time=10.7 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=2 ttl=56 time=10.2 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=3 ttl=56 time=10.4 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=4 ttl=56 time=10.4 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=5 ttl=56 time=17.3 ms
^C
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 10.219/11.844/17.381/2.773 ms
Tienes que detener el ping
comando presionando CTRL+C . De lo contrario, ping
hasta que lo detengas. Después de cada ping
comando, mostrará un informe resumido con la siguiente información:
- Min:tiempo mínimo que se tarda en obtener una respuesta del host al que se ha hecho ping desde su extremo.
- Promedio:tiempo promedio que se tarda en obtener una respuesta del host al que se le ha hecho ping desde su extremo.
- Máx.:tiempo máximo que se tarda en obtener una respuesta del host al que se ha hecho ping desde su extremo.
Además, verá TTL, que significa Time To Live. Ping usa un valor TTL numérico para intentar llegar a una computadora host determinada a través de la ruta de acceso. Esto también se conoce como límite de saltos.
Normalmente, cuando ejecuta un simple ping
comando sin pasar ningún parámetro adicional, Linux ping
ese anfitrión por una cantidad infinita de tiempo. Si quieres ping
un host diez veces, use el siguiente comando:
[root@server ~]# ping -c 10 google.com
Usa la opción -q
para ver solo el ping
resumen de estadísticas:
[root@server ~]# ping -c 10 google.com
En sistemas con múltiples interfaces, puede especificar la interfaz para el ping
comando a usar. Si el sistema tiene ambos eth0 y eth1 y quiero ping
usando el eth0 :
[root@server ~]# ping -I eth0 google.com
O use la dirección en la interfaz, asumiendo que la interfaz es 10.233.201.45 como IP:
[root@server ~]# ping -I 10.233.201.45 google.com
También puede ping
y especifique la versión de IP como v4 o v6:
[root@server ~]# ping -4 google.com
[root@server ~]# ping -6 google.com
Mientras hace ping a un host, encontrará una salida diferente del ping
resultados, incluidos los siguientes tres ejemplos.
Host de destino inalcanzable
La mejor razón posible es que no hay una ruta desde el sistema host local y hasta el host de destino deseado, o un enrutador remoto informa que no tiene una ruta hacia el host de destino.
Solicitud agotada
Este resultado significa que no se recibieron mensajes de respuesta de eco dentro del tiempo predeterminado de un segundo o el tiempo que estableció mientras hace ping a ese host. Esto puede deberse a muchas causas diferentes; los más comunes incluyen congestión de la red, falla de la solicitud ARP, filtrado de paquetes/cortafuegos, etc.
Host desconocido/La solicitud de ping no pudo encontrar el host
Tal vez escribió mal el nombre del host o el host no existe en absoluto en la red.
Debe tener un 0 % de pérdida de paquetes por cada ping
resultado con una buena latencia o menor tiempo de respuesta. Dependiendo del medio de transmisión (UTP, cable de fibra óptica, Wi-Fi) que esté utilizando, su latencia será diferente.
[ Hoja de referencia gratuita:obtenga una lista de utilidades y comandos de Linux para administrar servidores y redes. ]
Mirando hacia adelante
Debe agregar estos comandos y ejemplos a sus rutinas a medida que configura y soluciona los problemas de sus propias redes. Si encuentra útil este tipo de artículo, asegúrese de comunicarse con nosotros y háganoslo saber. Además, esté atento a la segunda parte de nuestra lista de comandos de la comunidad. El siguiente son 16 comandos generales de Linux de los que no puede prescindir.