由于基础设施的限制,向全世界提供 HTTP 服务的建议解决方案之一是通过端口 8080 和 8443 提供。
我担心的是,某些用户可能无法访问这些服务,因为它们没有在标准端口上运行,并且内容可能会被(例如)作为公司网络策略的一部分进行过滤。
那么……互联网上广大用户无法访问这些服务的可能性有多大?
答案1
企业网络通常默认遵循如下规则:
deny all; allow 80; allow 443; allow 21; allow 22; etc...
与明确拒绝 65,535 个可用端口中的 99% 相比,这种方式配置要容易得多。
话虽如此,我接管了一个面向客户的门户,由于网络限制,该门户使用非标准端口;我不知道 NAT 的详细信息。无论如何,这使得大约 50% 的用户/访问者无法访问网站,每当他们打电话给我们报告此问题时,我们都必须与他们不存在的 IT 部门协调,以尝试实施允许规则。
我不知道你的基础设施限制的细节,但我猜想 80/443 上应该还有其他东西在运行
如果是这种情况,那么您唯一的选择可能是使用内部代理或将交换机升级为具有更高级 NAT 功能的交换机,以便可以适当地路由请求。
总结
对于已经有标准端口的面向公众的服务,不要使用非标准端口。
答案2
这些很可能会被阻止,尤其是在公司网络或公共 wifi 上。在普通家庭互联网连接上,这种可能性较小。
它肯定会在我的工作网络上被屏蔽。
此外,人们必须记住输入端口号才能访问您的网站,这是您不想处理的额外麻烦。对于内部或私人网站来说,这不是一个大问题,但如果这是针对公众的,那么使用标准端口会更成功。
答案3
让你的浏览器点击说并不难http://example.com:8080/index.html,但是当你谈到阻止非标准端口的公司政策时,这似乎非常困难。
如果您设置了某种负载平衡,您仍然可以将应用程序设置为在标准端口上运行,并让负载平衡器端口在内部转发到奇数端口。即使您没有负载平衡,我相信您也可以找到一种将端口转发到非标准内部端口的方法。
在内部,用户可以通过奇数端口进行访问(如果不是公司政策阻止的一部分),在外部,他们可以看到http://example.com。
有很多方法可以做到这一点,你必须根据遇到的障碍类型发挥一点创造力。这总是一个挑战!