我可以通过哪些方式在我的私有服务器群中实现类似弹性 IP 的架构?只有一个全局 IP 可用,但我应该能够通过实现与 AWS 弹性 IP 相同的机制从外部网络 ssh 任何服务器?大致来说,我想这样做:- 为每个服务器分配一个“虚拟 IP”,就像 AWS 所做的那样(例如 c2-111-111-111-111.compute-1.amazonaws.com),它本质上是一个解析为全局 IP 的域名。在我的情况下,所有这些虚拟 IP 都解析为我的全局 IP -现在将请求重定向到内部网络中的适当服务器 - 几乎所有协议都应该可以工作
答案1
Elstic IP 并不像您想象的那样工作。每个“弹性”主机名(如您给出的示例)实际上都会解析为不同的 IP 地址,而 amazon 只是将这些 IP 地址重定向到它们引用的实例。
要执行您想要的操作,您需要有支持将请求的主机名与请求一起传输的协议。HTTP(以及带有 SNI 的 HTTPS)支持这一点,FTP 也是如此。但是,与您毫无根据的断言相反,“几乎所有协议”都将不是工作,因为基于名称的虚拟主机不是一种普遍支持的技术。
如果您想要更多公共 IP,那就获取更多公共 IP。它们目前还不贵,如果您的服务提供商不给您更多,那就不要贪便宜了,使用真正的企业级连接来提供您的企业服务。
答案2
我不知道 aws 的弹性 IP 是如何工作的。
但是,实现您想要的效果的一个好方法就是简单地进行双重 ssh 转发。
在这种情况下,假设您正在通过主机名为 router.globalnetworks.net 的单个防火墙,您可以设置如下 ssh 配置文件:
Host router
User sysadmin
Port 22
IdentityFile ~/.ssh/id_sysadmin
HostName router.globalnetworks.net
LocalForward 5020 192.168.181.20:22
LocalForward 5021 192.168.181.21:22
...
因此,您可以通过以下方式连接到主机 192.168.181.20
- 首先
ssh router
;然后 - ssh -p 5020 @localhost