服务器和客户端上的端口不同?

服务器和客户端上的端口不同?

我们正在通过 ssh 使用 rsync 为我们的 Web 服务器设置备份系统。

在客户端(即 Web 服务器):我们有一个共享主机方案,它允许我们访问 shell。但是,它限制了对 SSH 端口 22 以外的任何端口的访问。它不会接受端口 25022 上的连接。

在服务器端(即备份服务器):服务器只开放25022端口,不会接受22端口上的连接。

有什么方法可以让这两个服务器通过 SSH 进行通信吗?我对这类东西的了解有限,但我的直觉让我觉得应该有办法解决这个问题。

任何意见是极大的赞赏!

答案1

你忽略的一点是 TCP 连接使用两个端口,两边各一个。“源”端口通常是随机分配的,“目标”端口是配置的。

还请注意“即将到来”这个词。你的陈述“它不会接受端口 22 上的连接”仅讨论传入连接,而不是传出连接。

此外,大多数服务器上的防火墙通常有状态的;也就是说,即使他们拒绝新的到 22 以外端口的传入连接,它们仍将接受属于已确立的连 接。

因此在这种情况下...

  • 服务器 A 允许传入連接从任何港口至 22 号港口

  • 服务器 B 允许传入連接从任何港口到端口 25022

  • 两个服务器都允许传出从任意端口到任意端口的连接

  • 两个服务器都允许属于已建立连接的传入数据包

这意味着您仍然能够与远程服务器建立传出连接,而不管对传入连接有何限制。

总之,客户端上所描述的限制实际上并不重要。只需在 ssh 配置中指定正确的端口即可。

答案2

因此,在你们和其他一些朋友的帮助下解决这个问题之后,我们得出的结论是,以这两台服务器当前的配置方式,根本无法完成我们需要做的事情。

我们联系了我们的托管提供商(Arvixe),经过一段时间的讨论后,他们很高兴为我们开放 25022 作为出站端口。他们这样做之后,问题就解决了。

谢谢大家的帮助。

相关内容