繁体   English   中英

来自外部IP地址的Winsock2连接

[英]Winsock2 connection from an external IP address

我使用msdn中的示例用C用winsock2编写了一个简单的char程序,除非我试图通过未连接到同一路由器的计算机连接到服务器(使用网络的外部地址),否则它可以正常工作)

我可以确定这不是计算机或路由器上的防火墙问题,我也可以设置Minecraft服务器并从外部连接它。

我试图将外部ip地址绑定到服务器,但事实证明这是不可能的。

是否存在某种标志,允许从外部IP连接?

服务器套接字只能绑定到其正在运行的计算机上的IP。 绑定到INADDR_ANY为您处理。

为了使网络外部的客户端连接到该服务器,客户端必须连接到路由器本身(而不是服务器计算机)上的开放IP /端口。 必须将路由器配置为将其公用IP /端口上的入站连接转发到服务器的IP /端口。

例如,假设您有一个服务器套接字正在侦听本地LAN IP为192.168.0.1的计算机的端口12345,而路由器的公用IP为206.152.65.1。 您可以将套接字绑定到192.168.0.1:12345,然后在路由器上打开端口12345(或所需的任何可用端口),并定义端口转发规则以将该端口映射到192.168.0.1:12345。 现在,外部客户端可以连接到206.152.65.1:12345,位于192.168.0.1:12345的服务器将看到连接。

更一般而言,任何定向到206.152.65.1:12345的网络数据包都将被调整并转发到192.168.0.1:12345。 路由器负责调整数据包报头,因此各方认为他们正在相互通信,并且不知道路由器在中间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM