Connection Information

To perform the requested action, WordPress needs to access your web server. Please enter your FTP credentials to proceed. If you do not your credentials, you should your web host.

Connection Type

Connection Information

To perform the requested action, WordPress needs to access your web server. Please enter your FTP credentials to proceed. If you do not your credentials, you should your web host.

Connection Type

▷ Procurando telnet no RHEL 8? Tente nc

Procurando telnet no RHEL 8? Tente nc

Nota: O seguinte artigo irá ajudá-lo com: Procurando telnet no RHEL 8? Tente nc

Telnet é um protocolo de rede usado para ar remotamente um computador e fornece comunicação bidirecional baseada em texto. Portanto, você precisa de um servidor e cliente telnet para conversar entre si.

Telnet é um dos utilitários Linux/Windows populares que há muito cumpre seu propósito.

Um grande problema com o telnet em sistemas modernos é que ele não é seguro. Toda a comunicação em telnet acontece em texto simples e todo o tráfego de rede não é criptografado. Essencialmente, qualquer pessoa com o e ferramentas adequados pode bisbilhotar o tráfego da rede para ler esse tráfego. Como tal, a maioria dos sistemas operacionais Linux modernos não vem com o telnet pré-instalado, e outros recomendam não usá-lo.

Com o advento do protocolo SSH ou Secure Shell, que é mais do que um substituto criptografado para o telnet, o uso do telnet para o propósito pretendido está desatualizado há muito tempo. Mas há um uso alternativo do telnet que muitos es de sistema e entusiastas de tecnologia ainda usam, que é verificar a conectividade de portas T remotas.

Pode-se simplesmente verificar se a porta T remota está escutando e respondendo corretamente usando o comando telnet. O snippet abaixo mostra como podemos verificar se o google.com está ativo e funcionando verificando a conectividade HTTP/HTTPS.

$ 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.
$

Uma porta T que não esteja aberta ou ível se comportará como abaixo quando verificada com telnet:

$ telnet google.com 22
Trying 142.250.193.174...
^C
$

Isso facilita a solução de problemas simples de conectividade de rede em combinação com os comandos ping, traceroute ou tracepath, netstat etc.

Se estiver usando o RHEL 8 (ou versões ainda mais antigas do RHEL/CentOS), você tem a opção de usar nc (ou Ncat ou Network Connector), que oferece e a muitas opções relacionadas ao diagnóstico de rede. Discutiremos como instalar e usar esta ferramenta no RHEL8 e sistemas similares.

O que é nc?

nc (ou Ncat) é uma ferramenta de linha de comando de uso geral popular para ler, escrever, redirecionar e criptografar dados em uma rede. Originalmente escrito para o projeto nmap, agora existem várias implementações do Netcat disponíveis. Ele funciona com T e UDP em IPv4 e IPv6 e fornece casos de uso potenciais ilimitados.

Abaixo estão alguns dos principais recursos do utilitário nc:

  • Capacidade de encadear ncats juntos
  • Redirecionamento de portas T, UDP e SCTP para outros sites
  • Criptografe a comunicação com e SSL
  • e de proxy via SOCK4/5 ou proxies HTTP (incluindo autenticação)
  • a várias plataformas, incluindo Windows, Linux e macOS

Instalando nc

nc está disponível como parte dos repositórios padrão em sistemas RHEL. Para instalá-lo no sistema RHEL 7, basta emitir o comando abaixo no terminal:

$ sudo yum install -y nc

Para o sistema RHEL 8, você pode usar dnf como:

$ sudo dnf install -y nc

Verifique a conectividade T

Embora o nc ofereça uma série de recursos que am vários casos de uso em aplicativos, um dos mais comuns é durante a solução de problemas de rede no lugar do telnet.

nc pode mostrar se você pode ar uma porta T. Aqui está a sintaxe:

$ nc -vz <IP/DNS> <Port>

Como exemplo, se eu quiser verificar se consigo ar o Geekflare por http ou https. Posso verificar isso usando nc como mostrado abaixo (a porta 80 é para http enquanto 443 é 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.
$

Da mesma forma, uma porta não alcançável ou bloqueada mostrará uma saída como (vários endereços são verificados como pontos de DNS Geekflare para vários IPs):

$ 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
$

Verifique a conectividade UDP

O telnet só pode verificar a comunicação com uma porta T remota, enquanto o nc permite verificar a conectividade T e UDP.

nc pode simplesmente enviar pacotes UDP em vez de pacotes T padrão usando:

$ nc -vzu <IP/DNS> <Port>

Mas o UDP é um protocolo sem sessão, ao contrário do T, portanto, você não pode confirmar a conectividade UDP de ponta a ponta em todos os cenários possíveis apenas enviando pacotes UDP em uma extremidade, a menos que o processo de escuta na extremidade remota envie alguma resposta, nc não será capaz de julgar se o pacote enviado chegou ao destino ou não. Mas o nc oferece uma alternativa para determinar a conectividade UDP de ponta a ponta iniciando um ouvinte UDP, supondo que você tenha o adequado à CLI no servidor remoto.

Portanto, supondo que você precise verificar a conectividade UDP entre dois hosts Linux para DNS usando nc, uma maneira simples de fazer isso seria iniciar o servidor nc escutando na porta necessária:

$ sudo nc -ul <Port>

Para DNS, precisamos verificar a porta 53 que faria o comando acima como:

$ nc -ul 53

No lado do cliente, você precisaria iniciar outro processo nc que envia pacotes UDP para o servidor:

$ nc -u <IP/DNS> <Port>

O que faria nosso comando:

$ nc -u <IP/DNS> 53

Considerando que nada bloqueie o tráfego UDP para a porta 53 entre essas duas máquinas, o que você digitar e inserir em uma máquina deve ser visível nos outros hosts, como bate-papo bidirecional. Caso contrário, algum firewall está bloqueando a conectividade entre esses dois sistemas.

O modelo de servidor e cliente usando nc funciona perfeitamente para esses tipos de verificações simples de conectividade entre hosts. Como a verificação UDP acima, o nc também pode escutar pacotes T em uma determinada porta:

$ sudo nc -l <Port>

No lado do cliente, normalmente você pode enviar pacotes T para verificar a conectividade:

$ nc <IP/DNS> <Port>

O método nc servidor/cliente acima não é necessário no caso de conexões T (diferente do UDP), pois é um protocolo orientado à conexão e funciona com reconhecimentos. Qualquer processo de escuta trabalhando no T responderá diretamente a nc pacotes T.

Resumo

Este artigo resume como o utilitário nc funciona como um substituto direto para o telnet em sistemas Linux modernos no que diz respeito à verificação da conectividade da porta e fornece muito mais poder ao usuário final para diagnosticar e resolver problemas de rede.

A ajuda do nc pode ser ada usando o comando nc -h:

$ 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 T
      --sctp                 Use SCTP instead of default T
  -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-            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 informações mais detalhadas sobre o comando nc, consulte sua página de manual.

$ man nc