【问题标题】:Port forwarding problem端口转发问题
【发布时间】:2011-08-15 13:37:31
【问题描述】:

我目前正在开发带有用 java 编写的服务器的 java PC/Android 应用程序。当我开发 PC 客户端时,我在 localhost:12345 上启动服务器,客户端可以毫无问题地连接到该服务器(使用相同的主机名和端口)。昨天我尝试使用 android 设备连接时出现问题。我使用我的手机开发应用程序,并作为主机地址输入路由器的公共 IP 89.xx.xx.xxx 和与 PC 客户端相同的端口(12345)。当然,我在我的路由器上设置了端口转发(用于端口 12344 到 12346 ),并且我在 Windows Defender 中为端口 12345 上的任何连接类型创建了规则。但仍然没有成功。这很奇怪,因为在我开发其他应用程序之前大约 8 个月,一切正常。奇怪的是,我第一次启动服务器和PC客户端时没有windows提示窗口(赢得防御者提示以允许我的应用程序连接到互联网)。我认为路由器的转发有问题(因为在 localhost 上它可以正常工作),但我不知道我还能做什么。我在转发旁边打开了 UPnP。我的路由器是 THOMSON TWG850-4U。几秒钟后,我的 android 应用程序出现超时异常

【问题讨论】:

  • 您是否验证过是否可以使用普通 PC(不是您的 android 应用程序)从外部连接到该服务器,以确保问题与 android 设备使用的移动网络无关连接?

标签: java android port forward


【解决方案1】:

您确定您的服务器绑定的是 0.0.0.0(接受任何接口上的传入连接)而不是 127.0.0.1(仅接受 localhost 连接)吗?

【讨论】:

  • 我在服务器套接字绑定上将 localhost 更改为 0.0.0.0(如果这是你的意思),但仍然无法连接
【解决方案2】:

如果您已经绑定到 0.0.0.0,请尝试将您的路由器设置为 DMZ 您的 PC 的 IP 地址,看看是否允许您连接。

【讨论】:

  • 我以前试过这个,但没有区别。仅供参考,当我打开 DMZ 并连接时,我离开了端口转发,我使用了路由器公共 IP
  • 如果您在发出这些请求时在网络上,您应该使用计算机的 LAN IP 而不是路由器的公共 IP。
猜你喜欢
  • 2020-03-16
  • 2017-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多