Receitas - comandos úteis de rede para devs!
Tags: braziliandevs, tutorial, webdev, web
Published: 2021-06-16 12:32:36

---
title: Receitas - comandos úteis de rede para devs!
published: true
description: 
tags: braziliandevs, tutorial, webdev, web
cover_image: https://itexto.com.br/wp-content/uploads/2020/04/receitas-rede.jpg
---

<!-- wp:paragraph -->
<p>Se você escreve aplicações web ou precisa interagir com serviços remotos com certeza já passou por alguns dos problemas que vamos mostrar a solução aqui. Usaremos apenas duas ferramentas: os comandos telnet e netstat.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>E não daremos apenas uma receita, mas algumas!</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>Ingredientes</h2>
<!-- /wp:heading -->

<!-- wp:image {"id":1695,"sizeSlug":"large"} -->
<figure class="wp-block-image size-large"><img src="https://www.itexto.com.br/site/wp-content/uploads/2020/04/ingredientes.jpg" alt="" class="wp-image-1695"/></figure>
<!-- /wp:image -->

<!-- wp:list -->
<ul><li>Sistema operacional - usaremos o Linux como exemplo, mas pode substituir por Windows ou MacOS</li><li>netstat - nosso canivente suisso, disponível também pra Windows e MacOS</li><li>telnet - cujo uso nós vamos subverter aqui. Se estiver usando Windows, uma implementação muito fácil de ser usada é o <a href="https://www.putty.org/" class="rank-math-link">putty</a>.</li></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Se você usa Linux é quase certo que o comando telnet já está instalado, assim como o netstat. Caso não esteja, consulte a documentação da sua distribuição para aprender como proceder.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>No caso do MacOS o netstat já vêm como padrão, mas não o telnet. Aprenda a instalá-lo neste <a href="https://osxdaily.com/2018/07/18/get-telnet-macos/" class="rank-math-link">link</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Usaremos o Linux como base e em algumas receitas usamos o comando | (pipe) usado para direcionar a saída de um comando para que seja a entrada de outro. Se não conhece este recurso, leia <a href="https://www.guiafoca.org/cgs/guia/iniciante/ch-redir.html" class="rank-math-link">este texto</a> (seção 12.5) antes.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>As receitas do dia</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3>Use o telnet para verificar se um serviço de rede é acessível a partir da sua máquina</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>O telnet é um protocolo de rede que te permite se conectar a outros serviços usando o modo texto no formato pergunta/resposta. Essencialmente você envia comandos, a outra ponta os recebe e te responde na sequência. Como boa parte dos protocolos da internet estão neste formato, você pode usá-lo para interagir com boa parte destes serviços. </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Mas você também pode subverter seu uso se quiser apenas verificar se um serviço está online. Imagine que você queira verificar se sua máquina é capaz de acessar um servidor MySQL, por exemplo, cuja porta de comunicação é a 3306 e nesta máquina local <strong>não exista um cliente MySQL</strong>. Como você faz? Simples: use o modo "raw" do telnet com a sintaxe abaixo:</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">telnet [endereço/IP] [porta]</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>Vamos a um exemplo: quero ver se o MySQL está executando em minha máquina. Executo então o comando "telnet localhost 3306". Olha o resultado no meu console:</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":1696,"sizeSlug":"large"} -->
<figure class="wp-block-image size-large"><img src="https://www.itexto.com.br/site/wp-content/uploads/2020/04/image-6.png" alt="" class="wp-image-1696"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>O MySQL usa um protocolo binário, por isto esta resposta com caracteres estranhos. Se você ver esta resposta é sinal de que o serviço <strong>é acessível.</strong> Se eu quiser acessar um serviço que não está acessível, veja como seria a saída: no caso, supondo que a porta 1234 estivesse aberta no Google.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":1697,"sizeSlug":"large"} -->
<figure class="wp-block-image size-large"><img src="https://www.itexto.com.br/site/wp-content/uploads/2020/04/image-7.png" alt="" class="wp-image-1697"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>E você nunca terá uma resposta pois nada está escutando nesta porta (1234) no endereço google.com. Digite Ctrl-C para terminar a conexão. Você também pode obter uma resposta similar à exposta a seguir:</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":1698,"sizeSlug":"large"} -->
<figure class="wp-block-image size-large"><img src="https://www.itexto.com.br/site/wp-content/uploads/2020/04/image-8.png" alt="" class="wp-image-1698"/></figure>
<!-- /wp:image -->

<!-- wp:heading {"level":3} -->
<h3>Verificar quais as portas ativas no seu computador com netstat</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Já tentou subir um servidor na sua máquina e topou com mensagens de erro dizendo que a porta já está em uso? Esta receita com netstat te mostra como. Basta executar um comando:</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">netstat -tnlp</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>Você terá uma saída similar a esta:</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":1699,"sizeSlug":"large"} -->
<figure class="wp-block-image size-large"><img src="https://www.itexto.com.br/site/wp-content/uploads/2020/04/image-9-1024x282.png" alt="" class="wp-image-1699"/></figure>
<!-- /wp:image -->

<!-- wp:heading {"level":3} -->
<h3>Descobrir qual processo está usando uma porta com netstat</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>E agora vamos resolver aquele problema do "não foi possível iniciar seu servidor por que a porta está em uso"? Precisamos saber qual o processo. Imagine que nosso desejo seja saber que processo está usando a porta 8080. Como fazer isto?</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">netstat -tulpn | grep 8080</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>Ali ela ó!</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":1701,"sizeSlug":"large"} -->
<figure class="wp-block-image size-large"><img src="https://www.itexto.com.br/site/wp-content/uploads/2020/04/image-11.png" alt="" class="wp-image-1701"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Ao final da linha você vê o código do processo e qual programa está executando a porta. </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>O que quer dizer este "-tunlp"?</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li>t - lista apenas as conexões TCP</li><li>n - mostra os endereços no formato numérico</li><li>l - lista apenas os sockets que estão esperando conexões</li><li>p - expõe o nome do processo e seu identificador </li><li>u - expõe as conexões UDP caso deseje também</li></ul>
<!-- /wp:list -->

<!-- wp:heading -->
<h2>Como saber quantas conexões estão ativas em uma porta com netstat</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>A receita final: você quer saber quantas conexões estão ocorrendo contra uma porta em seu servidor. Vamos ao comando mágico usando como exemplo a porta 443?</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">netstat -anp | grep :443 | wc -l</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>O parâmetro -a representa conexões ativas. Na sequência filtramos todas as conexões na porta 443 e, finalmente, o filtro final, usando o comando "wc -l" do Linux, que nos retorna o número de linhas da saída.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Quer ver um exemplo?</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":1702,"sizeSlug":"large"} -->
<figure class="wp-block-image size-large"><img src="https://www.itexto.com.br/site/wp-content/uploads/2020/04/image-12.png" alt="" class="wp-image-1702"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Ali: 33 conexões ativas usando a porta 443 deste servidor. Esta receita é muito útil quando você precisa, por exemplo, verificar se há conexões com o banco de dados, se estão acessando seu site, etc.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>As deliciosas receitas da itexto</h2>
<!-- /wp:heading -->

<!-- wp:image {"align":"center","id":1693,"sizeSlug":"large"} -->
<div class="wp-block-image"><figure class="aligncenter size-large"><img src="http://beta.itexto.com.br/wp-content/uploads/2020/04/receitas-rede.jpg" alt="" class="wp-image-1693"/></figure></div>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Estas receitas tem como objetivo te dar um pontapé inicial para que possa resolver rapidamente seus problemas mais comuns. Naturalmente há muitas outras soluções para estes mesmos problemas e estas não são as melhores soluções. Tem sugestões? Mande pra nós!</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Esta receita faz parte do Livro de Receitas da itexto que abrimos recentemente para todos. Toda semana publicamos ao menos duas de nossas receitas aqui. Acreditamos que o Livro de Receitas seja uma importante ferramenta para aumentar a produtividade da sua equipe. Quer aprender a escrever o seu? Te contamos como fazer neste post, <a href="https://www.itexto.com.br/site/receitas-da-itexto/" class="rank-math-link">clique aqui</a>!</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Até as próximas receitas!</p>
<!-- /wp:paragraph -->