2 回答
TA贡献1784条经验 获得超8个赞
由于远程客户端位于“云中”(即在 Internet 上其他位置的另一台计算机上运行),因此它将需要使用 ISP 分配给您的公共 IP。在服务器端,您可以使用https://api.ipify.org等网站来发现您的公共 IP,然后将其提供给客户端进行连接。或者,您可以向任何公共域注册商(GoDaddy 等)注册静态主机名,并将其指向您的公共 IP(如果您的 IP 是动态的,则可以使用动态 DNS 服务来处理该情况)。
如果您的服务器计算机直接连接到互联网调制解调器,那么您的公共主机名/IP 将直接路由到您的服务器计算机。
-------
----------> | DNS | ----------
| ------- |
| \|/
---------- ------------ --------------
| client | <-> | Internet | <-> |x:x| server |
---------- ------------ --------------
但是,如果您的服务器没有直接连接到调制解调器,而是在 NAT 路由器后面运行,那么您的公共主机名/IP 将路由到路由器,而不是您的服务器计算机:
-------
----------> | DNS | ----------
| ------- |
| \|/
---------- ------------ -------------- --------------
| client | <-> | Internet | <-> |x:x| router | <-> |x:x| server |
---------- ------------ -------------- --------------
因此,路由器必须单独配置端口转发规则,以将入站流量从其公共 WAN IP/端口路由到服务器计算机的专用 LAN IP/端口。
如果路由器支持 uPNP 并且已启用,您的服务器可以在绑定/关闭其侦听套接字时在代码中动态配置这些规则。否则,您将必须使用路由器的管理界面手动配置规则。
添加回答
举报