如果 ssh 使用默认端口以外的端口,会有什么区别?

如果 ssh 使用默认端口以外的端口,会有什么区别?

当我 ssh 到远程服务器时,我通常使用默认端口或给我的端口,但我不知道为什么需要使用这个端口。这些端口是如何定义的以及在哪里定义的?为什么我们选择某个端口来 ssh 远程服务器?会有什么不同呢?谢谢!

答案1

当你连接到另一台机器上的任何东西(不仅仅是 SSH)时,你需要一种机制来告诉另一台机器什么您正在连接到。 IP 地址用于将您的连接通过互联网(或本地网络)路由到计算机,端口告诉该计算机该连接转到哪个程序。

这些数字并没有什么神奇之处。理论上任何服务都可以在任何端口上运行。但那样你就永远不知道哪个港口是我们的。从历史上看,这个问题已经通过将众所周知的服务放在自己的端口上并且不将这些端口用于其他任何用途来解决。

在 Linux(和其他一些操作系统)中,有一个名为 的文件,/etc/services其中列出了常见服务及其使用的端口。你会看到SSH是端口22,http是端口80,https是端口443......

您可以将任何服务移至任何端口,但如果您不使用默认端口,那么当有人尝试使用该服务时他们需要知道您已将其移至哪个端口。


它的不同之处通常在于其他人可以轻松地找到该端口。有时人们不想使用端口 22,因为当您在任何公共 IP 上打开端口 22 时,每天都会受到一些暴力 SSH 攻击。通过更改端口,这些攻击者通常无法找到正确的端口号进行攻击(尽管他们仍然可能找到)。缺点是您必须告诉所有用户要使用哪个端口。

相关内容