Pourquoi «nc -l xxxx» n'ouvre pas un port?

14

J'essaie de faire écouter Netcat sur le port 4444, mais cela ne semble pas fonctionner. Je vérifie si le port est ouvert à l'aide de nmap, mais il ne le détecte pas et je ne peux pas comprendre pourquoi. J'ai essayé différents ports sans joie.

Voici une copie de mon terminal pour que vous puissiez voir ce que je fais et ce que j'ai essayé:

#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
la source

Réponses:

18

J'ai exécuté le mode verbeux -vet obtenu un indice:

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

j'ai donc essayé de spécifier un port -pcomme celui nc -lvp 4444-ci et cela fonctionne:

listening on [any] 4444 ...

Il est évident que je dois utiliser -pavec -lcette version de nc.

J'aimerais que quelqu'un me dise pourquoi il y a cette différence. Suis-je en train d'utiliser une ancienne version? ( -hrapports v1.10-38)

Grezzo
la source
5
Il existe de nombreuses versions différentes de Netcat (nc). La -lpsyntaxe vient de la version originale de Hobbit, je crois. Les versions dérivées de BSD interdisent l'utilisation de -pwith -l. Beaucoup ne soutiennent pas -e. Vérifiez toujours la page de manuel ou la -hsortie de l'option de votre installation .
bonsaiviking
1
Juste pour répondre à votre question de savoir si vous utilisez une ancienne version, je dirais que oui. 1.89-3 stock ici.
tao
1
Merci les gars. Cela explique l'incohérence entre mon Linux nc (version hobbit / debian) et mon OS X nc (version BSD).
Grezzo
Vous avez probablement installé netcat-traditionalau lieu de netcatounetcat-openbsd
SeMeKh
Dans Debian 8.6, une nouvelle installation -p est requise pour le port, et je peux confirmer que netcat-traditional est installé par défaut (vérifié par apt)
George Vasiliou