SSH协议:1个ip,2个域名,2台服务器

Dan*_*l S 1 linux dns domain ip

有没有可能出现这种情况?(我不是在谈论网站或任何与 apache 相关的东西)

example1.com 和 example2.com 都指向相同的 IP。

如果我通过 ssh 连接到 example1.com:22,它会从 LAN 连接到 server1
如果我通过 SSH 连接到 example2.com:22,它会从同一个 LAN 连接到 server2

两台服务器在同一 IP 下的同一 LAN 上,并且 sshd 在同一端口上运行。

use*_*ser 6

我不认为你想要做的事情是可能的。

据我所知,SSH 在协议层面上没有主机名的概念,即使有,你也是在谈论根据你用来获取要连接的 IP 地址的主机名连接到不同的主机,当获得的 IP 地址是相同的,甚至可以在绝对不涉及 example1.com 和 example2.com 名称服务器的情况下获得,因此没有什么可挂钩的。

在 HTTP/1.1 中,每个请求都带有一个Host:标头,标头的值是 Web 浏览器(或其他客户端)中使用的域名。此协议级数据允许 Web 服务器处理对不同域的请求,即使它们都映射到单个 IP 地址。请注意,基于名称的虚拟主机是 HTTP/1.1 对原始协议版本 1.0 的主要改进之一。

也许可以做这样的事情,你在找什么使用SRVDNS记录,但我还没有尝试过和SRV记录的软件支持是参差不齐最好。如果可以使其正常工作,则此类设置可能会严重依赖于您用于连接的客户端。

但是,您可以使用 ~/.ssh/config(假设 OpenSSH;其他软件应该能够通过其他机制执行类似操作)在客户端上使用主机别名和端口说明符执行类似的操作。然后,您可以在两个主机前面运行某种代理(可能是 NAT 或PAT),并根据传入端口号转发连接。在主机前面有一个足够复杂的分离器,你也许可以用端口敲门做一些事情。