所以我在业余时间开发和安装android应用程序。此应用程序打开与我的家庭服务器的连接,该服务器运行java程序,进行一些计算并发送响应。问题是我不想使用端口80.如果手机在WiFi上,我可以使用我想要的任何端口连接,例如8080.这可以在我的家庭网络之外的任何WiFi连接上工作。但是切换到4G并且连接失败。
服务器:8080
服务器:80
我将服务器切换到侦听端口80和我的应用程序使用相同的连接,现在连接可以在4G和WiFi上运行。
是否有一些我缺少的东西让它在一个不常见的端口上工作?
或者这是4G连接的限制。
由于
答案 0 :(得分:1)
我可以向您保证,4G不仅仅是IP连接问题。端口是UDP / TCP的一部分,只是"数据"到IP网络。
但是,您的手机提供商可能有防火墙阻止某些端口的流量。 PortQuiz公共网站监听所有端口。使用手机上的浏览器,尝试连接到各种端口,看看哪些是成功的,哪些是不成功的。
http://portquiz.net:8080
http://portquiz.net:8
http://portquiz.net:666
如果您可以通过WiFi而不是Cellular连接,那么您的提供商正在做他们真的不应该做的事情。
如果浏览器可以连接到您服务器的端口8080而您的应用无法连接,则说明它与您的应用有关。
答案 1 :(得分:0)
我遇到了完全相同的问题 - 中间件服务运行"非标准"端口,如8081,8082,8997,...为了爱我,我无法通过手机访问它们,但只有在我连接到celluar网络的情况下。我一直得到504,网关超时。
我在我的linux服务器上运行tcpdump,在那里我一直在运行我的微服务,甚至没有看到任何入站流量,所以我知道问题必须在那之前。
然而,有趣的是,如果我使用相同的提供商从另一部手机制作了热门手机,然后通过WiFi连接到该热门手机,那就有效了。所以它不能是提供者特定的。
无论如何,对于其他有同样问题的人 - 是的,如果连接到celluar,确实不允许使用某些端口号。