Чому "nc -l xxxx" не відкриває порт?


15

Я намагаюся примусити netcat слухати порт 4444, але, здається, це не працює. Я перевіряю, чи відкрито порт за допомогою nmap, але він не піднімає його, і я не можу зрозуміти, чому. Я пробував різні порти без радості.

Ось копія мого терміналу, щоб ви могли бачити, що я роблю і що я спробував:

#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

Відповіді:


18

Я запустив багатослівний режим -vі отримав підказку:

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

тому я спробував вказати порт із -pтаким, nc -lvp 4444і він працює:

listening on [any] 4444 ...

Очевидно , що потрібно використовувати -pз -lцією версією нк.

Мені б подобалося, якби хто-небудь міг сказати мені, чому є така різниця. Я використовую стару версію? ( -hзвіти v1.10-38)


5
Існує безліч різних версій Netcat (nc). -lpСинтаксис від оригінальної версії хоббіта, я вірю. Версії, похідні від BSD, забороняють використовувати -pс -l. Багато хто не підтримує -e. Завжди перевіряйте головну сторінку або -hвихідний параметр вашої установки .
бонсайвінг

1
Просто, щоб задовольнити ваше запитання щодо того, чи працює ваша стара версія, я б сказав "так". 1,89-3 запас тут.
тао

1
Дякую, хлопці. Це пояснює невідповідність між моїм Linux nc (версія хобіта / debian) та моєю ОС X nc (версія BSD).
Греццо

Ви, ймовірно, встановили netcat-traditionalзамість netcatабоnetcat-openbsd
SeMeKh

У Debian 8.6 для порту потрібна свіжа установка -p, і я можу підтвердити, що netcat-tradicional встановлений за замовчуванням (перевірено apt)
Джордж Васильоу
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.