
¿Busca telnet en RHEL 8? Prueba nc


Telnet es un protocolo de red que se utiliza para acceder de forma remota a una computadora y proporciona comunicación bidireccional basada en texto. Por lo tanto, necesita un servidor telnet y un cliente para comunicarse entre sí.
Telnet es una de las utilidades populares de Linux/Windows que ha cumplido durante mucho tiempo su propósito.
Un problema importante con telnet en los sistemas modernos es que no es seguro. Toda la comunicación en telnet ocurre en texto sin formato y todo el tráfico de red no está encriptado. Esencialmente, cualquier persona con el acceso y las herramientas adecuados puede husmear en el tráfico de la red para leer este tráfico. Como tal, la mayoría de los sistemas operativos Linux modernos no vienen con telnet preinstalado, y otros recomiendan no usarlo.
Con el advenimiento de SSH o el protocolo Secure Shell, que es más que un reemplazo encriptado de telnet, el uso de telnet para su propósito previsto ha quedado obsoleto durante mucho tiempo. Pero hay un uso alternativo de telnet que todavía usan muchos administradores de sistemas y entusiastas de la tecnología, que es verificar la conectividad de los puertos TCP remotos.
Uno puede simplemente verificar si el puerto TCP remoto está escuchando y respondiendo correctamente usando el comando telnet. El siguiente fragmento muestra cómo podemos verificar si google.com
está en funcionamiento comprobando HTTP/HTTPS
Conectividad.
$ telnet google.com 80
Trying 142.250.183.206...
Connected to google.com.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
$
$ telnet google.com 443
Trying 142.250.183.206...
Connected to google.com.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
$
Un puerto TCP que no está abierto o accesible se comportará como se muestra a continuación cuando se marque con telnet
:
$ telnet google.com 22
Trying 142.250.193.174...
^C
$
Esto facilita la resolución de problemas de conectividad de red simples en combinación con ping
, traceroute
or tracepath
, netstat
etc comandos.
Si usa RHEL 8 (o incluso versiones anteriores de RHEL/CentOS), tiene la opción de usar nc (o Ncat o Network Connector), que admite muchas opciones relacionadas con el diagnóstico de red. Discutiremos cómo instalar y usar esta herramienta en RHEL8 y sistemas similares.
What is nc?
nc (o Ncat) es una popular herramienta de línea de comandos de uso general para leer, escribir, redirigir y cifrar datos en una red. Originalmente escrito para nmap
proyecto, ahora hay múltiples implementaciones de Netcat disponibles. Funciona tanto con TCP como con UDP en IPv4 e IPv6 y proporciona casos de uso potenciales ilimitados.
A continuación se presentan algunas de las principales características de nc
utilidad:
- Habilidad de encadenar
ncats
juntos - Redirección de puertos TCP, UDP y SCTP a otros sitios
- Cifrar la comunicación con soporte SSL
- Compatibilidad con proxy a través de proxies SOCK4/5 o HTTP (incluida la autenticación)
- Admite múltiples plataformas, incluidas Windows, Linux y macOS
Installing nc
nc
está disponible como parte de los repositorios predeterminados en los sistemas RHEL. Para instalarlo en el sistema RHEL 7, simplemente emita el siguiente comando en la terminal:
$ sudo yum install -y nc
Para el sistema RHEL 8, puede usar dnf
como:
$ sudo dnf install -y nc
Check TCP Connectivity
Frente a nc
ofrece una serie de características que admiten una serie de casos de uso en todas las aplicaciones, uno de los más comunes es durante la resolución de problemas de red en lugar de telnet
.
nc
puede mostrar si puede llegar a un puerto TCP. Aquí está la sintaxis:
$ nc -vz <IP/DNS> <Port>
Como ejemplo, si quiero comprobar si puedo comunicarme con Geekflare a través de http
or https
. Puedo verificar eso usando nc
como se muestra a continuación (puerto 80
es para http
mientras 443
es para https
):
$ nc -vz geekflare.com 80
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Connected to 104.26.11.88:80.
Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds.
$
$ nc -vz geekflare.com 443
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Connected to 104.26.10.88:443.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
$
De manera similar, un puerto no accesible o bloqueado mostrará un resultado similar (se verifican varias direcciones ya que el DNS de Geekflare apunta a varias IP):
$ nc -vz geekflare.com 22
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Connection to 172.67.70.213 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection to 104.26.11.88 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection to 104.26.10.88 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection to 2606:4700:20::681a:a58 failed: Network is unreachable.
Ncat: Trying next address...
Ncat: Connection to 2606:4700:20::681a:b58 failed: Network is unreachable.
Ncat: Trying next address...
Ncat: Network is unreachable.
$
$ dig geekflare.com +short
104.26.10.88
172.67.70.213
104.26.11.88
$
Check UDP Connectivity
telnet
solo puede verificar la comunicación con un puerto TCP remoto mientras nc
le permite comprobar tanto la conectividad TCP como la UDP.
nc
puede simplemente enviar paquetes UDP en lugar de paquetes TCP predeterminados usando:
$ nc -vzu <IP/DNS> <Port>
Pero UDP es un protocolo sin sesión, a diferencia de TCP, por lo que no puede confirmar la conectividad UDP de extremo a extremo en todos los escenarios posibles simplemente enviando paquetes UDP en un extremo, a menos que el proceso de escucha en el extremo remoto envíe alguna respuesta, nc
no podrá juzgar si su paquete enviado llegó al destino o no. Pero nc
ofrece una alternativa para determinar la conectividad UDP de extremo a extremo mediante el lanzamiento de un agente de escucha UDP, suponiendo que tenga acceso adecuado a la CLI en el servidor remoto.
Entonces, suponiendo que necesita verificar la conectividad UDP entre dos hosts Linux para DNS usando nc
, una forma sencilla de hacerlo sería lanzar nc
servidor escuchando en el puerto requerido:
$ sudo nc -ul <Port>
Para DNS, necesitamos verificar el puerto 53
lo que haría el comando anterior como:
$ nc -ul 53
En el extremo del cliente, necesitaría lanzar otro nc
proceso que envía paquetes UDP al servidor:
$ nc -u <IP/DNS> <Port>
Lo que haría que nuestro comando:
$ nc -u <IP/DNS> 53
Teniendo en cuenta que nada bloquea el tráfico UDP para el puerto 53
entre estas dos máquinas, cualquier cosa que escriba e ingrese en una máquina debería ser visible en los otros hosts como un chat bidireccional. Si no, algunos cortafuegos está bloqueando la conectividad entre estos dos sistemas.
Modelo de servidor y cliente usando nc
funciona perfectamente para este tipo de controles de conectividad simples entre hosts. Al igual que la verificación UDP anterior, nc
también puede escuchar paquetes TCP en un puerto determinado:
$ sudo nc -l <Port>
En el extremo del cliente, normalmente puede enviar paquetes TCP para verificar la conectividad:
$ nc <IP/DNS> <Port>
El servidor/cliente anterior nc
El método no es necesario en el caso de conexiones TCP (a diferencia de UDP), ya que es un protocolo orientado a la conexión y funciona con reconocimientos. Cualquier proceso de escucha que funcione en TCP responderá directamente a nc
paquetes TCP.
Resumen
Este artículo resume cómo nc
utilidad se erige como un reemplazo directo para telnet
en los sistemas Linux modernos en lo que respecta a la verificación de la conectividad del puerto y proporciona mucho más poder al usuario final para diagnosticar y resolver problemas de red.
nc
Se puede acceder a la ayuda usando nc -h
mando:
$ nc -h
Ncat 7.70 ( https://nmap.org/ncat )
Usage: ncat [options] [hostname] [port]
Options taking a time assume seconds. Append 'ms' for milliseconds,
's' for seconds, 'm' for minutes, or 'h' for hours (e.g. 500ms).
-4 Use IPv4 only
-6 Use IPv6 only
-U, --unixsock Use Unix domain sockets only
-C, --crlf Use CRLF for EOL sequence
-c, --sh-exec <command> Executes the given command via /bin/sh
-e, --exec <command> Executes the given command
--lua-exec <filename> Executes the given Lua script
-g hop1[,hop2,...] Loose source routing hop points (8 max)
-G <n> Loose source routing hop pointer (4, 8, 12, ...)
-m, --max-conns <n> Maximum <n> simultaneous connections
-h, --help Display this help screen
-d, --delay <time> Wait between read/writes
-o, --output <filename> Dump session data to a file
-x, --hex-dump <filename> Dump session data as hex to a file
-i, --idle-timeout <time> Idle read/write timeout
-p, --source-port port Specify source port to use
-s, --source addr Specify source address to use (doesn't affect -l)
-l, --listen Bind and listen for incoming connections
-k, --keep-open Accept multiple connections in listen mode
-n, --nodns Do not resolve hostnames via DNS
-t, --telnet Answer Telnet negotiations
-u, --udp Use UDP instead of default TCP
--sctp Use SCTP instead of default TCP
-v, --verbose Set verbosity level (can be used several times)
-w, --wait <time> Connect timeout
-z Zero-I/O mode, report connection status only
--append-output Append rather than clobber specified output files
--send-only Only send data, ignoring received; quit on EOF
--recv-only Only receive data, never send anything
--allow Allow only given hosts to connect to Ncat
--allowfile A file of hosts allowed to connect to Ncat
--deny Deny given hosts from connecting to Ncat
--denyfile A file of hosts denied from connecting to Ncat
--broker Enable Ncat's connection brokering mode
--chat Start a simple Ncat chat server
--proxy <addr[:port]> Specify address of host to proxy through
--proxy-type <type> Specify proxy type ("http" or "socks4" or "socks5")
--proxy-auth <auth> Authenticate with HTTP or SOCKS proxy server
--ssl Connect or listen with SSL
--ssl-cert Specify SSL certificate file (PEM) for listening
--ssl-key Specify SSL private key (PEM) for listening
--ssl-verify Verify trust and domain name of certificates
--ssl-trustfile PEM file containing trusted SSL certificates
--ssl-ciphers Cipherlist containing SSL ciphers to use
--ssl-alpn ALPN protocol list to use.
--version Display Ncat's version information and exit
See the ncat(1) manpage for full options, descriptions and usage examples
$
Para obtener información más detallada sobre nc
comando, consulte su página de manual.
$ man nc
Más lecturas excelentes sobre Sysadmin
-
10 formas de corregir errores para jugar sin problemas a juegos de Steam en PCAnkush Das el 23 de junio de 2022
-
Pruebe estas 7 herramientas automáticas de detección de redes para pequeñas y medianas empresasDurga Prasad Acharya el 22 de junio de 2022
-
TCP frente a UDP: una guía de introducciónAmos Kingatua el 20 de junio de 2022
-
SQL Server Management Studio (SSMS): todo lo que debe saber en 2022Satish Shethi el 16 de junio de 2022
-
¿Está buscando Traceroute en RHEL 8? Prueba TracepathAbhishek Nair el 14 de junio de 2022
-
Las 6 mejores herramientas de monitoreo de puertos de switchDurga Prasad Acharya el 12 de junio de 2022
Únase al boletín de Geekflare
Cada semana compartimos artículos y herramientas de tendencia en nuestro boletín. Más de 10,000 personas disfrutan leyendo, ya ti también te encantará.