Networking 为什么使用Netcat监听端口不起作用

Networking 为什么使用Netcat监听端口不起作用,networking,netcat,Networking,Netcat,我正在Ubuntu上运行以下命令: nc -l -p 5004 -v >> /home/anders/Dropbox/netcatFiles/test 其中包括一个命令,使其在5004时侦听 我正在使用VLC向端口5004发送RTP流。当我观察Wireshark中的环回接口时,我注意到带有消息“Destination unreachable”的ICMP数据包 打开另一个VLC并告诉它在端口5004播放传入的数据,一切正常,流就播放了 我应该怎么做才能让Netcat在端口5004上

我正在Ubuntu上运行以下命令:

nc -l -p 5004 -v  >> /home/anders/Dropbox/netcatFiles/test
其中包括一个命令,使其在5004时侦听

我正在使用VLC向端口5004发送RTP流。当我观察Wireshark中的环回接口时,我注意到带有消息“Destination unreachable”的ICMP数据包

打开另一个VLC并告诉它在端口5004播放传入的数据,一切正常,流就播放了

我应该怎么做才能让Netcat在端口5004上侦听?

不要使用-p()

-p源端口 根据权限限制和可用性,指定nc应使用的源端口。在合同中使用此选项是错误的 与-l选项的连接

所以只需指定

nc -l 5004 -v  >> /home/anders/Dropbox/netcatFiles/test

我认为您需要添加“-u”参数以使其在UDP上侦听

默认情况下,netcat在TCP模式下工作,但RTP协议是基于UDP的

传输控制协议(TCP),尽管标准化用于 RTP使用,[5]通常不用于RTP应用程序,因为TCP支持 可靠性高于及时性。相反,大多数RTP 实现基于用户数据报协议(UDP)”


但是,当我执行上述命令时,它不起作用。状态:警告:“0.0.19.140”的反向名称查找失败,当我这样做时:nc-u-l-p 5004-v>>/home/anders/Dropbox/netcatFiles/test它工作。我得到的状态是:从127.0.0.1:32843->127.0.0.1:5004(本地)接收到的数据包,我用
nc-l 5004>>output.txt对侦听器进行了测试,用
echo“tester”| nc 127.0.0.1 5004对发送器进行了测试。工作正常,但它确实需要寄件人的主机。谢谢你的回复和评论!!根据Isernis的最新评论和我收到后做的一些研究:您链接到的手册和我的nc版本似乎是旧版本的nc。手册上写着:nc-l-p port[-options][hostname][port]ubuntu实际上有(或至少曾经有)两个netcat软件包:一个基于openbsd nc,另一个是“传统”的,可能称为netcat traditional。这两个版本之间可能存在一些差异。我不确定“谢谢”的反面是什么,但我需要添加
-p
,以使我的版本正常工作:
netcat(GNU netcat)0.7.1
。似乎我是通过Mac OS X上的Macports安装的(提示它位于此处
/opt/local/libexec/gnubin/nc
),谢谢!以下工作:nc-u-l-p5004-v>>/home/anders/Dropbox/netcatFiles/testI进行了快速检查,HaraldBrinkhof是正确的。“-l-p 5004”不应该起作用。我怀疑你有一个旧版本的netcat。我有一个支持-p5004语法的版本,它报告了1.10版,而在另一个框中,我有一个看起来更新的版本(更多选项等),它有相同的手动页面Harald引号。