程序的最佳端口是什么?

问题描述:

以下哪个端口是用于程序的最佳端口之一。我正在使用仍在开发中的自定义协议。我正在寻找几乎每个连接到公共互联网的主机都可以访问的网站(即每个可以查看网站的主机都可以使用此端口)。三个主要选项是:程序的最佳端口是什么?

哪一个是最易用的过互联网,包括所有ISPs,公司防火墙等

+0

它们都无处不在。 – 2009-11-20 23:26:16

+0

是否有一个原因,你不会只是HTTP端口80? – 2009-11-20 23:27:32

+0

港口42,一定是港口42 .... – 2009-11-20 23:30:13

无端口53.在80和443之间折腾。如果你使协议看起来像HTTPS一样,代理将以相同的方式转发它,那么443是你的最佳选择。

+1

谢谢,端口53不能通过具有内部DNS的代理服务器,https端口443可能是最好的,因为透明代理服务器无法修改它(不会在HTTPS用户的浏览器中产生错误),而不像80端口那样尝试缓存它,并修改http头等等,所以弄乱我的数据 – 2009-11-20 23:37:51

所有这些端口都被众所周知的服务使用,并且您不应该使用任何端口(如果您的产品不是Web服务器或DNS服务器)。DCCP已知端口不应在没有IANA注册的情况下使用。如果您的服务在商业上可行或对整个网络有好处,可考虑将其注册为较低的端口号:注册过程在RFC4340的第19.9节中定义。

对于实验性使用,请使用1024到49151之间的端口。请记住,即使这些端口应在您的服务“实时”时向IANA注册。

关于防火墙:您无法预测您的服务是否可用于任何网络。即使您使用端口80,您也可能会针对执行内容检查的防火墙运行。

+1

我发布了一个答案,说同样的事情,但在我看到你的答案之前删除它。你把它变得更好,所以我没有费心去复活我的。 – ChrisF 2009-11-20 23:52:20

+0

尽管我很欣赏这种情绪,但我不得不放弃这一点,因为它回答了错误的问题。问题在于选择一个端口以最大化公共互联网上服务的可达性。事实上,私人网络上的许多主机对公共Internet服务的访问有限。许多人只能访问tcp/80和tcp/443,而应用层代理会严重干扰tcp/80。 – 2009-11-21 23:06:58

由于您提名的所有端口都用于特定的指定协议,因此将这些端口用于不同的协议是非常糟糕的主意。有一个惯例,对于一个知名的港口来说,有一个相应的协议,如果你打破了这个惯例,那么至少你会导致混乱,最坏的情况是怀疑恶意并被阻止。 Martin's answer指向正确的方向。

+0

我同意你这是一个危险的游戏,但它有时也是必要的,以便在非常有限的网络中提供你的服务。 IIRC,AIM将尝试使用一堆不同的端口,以防其正常端口被阻塞。我已经看到它在80端口和23端口都可以使用。许多文件共享应用程序也使用这种技术。 – rmeador 2009-11-20 23:44:07

+0

如果它是一个受限制的网络,试图绕过这可能导致不好的事情。如驱逐,解雇和/或民事或刑事处罚。不要试图用技术来解决策略。在那里,做到了,拿到了T恤。 – 2009-11-20 23:59:55