我有提供不同服务的服务器。每个服务都有自己的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
如果您需要不同的用户名,您甚至可以添加一行。