Warum öffnet "nc -l xxxx" keinen Port?

14

Ich versuche, Netcat dazu zu bringen, Port 4444 abzuhören, aber es scheint nicht zu funktionieren. Ich überprüfe mithilfe von nmap, ob der Port geöffnet ist, aber er wird nicht erkannt, und ich kann nicht herausfinden, warum. Ich habe verschiedene Ports ohne Freude ausprobiert.

Hier ist eine Kopie meines Terminals, damit Sie sehen können, was ich tue und was ich versucht habe:

#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
quelle

Antworten:

18

Ich habe den ausführlichen Modus ausgeführt -vund einen Hinweis erhalten:

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

Also habe ich versucht, einen Port -pwie diesen anzugeben, nc -lvp 4444und es funktioniert:

listening on [any] 4444 ...

Offensichtlich muss ich verwenden -pmit -ldieser Version von nc.

Ich würde es lieben, wenn jemand sagen könnte, warum es diesen Unterschied gibt. Führe ich eine alte Version? ( -hBerichte v1.10-38)

Grezzo
quelle
5
Es gibt viele verschiedene Versionen von Netcat (nc). Die -lpSyntax stammt aus Hobbits Originalversion, glaube ich. Von BSD abgeleitete Versionen verbieten die Verwendung von -pwith -l. Viele unterstützen nicht -e. Überprüfen Sie immer die Manpage oder die -hOptionsausgabe Ihrer Installation .
Bonsaiviking
1
Um Ihre Frage zu beantworten, ob Sie eine alte Version verwenden, würde ich "Ja" sagen. 1.89-3 Lager hier.
Tao
1
Danke Leute. Das erklärt die Inkonsistenz zwischen meinem Linux nc (Hobbit / Debian-Version) und meinem OS X nc (BSD-Version).
Grezzo
Sie haben wahrscheinlich netcat-traditionalanstelle von netcatodernetcat-openbsd
SeMeKh
In Debian 8.6 ist eine Neuinstallation von -p für den Port erforderlich, und ich kann bestätigen, dass netcat-traditional standardmäßig installiert ist (überprüft von apt)
George Vasiliou