Estou usando a versão mais recente do netcat ( v1.10-41.1
) que parece não ter uma opção para endereços IPv6 (como -6
nas versões mais antigas do nc
).
Se eu digitar nc -lvnp 2222
e verificar as portas de escuta com netstat -punta
, o servidor parece estar escutando na porta 2222
apenas para endereços IPv4:
tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN 2839/nc
tcp6 não está ativo como, por exemplo, meu servidor apache2:
tcp6 0 0 :::80 :::* LISTEN -
Existem pelo menos 3 ou 4 implementações diferentes do netcat como visto no Debian:
Eu iria para o openbsd. Cada versão pode ter uma sintaxe sutilmente diferente, então tome cuidado.
A propósito: o socat é uma ferramenta muito melhor capaz de fazer muito mais do que o netcat. Você deveria tentar!
Acredito que a funcionalidade de ipv4 e ipv6 é de fato resultado da confusão em torno de haver várias implementações (forks) ou versões completamente diferentes. Se você pesquisar, encontrará menções de
nc6
. Esta implementação parece estar nas distribuições baseadas em BSD.Eu tentaria instalar
nc6
em sua distro especÃfica e executá-la em vez denc
para suporte a IPv6.Mais pesquisa
Consegui encontrar este commit datado de 2018-01-11- add IPv6 patch que claramente está adicionando a funcionalidade IPv6 de volta ao que você está chamando de versão mais recente do netcat.
NOTA: Eu só tenho acesso ao nc 7.50 em meus sistemas e, como você descreve, suporta tanto
-4
e-6
.Eu suspeito que o que você acha que é uma versão mais recente do netcat é na verdade uma versão muito mais antiga: http://nc110.sourceforge.net/ .
Se você quiser uma lista exaustiva das várias implementações, isso está disponÃvel na pergunta da Wikipedia sobre o Netcat .
Na maioria das distribuições Linux, o GNU netcat ou a versão NMAP parecem ser o que a maioria está usando:
Por exemplo, no CentOS 7.x: