{"id":279,"date":"2022-04-18T15:27:09","date_gmt":"2022-04-18T18:27:09","guid":{"rendered":"https:\/\/guineves.com.br\/wp\/?p=279"},"modified":"2022-04-18T15:31:55","modified_gmt":"2022-04-18T18:31:55","slug":"como-testar-conexoes-sem-telnet","status":"publish","type":"post","link":"https:\/\/guineves.com.br\/wp\/?p=279","title":{"rendered":"Como testar conex\u00f5es sem telnet"},"content":{"rendered":"\n<p>Vamos a mais uma dica, dessa vez vou mostrar uma alternativa para testar conex\u00e3o entre 2 pontos sem utilizar execut\u00e1veis como telnet, netcat e afins.<\/p>\n\n\n\n<p>Para isso vamos fazer uso de um &#8220;<em>device file<\/em>&#8221; nativo chamado \/dev\/tcp.<\/p>\n\n\n\n<p>Utilizando esse m\u00e9todo, podemos observar alguns comportamentos, os quais irei detalhar abaixo:<\/p>\n\n\n\n<p>Vamos usar como exemplo um teste simples de conex\u00e3o com este site, na porta 443.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ &gt;\/dev\/tcp\/guineves.com.br\/443<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Conex\u00e3o OK<\/h3>\n\n\n\n<p>Caso, imediatamente ap\u00f3s dar um Enter, o cursor retorne para o terminal, sem mensagens, a conex\u00e3o foi estabelecida com sucesso.<\/p>\n\n\n\n<p>Isso pode ser confirmado verificando o &#8220;<em>exit code<\/em>&#8221; da \u00faltima execu\u00e7\u00e3o e vendo o retorno 0, que significa execu\u00e7\u00e3o sem erros.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ echo $? \n0<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Conex\u00e3o recusada<\/h3>\n\n\n\n<p>A seguinte informa\u00e7\u00e3o nos mostra, de forma geral, que a conex\u00e3o chegou at\u00e9 o host, mas que a porta n\u00e3o est\u00e1 aberta.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bash: connect: Connection refused \nbash: \/dev\/tcp\/guineves.com.br\/443: Connection refused<\/code><\/pre>\n\n\n\n<p>Nesse caso o retorno do comando \u00e9 1, indicando um erro.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ echo $? \n1<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Timeout<\/h3>\n\n\n\n<p>Agora, caso o comando prenda o terminal, \u00e9 sinal de que a tentativa de conex\u00e3o n\u00e3o chega no destino sugerindo, entre outros motivos, um bloqueio de firewall.<\/p>\n\n\n\n<p>Ao final do timeout (aqui ele leva 2 minutos para acontecer), a mensagem abaixo \u00e9 exibida e o c\u00f3digo de retorno tamb\u00e9m \u00e9 1.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bash: connect: Connection timed out \nbash: \/dev\/tcp\/guineves.com.br\/443: Connection timed out<\/code><\/pre>\n\n\n\n<p>E aqui vai uma dica dentro da dica \ud83d\ude00<\/p>\n\n\n\n<p>Podemos fazer uso do comando timeout para reduzir essa espera e um condicional <em>in-line<\/em> para analisar o retorno e indicar se houve sucesso ou falha.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ timeout 5 bash -c \"&gt;\/dev\/tcp\/guineves.com.br\/443\" &amp;&amp; echo \"Conex\u00e3o OK\" || echo \"Conex\u00e3o Falhou\"<\/code><\/pre>\n\n\n\n<p>Essa t\u00e9cnica pode ser utilizada para outros casos, e nada impede que voc\u00ea fa\u00e7a a analise do &#8220;$?&#8221; e a tratativa isolada.<\/p>\n\n\n\n<p>At\u00e9 a pr\u00f3xima!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Estou sem telnet e n\u00e3o consigo\/posso instalar! Como testar conex\u00f5es sem telnet?<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-279","post","type-post","status-publish","format-standard","hentry","category-dicas"],"_links":{"self":[{"href":"https:\/\/guineves.com.br\/wp\/index.php?rest_route=\/wp\/v2\/posts\/279","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/guineves.com.br\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/guineves.com.br\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/guineves.com.br\/wp\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/guineves.com.br\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=279"}],"version-history":[{"count":3,"href":"https:\/\/guineves.com.br\/wp\/index.php?rest_route=\/wp\/v2\/posts\/279\/revisions"}],"predecessor-version":[{"id":285,"href":"https:\/\/guineves.com.br\/wp\/index.php?rest_route=\/wp\/v2\/posts\/279\/revisions\/285"}],"wp:attachment":[{"href":"https:\/\/guineves.com.br\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/guineves.com.br\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/guineves.com.br\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}