Como simular um cliente TCP/UDP usando Netcat

Neste guia, apresentaremos o modelo cliente-servidor e mostraremos como simular um cliente TCP/UDP usando uma ferramenta útil chamada Netcat – para que você possa estabelecer conexão usando o próprio terminal do seu computador.

Então, como funciona o modelo cliente-servidor na Internet das coisas? O cliente é o dispositivo que inicia a comunicação. O servidor é Ubidots (ou qualquer outra conexão de servidor), que aceitará conexões e gerenciará transferências de dados através de um protocolo simples como TCP ou UDP.

Para saber mais sobre como gerenciar seus dados com Ubidots , descubra como enviar dados para Ubidots por TCP ou UDP .

O que é Netcat?

Netcat é um utilitário de rede que lê e grava dados em conexões de rede, usando o protocolo TCP/IP. Projetado como uma ferramenta de “back-end” confiável, o Netcat pode ser usado diretamente com outros programas e scripts para enviar arquivos de um cliente para um servidor e vice-versa. Ao mesmo tempo, é uma ferramenta de depuração e exploração de rede rica em recursos que pode especificar parâmetros de rede e, ao mesmo tempo, estabelecer uma conexão com um host remoto por meio de um túnel.

Embora o Netcat possa fazer muitas coisas, seu objetivo principal e funções mais desejáveis ​​são:

1.Crie um soquete inicial para estabelecer uma conexão do servidor ao cliente.
2.Uma vez conectado, o Netcat irá gerar automaticamente um segundo soquete para transmitir arquivos do servidor para o cliente e vice-versa. (Esta é a parte muito legal).

Um diagrama da arquitetura do protocolo de dados do Netcat é mostrado abaixo:

Como você verá abaixo, esta solução simples também é extraordinariamente poderosa e flexível. Usaremos conexões locais por uma questão de simplicidade, embora, é claro, elas também possam ser usadas entre máquinas diferentes.

Sintaxe

nc [-opções] nome do host porta[s] [portas] nc -l -p porta [-opções] [nome do host] [porta]

Parâmetros básicos

  • -l: define o modo “ouvir”, aguarda as conexões de entrada.
  • -p: porta local.
  • -u: define o modo UDP.

Teste seu entendimento do Netcat como cliente-servidor

Abra dois terminais de computador – o primeiro atuará como servidor e o segundo como cliente.

Cliente TCP

Com o Netcat, seu PC pode ser convertido em um servidor. Você desejará começar como um servidor que escuta na porta 2399 :

$ nc-l 2399

Também podemos usar o servidor para conectar-se à porta aberta recentemente ( 2399 ) do do cliente :

$ nc localhost2399

Como você pode ver na imagem abaixo, a conexão está estabelecida:

Com a conexão estabelecida, agora você pode escrever no servidor a partir do cliente :

$ nc localhost 2399 Olá Servidor

No terminal onde o servidor está rodando, seus arquivos de texto aparecerão perfeitamente.

$ nc -l 2399 Olá servidor

Cliente UDP

Por padrão, o Netcat usa o TCP para se comunicar – mas também pode usar UDP com a -u .

Como mencionamos acima, o Netcat permite converter seu PC em um servidor. Aqui vamos estabelecer a conexão entre o servidor e o cliente usando UDP.

No do servidor , execute o comando abaixo. Como você pode ver, você só precisa adicionar -u ao comando para estabelecer a UDP :

$ nc -u -l 2399

Depois de iniciar o servidor, estabeleça a conexão com o cliente :

$ nc -u localhost2399

Agora o cliente e o servidor estão usando UDP para se comunicar. Você pode verificar a comunicação usando o comando netstat em um novo (terceiro) terminal de computador.

$ netstat | grep 2399 udp 0 0 localhost:2399 localhost:57508 ESTABELECIDO

Como você pode ver abaixo, a mensagem é recebida pelo servidor e a transmissão é verificada pela conexão:

Com esta introdução ao Netcat, você agora entende melhor como usar esta ferramenta avançada para enviar dados de forma rápida e eficiente entre cliente e servidor. Confira a página inicial do projeto Netcat para mais informações.

Feliz hacking! 🙂