Estoy usando la versión más reciente de netcat ( v1.10-41.1
) que no parece tener una opción para las direcciones IPv6 (como -6
estaba en las versiones anteriores de nc
).
Si escribo nc -lvnp 2222
y compruebo los puertos de escucha con netstat -punta
, el servidor parece estar escuchando en el puerto solo 2222
para direcciones IPv4:
tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN 2839/nc
tcp6 no está activo como, por ejemplo, mi servidor apache2:
tcp6 0 0 :::80 :::* LISTEN -
socat
herramienta. Aparentemente tiene muchas más opciones, y lo siguiente:socat tcp6-listen:2222
hizo el trabajo.socat tcp6-listen:2222,reuseaddr -
(o probablemente en sureuseport
lugar) si desea usarlo dos veces seguidas cuando el servidor (el comando socat) se desconecta primero.Creo que la funcionalidad de ipv4 e ipv6 es, de hecho, el resultado de la confusión en torno a la existencia de múltiples implementaciones (forks) o versiones completamente diferentes. Si busca, tropezará con menciones de
nc6
. Esta implementación parece estar en las distribuciones basadas en BSD.Intentaría instalar
nc6
en su distribución particular y ejecutarla en lugar denc
soporte para ipv6.Más investigación
Pude encontrar esta confirmación con fecha del 01-01-2018: agregue el parche IPv6 que claramente está agregando la funcionalidad IPv6 de nuevo a lo que llama la versión más nueva de netcat.
NOTA: Solo tengo acceso a nc 7.50 en mis sistemas y, como usted describe, es compatible con ambos
-4
y-6
.Sospecho que lo que crees que es una versión más nueva de netcat es, de hecho, una versión mucho más antigua: http://nc110.sourceforge.net/ .
Si desea una lista exhaustiva de las diversas implementaciones, está disponible en la pregunta de Wikipedia sobre Netcat .
En la mayoría de las distribuciones de Linux, GNU netcat o la versión NMAP parecen ser lo que la mayoría usa:
Por ejemplo, en CentOS 7.x:
fuente