Quais são as diferenças entre ncat, nc e netcat?

12

Não tenho certeza sobre quando usar nc , netcat ou ncat . Se alguém é a versão obsoleta do outro? Se alguém está disponível apenas em uma distribuição? Se é o mesmo comando, mas com nomes diferentes?

Na verdade, estou um pouco confuso. Minha pergunta vem de querer fazer um teste de velocidade de rede entre dois servidores CentOS 7. Me deparei com vários exemplos usando nc e dd , mas não muitos usando netcat ou ncat .

Alguém poderia esclarecer isso para mim, por favor?

    
por Pozinux 30.05.2017 / 19:40

2 respostas

15

nc e netcat são dois nomes para o mesmo programa (normalmente, um será um link simbólico para o outro). Embora - para muita confusão - haja duas implementações diferentes do Netcat ("tradicional" e "OpenBSD"), elas adotam opções diferentes e têm recursos diferentes.

O Ncat é a mesma ideia, mas do projeto Nmap. Há também socat , que é uma ideia semelhante. Também há /dev/tcp , um recurso de Bash (opcional).

No entanto, se você estiver procurando fazer testes de velocidade de rede, então todos dos itens acima são a resposta errada. Você está procurando por iperf3 ( site 1 ou site 2 ou código ).

    
por 30.05.2017 / 20:00
2

Olhando os pacotes no Debian, existem duas implementações diferentes do netcat ( nc ), eu acho que ambos instalam com netcat , bem como nc symlinked para o mesmo binário (Embora eles usem o sistema de "alternativas" do Debian para controlar qual das implementações aparece com o nome principal.) Esses dois são netcat-traditional ("o" clássico "netcat, escrito por Hobbit . Ele não possui muitos recursos encontrados no netcat-openbsd.") e netcat-openbsd (" a reescrita do OpenBSD no netcat, incluindo suporte para IPv6, proxies e sockets Unix. ").

ncat é a versão do netcat do Nmap Project que afirma ser "uma reimplementação muito melhorada da venerável Netcat" .

Todos os três parecem ter a mesma funcionalidade básica, como poder abrir um soquete e conectar ou escutar, mas para qualquer coisa acima disso, você pode querer verificar o manual da sua versão. (O OpenBSD não suporta -e para executar um comando após a conexão, por exemplo).

    
por 30.05.2017 / 20:00