当我检查时,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
是过渡包。这意味着它不包含任何文件。安装的包(默认)并提供netcat
。netcat-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