¿Por qué "nc -l xxxx" no abre un puerto?

14

Estoy tratando de hacer que netcat escuche en el puerto 4444, pero parece que no funciona. Estoy verificando si el puerto está abierto usando nmap, pero no lo recoge y no puedo entender por qué. He probado varios puertos sin alegría.

Aquí hay una copia de mi terminal para que pueda ver lo que estoy haciendo y lo que he intentado:

#iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination


# nmap localhost -p 4444

Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-07-31 16:37 BST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00019s latency).
Other addresses for localhost (not scanned): 127.0.0.1
PORT     STATE  SERVICE
4444/tcp closed krb524

Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds


# nc -l 4444 &
[1] 1951


# nmap  localhost -p 1-65535

Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-07-31 16:42 BST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000070s latency).
Other addresses for localhost (not scanned): 127.0.0.1
Not shown: 65532 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
7337/tcp  open  unknown
33507/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 1.37 seconds


# ps -e | grep nc
   12 ?        00:00:00 sync_supers
 1156 tty1     00:00:00 ck-launch-sessi
 1232 tty1     00:00:00 dbus-launch
 1274 ?        00:00:00 klauncher
 1951 pts/2    00:00:00 nc
Grezzo
fuente

Respuestas:

18

Ejecuté el modo detallado -vy obtuve una pista:

4444: inverse host lookup failed: Unknown server error : Connection timed out`
listening on [any] 41579 ...`

así que intenté especificar un puerto con -peste nc -lvp 4444y funciona:

listening on [any] 4444 ...

Obviamente necesito para usar -pcon -lesta versión de Carolina del Norte.

Me encantaría que alguien pudiera decirme por qué existe esta diferencia. ¿Estoy ejecutando una versión anterior? ( -hinformes v1.10-38)

Grezzo
fuente
55
Hay muchas versiones diferentes de Netcat (nc). La -lpsintaxis es de la versión original de Hobbit, creo. Las versiones derivadas de BSD prohíben el uso de -pwith -l. Muchos no son compatibles -e. Siempre revise la página de manual de instalación o la -hsalida de opciones.
bonsaiviking
1
Solo para satisfacer su pregunta sobre si está ejecutando una versión anterior, diría que sí. 1.89-3 stock aquí.
tao
1
Gracias chicos. Eso explica la inconsistencia entre mi Linux nc (versión hobbit / debian) y mi OS X nc (versión BSD).
Grezzo
Probablemente haya instalado en netcat-traditionallugar de netcatonetcat-openbsd
SeMeKh
En Debian 8.6, se requiere una instalación nueva -p para el puerto, y puedo confirmar que netcat-traditional está instalado por defecto (verificado por apt)
George Vasiliou