networkingpipe理员是否阻止传出stream量到不知名的端口?

我已经编写了一个Java服务器来监听端口49474.我的客户端运行在美国各地的Android手机上。 当然,他们将连接各种networking:家庭,工作,学校,图书馆,麦当劳。 服务器和客户端之间通过Java Socket传输原始JSON的stream量。

有人告诉我,我必须使用端口80或443,并且我的stream量必须是实际的HTTPstream量,否则路由器/防火墙会检测到我的stream量不是HTTPstream量并丢弃它。

networkingpipe理员阻止连接到我的端口所在的端口的通常情况如何?

此外,如果我只是将端口号切换到443,那么路由器/防火墙是否会检测到我的stream量不是HTTPstream量,即使在知名端口上也是如此?

networkingpipe理员是否阻止传出stream量到不知名的端口?

是。 在大多数托pipenetworking中,可能会有防火墙,限制出口stream量遵守当地政策并防止滥用。 实际configuration将有所不同,但您不能普遍依靠一个不常见的端口被打开。

另外,如果我只是把我的端口号切换到一个公共端口号,如80或443,路由器/防火墙会检测到我的stream量不是HTTP(S)stream量并阻止它?

即使普通的端口号码可能被阻止,用户可以通过代理服务器访问互联网的唯一方式, 代理服务器将能够识别有效的HTTP请求。

当Web端口实际打开并且可以直接访问互联网时,防火墙仍然可以使用深度包检测 ,只允许在HTTP端口上使用有效的HTTP,尽pipe我觉得DPI不像代理服务器那么普遍。

build议:当您为您的服务器使用公共Web端口时,您将具有最好的可移植性,并且您的应用程序应遵循代理设置并使用HTTP(S)。

简短的答案是取决于 。 与邮件服务器一样,远程networking的pipe理员可以接受哪些stream量,以及拒绝什么。

确实有些networking不允许从内部到外部的任意连接。 根据客户的安全需求,我已经build立了那些和那些没有的。

如果您的stream量可以合法地通过HTTP / HTTPS处理(您说它是JSON,但是如果我没有弄错,JSON是内容协议,而不是传输协议),并且服务器在端口80/443上运行,那么您可以最大化机会的人到您的服务器。 如果您离开标准的港口,更less的客户将能够联系到您。 如果您在标准端口上运行非标准协议,则较less的客户端将能够联系到您。

你真正想知道的是无法联系到你的客户的比例 ,我不知道任何已发表的工作量化。 但目前我看不出有什么理由使用标准港口的标准运输协议进行这项服务,直到你确定你有这样一个合理的理由,否则你就不会遵守这个标准是愚蠢的。