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
era nas versões anteriores nc
).
Se eu digitar nc -lvnp 2222
e verificar as portas de atendimento netstat -punta
, o servidor parece estar atendendo na porta apenas 2222
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 -
socat
ferramenta. Aparentemente, tem muito mais opções, e as seguintes:socat tcp6-listen:2222
fizeram o trabalho.socat tcp6-listen:2222,reuseaddr -
(ou provavelmente emreuseport
vez disso) se você quiser usá-lo duas vezes seguidas quando o servidor (o comando socat) se desconectar primeiro.Eu acredito que a funcionalidade do ipv4 e ipv6 é de fato um resultado da confusão em torno de haver várias implementações (garfos) ou versões completamente diferentes. Se você pesquisar, tropeçará nas menções de
nc6
. Essa implementação parece estar nas distros baseadas no BSD.Eu tentaria instalar
nc6
em sua distribuição específica e executá-la em vez denc
obter suporte ao ipv6.Mais pesquisa
Consegui encontrar esse commit datado de 2018-01-11- adicionar patch IPv6 que claramente está adicionando a funcionalidade IPv6 de volta ao que você está chamando de versão mais recente do netcat.
NOTA: Só tenho acesso ao nc 7.50 nos meus sistemas e, como você descreve, suporta ambos
-4
e-6
.Eu suspeito que o que você acha que é uma versão mais recente do netcat é de fato 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:
fonte