因此,我一直在开发和android应用程序的乐趣,在我的业余时间。这个应用程序打开一个连接到我的主服务器,它正在运行一个java程序,做一些计算并发送一个响应。问题是我不想使用端口80。如果手机在WiFi上,我可以使用我想要的任何端口连接,比如8080。这可以在任何WiFi连接上工作,甚至在我的家庭网络之外。然而,切换到4G,连接失败。
服务器:8080
服务器:80
我把服务器切换到端口80上监听,我的应用程序也用同样的方式连接,现在连接可以在4G和WiFi上运行。
有什么东西我错过了,使它在一个不寻常的港口工作?
或者这是4G连接的限制。
谢谢
发布于 2015-04-09 21:42:39
我可以向你保证,这不是4G的问题,它只是IP连接。端口是UDP/TCP的一部分,只是IP网络的“数据”。
但是,您的蜂窝提供商可能有一个防火墙,可以阻止通信到某些端口。PortQuiz公共网站监听所有端口。使用手机上的浏览器,尝试连接到不同的端口,看看哪些是成功的,哪些不是。
http://portquiz.net:8080
http://portquiz.net:8
http://portquiz.net:666 如果您可以通过WiFi连接,但不能通过蜂窝,那么您的提供商正在做他们真正不应该做的事情。
如果浏览器可以连接到您服务器的8080端口,而您的应用程序不能连接,那么这与您的应用程序有关。
发布于 2017-05-04 21:41:18
我有同样的问题-中间件服务运行在“非标准”端口,如8081,8082,8997,.为了我的爱,我不能从我的手机上访问它们,但前提是我已经连接到了蜂窝网络。我一直得到504网关超时。
我在我的linux服务器上运行tcpdump,在那里我一直在运行我的微服务,甚至没有看到任何入站流量,所以我知道在此之前问题一定在某个地方。
然而,有趣的是,如果我用同一个提供商从另一部手机上做了热停,然后通过WiFi连接到那个热站,它就能工作了。所以它不能是特定于提供者的。
无论如何,对于任何有同样问题的人来说--是的,如果连接到蜂窝,确实是不允许某些端口号的。
https://stackoverflow.com/questions/29547278
复制相似问题