客户端和服务器公共 IP

Posted

技术标签:

【中文标题】客户端和服务器公共 IP【英文标题】:Client and Server public IP 【发布时间】:2015-05-06 13:54:31 【问题描述】:

设置

路由器华为HG532b配置转发端口= 50111通过启用NAT>DMZ和放 主机地址 IP = 192.168.1.5 ,这是我的电脑在网络中的静态 IP。 路由器配置为通过 NAT 映射端口来转发端口 = 50111 > 使用以下设置的端口映射:

协议 = TCP/UDP,外部端口 = 50111,内部端口 = 50111, 内部主机 = 192.168.1.5,远程主机 = 192.168.1.5,映射 名称=聊天。

路由器配置为通过 NAT 触发端口来转发端口 = 50111 > 使用以下设置触发端口:

触发协议=TCP/UDP,触发起始端口=50111,触发结束 端口 = 50111,开放起始端口 = 50111,开放结束端口 = 50111,触发器 name=聊天

路由器具有公共或外部或 WAN IP = 188.167.2.4。

路由器配置为启用 UPnP。

路由器配置 LAN > DHCP 通过 make Start IP address = 192.168.1.6, End IP 地址 = 192.168.1.253

路由器是我的网关,IP = 192.168.1.1。

我的电脑有静态 IP = 192.168.1.5,防火墙服务关闭,没有安装杀毒软件或任何其他防火墙,我的 XP 有 service pack 3。

问题:

我创建了两个程序,客户端和服务器,它们是聊天程序的一部分。 服务器的套接字具有 LocalPort = 50111 并进入侦听模式。 客户端的套接字有 RemotePort = 50111,并有一个文本框来放置远程 IP 和名为 Connect 的命令按钮。

当我在具有静态 IP = 192.168.1.5 的同一台 PC 中测试客户端和服务器并将远程 IP 放入客户端 = 192.168.1.5 时,一切正常。

当我在静态 IP = 192.168.1.5 的 PC 中测试服务器并将客户端放入 IP = 192.168.1.9 的 PC 并将远程 IP 放入客户端 = 192.168.1.5 时,一切正常。

当我在具有静态 IP = 192.168.1.5 的同一台 PC 中测试客户端和服务器并将远程 IP 放入客户端 = 188.167.2.4(即我的路由器公共或外部或 WAN IP)中时,然后按 连接,出现winsock错误“连接被强制拒绝”。

当我在具有静态 IP = 192.168.1.5 的 PC 中测试服务器并将客户端放入 IP = 192.168.1.9 的 PC 并将远程 IP 放入客户端 = 188.167.2.4(即我的路由器公共或外部或WAN IP),然后按连接,会出现winsock错误“连接被强制拒绝”。

当我在具有静态 IP = 192.168.1.5 的 PC 中测试服务器并将客户端放入另一个 IP = 192.168.1.7 的网络中的 PC 并将远程 IP 放入客户端 = 188.167.2.4 时(那是我的路由器公共或外部或WAN IP),然后按连接,将引发winsock错误超时。

我了解到,如果客户端和服务器在同一台 PC 中,将客户端远程 IP 设置为公共或外部或 WAN IP 将不起作用。

我了解到带有 Service Pack 3 的 XP 存在端口转发问题。 我读到有一种称为打孔的技术,可以绕过路由器端口转发或防火墙。

我希望专家向我解释,哪里出了问题以及如何纠正它。

【问题讨论】:

【参考方案1】:

通过查看您的测试,您在自己的专用网络之外遇到了问题。有两种可能会给您带来问题,更有可能是您的端口转发导致问题

1:端口转发 && DMZ在这种情况下,DMZ 是您不想要的,因为这是在您的路由器上已准备好激活的安全之上的另一层安全,并将给你那些粗鲁的联系。请查看以下页面,了解如何设置端口转发 http://portforward.com/english/routers/port_forwarding/Huawei/HG532b/Xbox_Live_360.htm

使用以下信息设置一个规则 外部端口:50111 内部端口:50111 内部主机:192.168.1.5 协议:这可以设置为 TCP/UDP,如果您在应用程序中同时使用两者,那很好,但如果您只使用一个,那么最好将其设置为您正在使用的那个。

2:外部 IP您的路由器有时会断开与 Internet 的连接并重新连接,有时您的外部 IP 地址可能会更改,请与https://www.whatismyip.com/ 联系以查看如果IP地址改变了。如果您正在为您的应用程序寻找更大的图景,那么可能值得考虑获取动态地址,请查看此以获取更多信息http://www.noip.com/support/knowledgebase/what-is-a-dynamic-ip-address/

希望对你有所帮助

【讨论】:

以上是关于客户端和服务器公共 IP的主要内容,如果未能解决你的问题,请参考以下文章

无法在我的服务器上获取已连接客户端的公共 IP

从外部IP将TCP客户端连接到我的服务器

如何在servlet java中获取客户端公共IP地址[重复]

获取客户端公共 IP 的最可靠方法

具有多个外部 IP 的 L2TP / PPTP 服务器

在没有公共 IP 的情况下通过 http 连接两台计算机