同一台计算机中的多个 ssh 服务器和重定向代理取决于域

同一台计算机中的多个 ssh 服务器和重定向代理取决于域

我有提供不同服务的服务器。每个服务都有自己的ssh服务器来访问该服务。每个 ssh 服务器都使用不同的端口(例如 2022 和 3022)。

另外,我有不同的域来访问服务。 (a.dom.com、b.dom.com)。两个域的 IP 相同 (1.2.3.4),但我使用带有反向代理的域来访问不同的服务。

也可以为 ssh 服务器创建反向代理,将端口(例如 22)重定向到其他端口(取决于域)。

我的目标是我能做到ssh a.dom.com并且ssh b.dom.com

我尝试使用 ssh 隧道,使用以下命令:(认为我在端口 23 中有第三个 ssh 服务器)

ssh -p 23 localhost -R a.dom.com:22:localhost:2022 -R b.dom.com:22:localhost:3022

但它不起作用,我认为它不正确,因为在命令中,a.dom.com 是隧道的 IP 过滤器

答案1

这是不可能的:首先查找域名的IP地址,如果两者都a.dom.com映射b.dom.com到相同的IP地址,则到达反向代理的数据包将是相同的,因此无法将它们映射到不同的端口。

如果域具有不同的 IP 地址,并且您有一个反向代理响应所有这些 IP 地址,则这是可能的(谷歌“端口转发”)。

如果您想要的只是简化通过 访问服务ssh,我建议您使用ssh_config如下条目编辑文件:

Host a
    HostName a.dom.com
    Port 2022

然后你就可以这样做ssh a,它会自动选择正确的端口。User fhuertas如果您需要不同的用户名,您甚至可以添加一行。

相关内容