nc -l 无法使用 public IP 地址

nc -l not working on using public IP address

当我尝试使用我的私人 IP 地址使用 [nc -l] 命令时,我能够创建一个客户端服务器 model.But 当我尝试使用我的 public 具有相同端口 number.It 的 IP 地址给我以下错误:-
nc: 无法分配请求的地址
为什么??

你的问题是你的publicIP是你路由器的IP,不是你电脑的IP。

简单地说,您的网络可能是这样的(IP 地址只是示例):

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

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

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