简单客户端/服务器,nc不工作

分享于 

4分钟阅读

互联网

  繁體 雙語

问题:

为什么以下工作不正常?

我有一个全新安装的Debian 9系统。 iptables 是开放的:


[···]# 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 



我登录两个独立的控制台( 嗯,两个单独的ssh登录) 。 在其中一个,我运行:


[···]# nc -l 11115



然后,我转到其他控制台,然后运行:


[···]# nc localhost 11115



我得到一个连接拒绝错误:


[···]# nc localhost 11115


localhost [127.0.0.1] 11115 (?) : Connection refused



我还尝试了 nc 127.0.0.1 11115,尝试使用 telnet ---总是连接拒绝。

在"收听"方面,我也尝试了 nc -l localhost 11115 ---没有差异。

我缺少或者做错了什么?

在 CentOS 6.9机器上花费的时间为 ,与预期的完全相同。 我家里的Ubuntu 14.04也一样。 我认为运行 root 会使 nc 不允许某些功能。 但是,我只是在 Debian 9机器上尝试了一个常规用户,而且它失败了。 任何想法?


回答 1:

实际上,有三个( 或者更多) 独特的程序被称为 nc ( netcat ),它是从早前和远程的同一基本程序。

在Debian中默认的是它称为 netcat-traditional的原始原始版本。 我可以用netcat传统重现这个问题听起来非常坏。 它实际上没有绑定到一个端口;我看不到它在 ss 输出中听到它,也没有在运行它时看到它。

另一个可用的Debian软件包叫做 netcat-openbsd,它是由OpenBSD开发人员当前维护的原始netcat的fork 。 你应该会发现,如果你安装了这个包( 然后你就可以删除 netcat-traditional ) 。

还有另一个netcat包,由红帽系统使用,由nmap和和其他开发者开发并维护。 它完全重写从头开始,不使用传统的netcat或者 BSD netcat代码。 它也能正常工作。它的软件包 NAME ( 在红帽系统上) 是 nmap-ncat


回答 2:

Debian 2软件包netcat和一个内置的过渡软件包,这将是指的netcat传统的


root@debian9:~# apt-cache search ^netcat


netcat - TCP/IP swiss army knife -- transitional package


netcat-traditional - TCP/IP swiss army knife


netcat-openbsd - TCP/IP swiss army knife


[../..]



当你在 nc 11115 运行多次时,nc正在监听,但却在一个随机端口( 似乎是随机的) 上。


root@debian9:~# lsof -p $(pidof nc ) | grep LISTEN


nc 12734 root 3u IPv4 11892054 0t0 TCP *:44907 (LISTEN)



事实上,你可以运行的数控 -l 而不是 nc nc,你将拥有相同的行为。

YES 传统是旧软件,一些简单的Bug 不固定( 在你的例子中,缺少参数-p端口用于监听) 。

你可以选择 ,它可以像你期望的那样工作。


root@debian9:/# lsof -p $( pidof nc ) | grep LISTEN


nc 2140 root 3u IPv4 29855 0t0 TCP *:11115 (LISTEN)





Server  
相关文章