netcat的:用NC -l端口号,而不是NC -l -p端口号(Netcat: using nc

2019-07-21 06:37发布

这个问题是以下这一项: 套接字在openSUSE的工作不Debian的工作吗?

当我的Debian系统上的插座的工作,我不得不使用NC -l -p端口号来模拟我想谈的服务器。 如果我使用NC -l端口号,它会使用套接字连接功能和字符串错误(错误)会说,当“连接被拒绝”失败。

Netcat的不-p选项工作在其它Linux版本大,我应该改变我的配置?

Answer 1:

我同意duskwuff,最好是只使用-p选项无处不在,但回答你的问题:

你必须做的一件事就是安装一个支持你想要的语法的netcat。 我知道netcat-openbsd软件包支持。 我知道netcat-traditional包不。 还有一个netcat6包,里面也没有。 然后,您可以明确要求,像这样的netcat的OpenBSD的版本:

nc.openbsd -l 4242

可选您可以使用替代系统来设置这个版本的netcat的,当你发出运行nc命令:

update-alternatives --set nc /bin/nc.openbsd

如果这是你已经安装了唯一的netcat这将自动为您完成。

最后,你可以再次可选,删除你不喜欢(在的netcat netcat-traditionalnetcat6 )。



Answer 2:

不要调整套。 还有的netcat那里的多种实现; 不是所有的人的行为相同。

特别是,“传统”版本的netcat的,这可能是你已经安装了Debian系统上的东西,最终会做一些完全意想不到的,如果你省略了-p (“端口”)标志:它最终会处理的最后参数作为主机名 ,把它传递给inet_aton()将其转换为一个无意义的IP地址(例如,1234将成为0.0.4.210),然后将着手忽略的IP地址,并自动分配一个套接字上侦听(可能是随机的)端口号。

这种行为显然是愚蠢的,这样的netcat的一些其他实现将假设你的意思-p 。 您正在使用不,虽然如此,通过将一个-p选项。



文章来源: Netcat: using nc -l port_number instead of nc -l -p port_number