我在 OpenShift 上设置了 Minecraft 服务器,这是一个免费的 PaaS。OpenShift 需要内部应用程序(例如我的服务器)绑定到 15000 到 35530 范围内的端口或端口 8080。但是,它还需要外部客户端通过以下端口之一访问服务器:22、25、80、109、 110、143、220、443、465、587、993 或 995。
换句话说,内部暴露的端口没有一个暴露在外部;但是,有两种通信方式。一种是 SSH 端口隧道,我已经在我的计算机上设置了它。第二种是通过HTTP,内部通过8080发送时自动转发到80。SSH隧道的问题是需要通过OpenShift添加客户端的公钥,而客户端需要设置自己的私钥,这对我的大多数朋友来说太复杂了。
我想让连接过程更容易,所以我想到了两种可能的方法。第一个设置更简单,是通过不需要特定的公钥或私钥来“不安全”连接 SSH 连接。这是一个游戏服务器,所以安全性对我来说根本不是问题,但我认为这可能是不可能的,因为 SSH 是为安全而构建的。另一种更难的方法是将 Minecraft 数据包嵌入到 HTTP 数据包中,OpenShift 系统会自动转发这些数据包。也许这可以使用现有的 HHTP 代理系统?
如果有人可以帮助我解决这两种方式中的任何一种(或另一种方式,如果你能想到一个),我将非常感激!