如何在 ubuntu 中选择 Netcat 的默认版本

如何在 ubuntu 中选择 Netcat 的默认版本

当我检查时,netcat -h我发现-e版本我的 netcat 缺少选项。我使用 Ubuntu 15.10。在论坛上搜索后,我找到了一种方法来了解已安装的版本及其候选版本。

apt-cache policy netcat

我得到了以下输出:

Installed: (none)
Candidate: 1.10-41
Version table:
1.10-41 0
500 http://archive.ubuntu.com/ubuntu/ wily/universe amd64 Packages

所以我安装了 netcat,得到了候选版本。现在我很困惑如何选择默认的 netcat 版本,以及-e选项无处可见。

应该如何解决此问题?

谢谢。

答案1

默认情况下,Ubuntu 中netcat-openbsd安装了软件包。-e 选项不可用netcat-openbsd。为此,您需要安装netcat-traditional包。

$sudo apt-get install netcat-traditional

安装后,您必须从 netcat-openbsd 切换到 netcat-traditional。对于该类型

$sudo update-alternatives --config nc

你会得到一些像这样的选择

There are 2 choices for the alternative nc (providing /bin/nc).

  Selection    Path                 Priority   Status
------------------------------------------------------------
  0            /bin/nc.openbsd       50        auto mode
* 1            /bin/nc.openbsd       50        manual mode
  2            /bin/nc.traditional   10        manual mode

Press enter to keep the current choice[*], or type selection number: 

然后在提示符中输入 netcat-traditional 的选择编号(此处为 2)。

是的,我们做到了。

要检查它是否有效,请输入

$nc -h

您将-e在列表中看到选项

答案2

没有安装版本,因为netcat是过渡包。这意味着它不包含任何文件。安装的包(默认)并提供netcatnetcat-openbsd您可以检查它的版本:

apt-cache policy netcat-openbsd  

来自 netcat 手册:

“没有-c或-e此 netcat 中的选项,但您仍可以通过重定向文件描述符在建立连接后执行命令。请谨慎操作,因为打开端口并让任何连接的人在您的站点上执行任意命令是危险的 (...)”


还有netcat-traditional-e选项。您可以删除netcat-openbsd并安装传统版本:

sudo apt-get install netcat-traditional 

或者保留两个版本并通过运行选择传统版本:

sudo update-alternatives --config nc 

相关内容