当前位置:  开发笔记 > 运维 > 正文

如何让netcat接受局域网外的连接?

如何解决《如何让netcat接受局域网外的连接?》经验,为你挑选了3个好方法。

我正在使用netcat作为后端来为我正在制作的程序来回挖掘数据.我在本地网络上测试了我的程序,一旦它工作,我认为只需从我的路由器转发一个端口让我的程序通过互联网工作.唉! 事实似乎并非如此.

如果我启动netcat监听端口6666:

nc -vv -l -p 6666,

然后转到127.0.0.1:6666浏览器,正如预期的那样,我看到HTTP GET请求来自netcat(而我的浏览器等待是徒劳的).my.external.ip.address:6666但是,如果我去,则根本没有任何内容,浏览器显示"无法连接到my.external.ip.address:6666".

我知道端口被正确转发,因为www.canyouseeme.org说端口6666是打开的(当netcat没有监听时,它已关闭).

如果我运行netcat -g my.adslmodem's.local.address来设置网关地址,我会得到相同的行为.我正确使用此命令行选项吗?对于我做错了什么的任何见解?



1> 小智..:

你必须听公共界面.您当前正在侦听计算机外部没有人可以连接的localhost.

您的milage可能会有所不同,但是通过我的netcat实现,我必须使用此命令行来监听所有公共接口.

netcat -vv -l 0.0.0.0 6666


感谢您的回答.我不认为是这种情况,因为netcat很高兴地从我网络上的其他计算机接收连接.此外,它启动时显示"正在收听[任意] 6666 ...".我尝试了你的建议(在端口之前使用"-p",否则它选择一个随机端口)并得到"0.0.0.0:反向主机查找失败:未知主机":(

2> Chris..:

原来没有问题.它只是出现这种方式,因为我的路由器不允许发夹连接.也就是说,即使我已正确设置它,当源和目标都在NAT后面时,路由器也不会建立连接.只要ncat -l -p 6666请求来自局域网外,只需工作正常即可.为了测试这一点,我浏览my.external.ip.address:6666了我的3G手机,果然,HTTP请求来了:)

这个答案来自:一个服务器故障问题,这是我应该首先问这个问题的地方.为此道歉.



3> Antonio Bard..:

要指定侦听地址:

nc -l -s  -p 

在Debian Jessie上测试过 netcat-traditional-1.10-41


@benedikt:有些`nc`版本可以,有些则不行.Debian上的`nc.traditional`可以:`nc -l -s 192.168.18.100 -p 6666`而不是Ubuntu上的`/ bin/nc.openbsd`不能:`nc -l -s 192.168.244.163 -p 6666 nc:不能使用-s和-l`
不可能同时使用`-l`和`-s`.
推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有