通过反向代理进行智能子域名路由

通过反向代理进行智能子域名路由

我的家庭网络上有两台服务器:OSX 服务器和 Ubuntu 服务器。我希望外部子域osx.mydomain.com指向osxubuntu.mydomain.com指向ubuntu。我知道通常的做法是为每个服务器设置一个静态外部 IP 地址,但这不是我的选择,因为这只是我的家庭设置。

我的问题是:有没有办法通过一些反向代理技巧来实现这一点?OSX 目前是所有流量的默认入口点。我能够在 OSX 上为端口 80 上的 ubuntu.mydomain.com 设置反向代理,因此网络流量被正确代理到我的 ubuntu。不过我想使用 ssh 并做很多其他事情!

答案1

您无法像无状态 Web 服务器一样“反向代理” SSH 等服务,但您仍然可以通过使用 OS X 服务器作为 Ubuntu 上服务的“网关”来实现您想要的功能。例如,您可以通过 SSH 连接到 OS X,然后通过 SSH 连接到 Ubuntu,或者您可以使用 SSH ProxyCommand 透明地为您完成两次跳转。

或者,您可以使用家用路由器将各个端口转发到不同的内部机器,例如使用端口 22 为 OS X 机器上的 SSH 和使用端口 8022 为 Ubuntu 机器上的 SSH。但两台不同的机器无法以您希望的方式通过单个 IP 在同一点提供服务。

相关内容