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

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

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

example1.com 和 example2.com 都指向同一个 IP。

如果我 ssh 到 example1.com:22,它会从 LAN 转到 server1
如果我 ssh 到 example2.com:22,它会从同一 LAN 转到 server2

两台服务器位于同一个 LAN 上,使用同一个 IP,并且 sshd 在同一端口上运行。

答案1

我认为你所尝试做的事是不可能的。

据我所知,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 或) 并根据传入端口号转发连接。如果在主机前安装一个足够复杂的分流器,你也许能够使用端口敲击

相关内容