为什么“nc -l xxxx”没有打开端口?

Gre*_*zzo 17 linux port netcat nmap

我正在尝试让 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
Run Code Online (Sandbox Code Playgroud)

Gre*_*zzo 24

我运行了详细模式-v并得到了一个线索:

4444: inverse host lookup failed: Unknown server error : Connection timed out`
listening on [any] 41579 ...`
Run Code Online (Sandbox Code Playgroud)

所以我尝试用-p这样的方式指定一个端口,nc -lvp 4444它可以工作:

listening on [any] 4444 ...
Run Code Online (Sandbox Code Playgroud)

很显然,我需要使用-p具有-l与此版本的nc。

如果有人能告诉我为什么会有这种差异,我会很高兴的。我运行的是旧版本吗?(-h报道v1.10-38

  • Netcat (nc) 有很多不同的版本。我相信`-lp` 语法来自霍比特人的原始版本。源自 BSD 的版本禁止将 `-p` 与 `-l` 一起使用。许多不支持`-e`。始终检查您的安装手册页或`-h` 选项输出。 (6认同)