0

所以我在业余时间一直在开发和开发 android 应用程序以获得乐趣。此应用程序打开与我的家庭服务器的连接,该服务器正在运行 java 程序,进行一些计算并发送响应。问题是我不想使用端口 80。如果手机在 WiFi 上,我可以使用任何我想要的端口进行连接,比如 8080。这适用于任何 WiFi 连接,即使在我的家庭网络之外。但是切换到4G,连接失败。

服务器:8080

  • WiFi上的电话(任何) - 工作
  • 4G 电话 - 失败



服务器:80

  • WiFi上的电话(任何) - 工作
  • 4G 电话 - 有效


我将服务器切换到监听端口 80 和我的应用程序使用相同的连接,现在连接在 4G 和 WiFi 上都有效。

我有什么东西不能让它在一个不常见的端口上工作吗?

或者这是 4G 连接的限制。

谢谢

4

2 回答 2

2

我可以向您保证,这不是 4G 的问题,它只是 IP 连接。端口是 UDP/TCP 的一部分,只是 IP 网络的“数据”。

但是,您的蜂窝服务提供商可能有防火墙来阻止某些端口的流量。PortQuiz公共网站侦听所有端口。使用手机上的浏览器,尝试连接到各种端口,看看哪些是成功的,哪些是不成功的。

http://portquiz.net:8080 
http://portquiz.net:8 
http://portquiz.net:666 

如果您可以通过 WiFi 但不能通过蜂窝网络连接,那么您的提供商正在做他们真正不应该做的事情。

如果浏览器可以连接到服务器的 8080 端口,而您的应用程序不能,那么这与您的应用程序有关。

于 2015-04-09T21:42:39.480 回答
0

我遇到了完全相同的问题 - 在“非标准”端口上运行的中间件服务,例如 8081、8082、8997 ......而且为了我的爱,我无法通过手机访问它们,但前提是我有已连接到蜂窝网络。我一直收到 504,网关超时。

我在我的 linux 服务器上运行了 tcpdump,我一直在那里运行我的微服务,甚至没有看到任何入站流量,所以我知道问题必须在那之前的某个地方。

然而,有趣的是,如果我使用同一提供商从另一部手机制作热站,然后通过 WiFi 连接到该热站,它就可以工作。所以它不能是特定于提供者的。

无论如何,对于遇到同样问题的其他任何人 - 是的,如果连接到蜂窝网络,某些端口号确实是不允许的。

于 2017-05-04T21:41:18.163 回答