Netcat - Como escutar em uma porta TCP usando o endereço IPv6?

7

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 o -6 estava nas versões anteriores de nc ).

Se eu digitar nc -lvnp 2222 e verificar 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      -
    
por bashbin 21.07.2018 / 18:35

2 respostas

9

Existem pelo menos 3 ou 4 implementações diferentes do netcat como visto no Debian:

  • netcat-traditional 1.10-41 o original que não suporta IPv6: provavelmente o que você instalou.
  • netcat6 que foi feito para oferecer IPv6 (oldstable, substituído).
  • netcat-openbsd 1.130-3. Suporta IPv6.
  • ncat 7.70 + dfsg1-3 provavelmente um pouco mais novo, pois não no Debian estável, fornecido por nmap suporta o IPv6.

Eu iria para o openbsd. Cada versão pode ter uma sintaxe sutilmente diferente, por isso tome cuidado.

A propósito: socat é uma ferramenta muito melhor para realmente fazer muito mais do que o netcat. Você deveria tentar!

    
por 21.07.2018 / 20:35
3

Eu acredito que a funcionalidade do ipv4 & ipv6 é de fato um resultado de confusão em torno de haver múltiplas implementações (forks) ou versões completamente diferentes. Se você pesquisar, você encontrará várias menções de nc6 . Esta implementação parece estar nas distros baseadas no BSD.

Eu tentaria instalar nc6 em sua distro em particular e executá-lo em vez de nc para suporte a ipv6.

Mais pesquisas

Consegui encontrar este compromisso datado de 2018-01-11- adicionar patch IPv6 que claramente está adicionando a funcionalidade IPv6 de volta ao que você está chamando de mais recente versão do netcat.

OBSERVAÇÃO: só tenho acesso a nc 7.50 em meus sistemas e, como você descreve, suporta -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: link .

Se você quiser uma lista exaustiva das várias implementações, isso está disponível na pergunta da Wikipédia sobre o Netcat .

The original version of netcat was a Unix program. The last version (1.10) was released in March 1996.1

Na maioria das distribuições Linux, o GNU netcat ou a versão NMAP parecem ser o que a maioria está usando:

There are several implementations on POSIX systems, including rewrites from scratch like GNU netcat[5] or OpenBSD netcat,6 the latter of which supports IPv6 and TLS. The OpenBSD version has been ported to the FreeBSD base7 and Windows/Cygwin.8 Mac OS X comes with netcat installed as of OSX 10.13 or users can use MacPorts to install a variant.[9] There is also a Microsoft Windows version of netcat available.[10]

Por exemplo, no CentOS 7.x:

$ nc --version
Ncat: Version 7.50 ( https://nmap.org/ncat )

$ rpm -qf /bin/nc
nmap-ncat-6.40-13.el7.x86_64
    
por 21.07.2018 / 20:35

Tags