Por que "nc -l xxxx" não está abrindo uma porta?

14

Estou tentando fazer com que o netcat ouça na porta 4444, mas não parece estar funcionando. Estou verificando se a porta está aberta usando o nmap, mas ela não atende e não consigo entender o porquê. Eu tentei vários portos sem alegria.

Aqui está uma cópia do meu terminal para que você possa ver o que estou fazendo e o que tentei:

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

Respostas:

18

Executei o modo detalhado -ve recebi uma pista de volta:

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

então tentei especificar uma porta -passim nc -lvp 4444e funciona:

listening on [any] 4444 ...

Obviamente, eu preciso usar -pcom -lcom esta versão do nc.

Eu adoraria se alguém pudesse me dizer por que existe essa diferença. Estou executando uma versão antiga? ( -hrelatórios v1.10-38)

Grezzo
fonte
5
Existem várias versões diferentes do Netcat (nc). A -lpsintaxe é da versão original do Hobbit, acredito. As versões derivadas do BSD proíbem o uso de -pwith -l. Muitos não suportam -e. Sempre verifique a página do manual da instalação ou a -hopção de saída.
bonsaiviking
1
Apenas para satisfazer sua pergunta sobre se você está executando uma versão antiga, eu diria que sim. 1,89-3 aqui.
tao
1
Obrigado rapazes. Isso explica a inconsistência entre meu Linux nc (versão hobbit / debian) e meu OS X nc (versão BSD).
Grezzo 31/07
Você provavelmente já instalado netcat-traditionalem vez de netcatounetcat-openbsd
SeMeKh
Em Debian é necessária 8,6 -p nova instalação para a porta, e eu posso confirmar que netcat-tradicional está instalado por padrão (verificada por apt)
George Vasiliou