Dlaczego „nc -l xxxx” nie otwiera portu?

15

Próbuję zmusić netcat do nasłuchiwania na porcie 4444, ale wydaje się, że nie działa. Sprawdzam, czy port jest otwarty za pomocą nmap, ale go nie odbiera i nie wiem, dlaczego. Próbowałem różnych portów bez radości.

Oto kopia mojego terminalu, abyś mógł zobaczyć, co robię i co próbowałem:

#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
źródło

Odpowiedzi:

18

Uruchomiłem tryb gadatliwy -vi otrzymałem wskazówkę:

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

więc próbowałem podać port w -pten sposób nc -lvp 4444i działa:

listening on [any] 4444 ...

Oczywiście muszę korzystać -pz -ltej wersji NC.

Bardzo bym chciał, gdyby ktokolwiek mógł mi powiedzieć, dlaczego jest taka różnica. Czy korzystam ze starej wersji? ( -hraporty v1.10-38)

Grezzo
źródło
5
Istnieje wiele różnych wersji Netcat (nc). -lpSkładnia jest od wersji oryginalnej Hobbit jest, jak sądzę. Wersje pochodzące z BSD zabraniają używania -pz -l. Wiele nie obsługuje -e. Zawsze sprawdź stronę podręcznika instalacji lub -hwyjście opcji.
bonsaiviking
1
Aby odpowiedzieć na pytanie, czy korzystasz ze starej wersji, powiedziałbym „tak”. 1.89-3 w magazynie tutaj.
tao
1
Dzięki chłopaki. To wyjaśnia niespójność między moim Linux nc (wersja hobbit / debian) a moim OS X nc (wersja BSD).
Grezzo
Prawdopodobnie zainstalowałeś netcat-traditionalzamiast netcatlubnetcat-openbsd
SeMeKh
W Debianie 8.6 świeża instalacja -p jest wymagana dla portu, i mogę potwierdzić, że netcat-tradycyjny jest domyślnie zainstalowany (zweryfikowany przez apt)
George Vasiliou