nc -l没有使用公共IP地址

时间:2015-08-31 11:33:01

标签: ip client-server netcat

当我尝试将[nc -l]命令与我的私有IP地址一起使用时,我可以创建一个客户端服务器模型。但是当我尝试使用我的公共IP地址时,它不起作用端口号。它给我以下错误: -
nc:无法分配请求的地址
为什么?

1 个答案:

答案 0 :(得分:2)

您的问题是您的公共IP是路由器的IP,而不是您的计算机。

简化,您的网络可能看起来像这样(IP地址只是示例):

+--------------+     +-----------------+----------------+
| PC           |-----|Router (internal)|Router(external)|---... Internet
| 192.168.0.10 |     |192.168.0.1      |123.132.122.133 |
+--------------+     +-----------------+----------------+

您电脑的内部地址为192.168.0.10,这是它知道的唯一地址。路由器将流量路由到其他网络;因为它有两个接口,内部接口为192.168.0.1,面向互联网接口为123.132.122.133。在您的PC上,您无法收听后一个地址,因为它是路由器的地址,而不是 PC

因此,解决方案是监听内部IP,并设置路由器将相应端口的流量转发到PC上的相应端口。但请注意安全隐患! (例如,将根壳打开到互联网可能不是最好的主意。)