更改在 jelastic 中公开公开的 docker 服务的端口号

问题描述

我想使用 jelastic 云平台在 22 端口提供自定义 sftp 服务。 sftp 服务被实现为在 jelastic docker 主机上运行的 docker 容器。问题是容器还在端口 22 上运行本机 ssh(以访问容器),我想要自定义服务,而不是可在端口 22 上访问的本机服务。

自定义的 sftp docker 容器将服务暴露在宿主机的 2222 端口,而原生 ssh 使用的是 22 端口。我希望 2222 端口作为端口 22 被环境公开给公众。本机 ssh 不需要暴露在环境之外,因为它可以使用 jelastic 内部网关访问。

jelastic 平台允许配置防火墙规则,但不允许映射端口。我需要一些将 docker 节点上的端口 2222 映射到环境的端口 22 的东西。环境有公网ip。 更改本机 ssh 的端口可以工作,但这可能会干扰 jelastic 内部管理。

解决方法

环境有公网ip。

如果您在相关节点上拥有公共 IP,您的流量将直接从 Internet 到达该节点。这意味着您在节点/防火墙上公开的任何端口都是可从 Internet 访问的端口。

换句话说,你不能在同一个端口上运行 2 个不同的东西。您需要将 SSH 移动到不同的端口(并直接访问它,而不是使用 Jelastic SSH 网关,因为这样无法知道要连接到哪个端口)。