Não tenho certeza sobre quando usar nc
, netcat
ou ncat
. Se uma é a versão obsoleta de outra? Se um estiver disponível apenas em uma distribuição? Se for o mesmo comando, mas com nomes diferentes?
Na verdade estou um pouco confuso. Minha dúvida vem do desejo de fazer um teste de velocidade de rede entre dois servidores CentOS 7. Me deparei com vários exemplos usando nc
and dd
mas não muitos usando netcat
or ncat
.
Alguém poderia me esclarecer isso por favor?
Responder1
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 - existam duas implementações diferentes do Netcat ("tradicional" e "OpenBSD"), e elas têm opções e recursos diferentes.
Ncat é a mesma ideia, mas do projeto Nmap. Há também socat
, que é uma ideia semelhante. Há também /dev/tcp
um recurso Bash (opcional).
No entanto, se você deseja fazer testes de velocidade de rede, entãotodosdas opções acima são a resposta errada. Você está procurando por iperf3 (local 1oulocal 2oucódigo).
Responder2
Olhando para os pacotes no Debian, existem duas implementações diferentes de netcat ( nc
), eupensarambos são instalados e vinculados netcat
simbolicamente nc
ao mesmo binário (embora usem o sistema "alternativo" do Debian para controlar qual implementação aparece com o nome principal.) Esses dois sãonetcat-traditional
("o netcat "clássico", escrito porHobbit. Faltam muitos recursos encontrados no netcat-openbsd.") enetcat-openbsd
("a reescrita do netcat no OpenBSD, incluindo suporte para IPv6, proxies e soquetes Unix.").
ncat
é a versão denetcat do Projeto Nmapafirmou ser "uma reimplementação muito melhorada do venerável Netcat".
Todos os três parecem ter a mesma funcionalidade básica, como abrir um soquete e conectar ou ouvir, mas para qualquer coisa acima disso, você pode verificar o manual da sua versão. (O OpenBSD não suporta -e
a execução de um comando após a conexão, por exemplo.)
Responder3
ncat suporta SSL, o que é ótimo para testar sessões https. nc/netcat requer que você use "openssl s_client ..."