(这是一个初学者的问题)
我想在专用服务器(Hetzner)上有两个(或更多)虚拟机(基于 KVM qemu)。
我需要多少个 IPv4 地址?
我有一个主要 IPv4 地址。据我了解,我需要额外的 IPv4 地址来为虚拟机建立桥接网络。我是否需要为每个虚拟机分配一个 IPv4 地址?
我的用例是在不同的虚拟机上拥有数据库服务器和 Web 服务器。因此,虚拟机应该能够相互通信并与外界(互联网)通信。
所以换句话来说:我想通过 ssh 进入主机,然后从那里进入虚拟机,但是 :80 和 :443 流量应该进入 HTML-vm,并且(本地)数据库侦听 MYSQL-虚拟机。
答案1
你说“虚拟机应该能够相互通信并与外界(互联网)通信”。这可以通过 NAT 来实现。真正的问题是这些机器是否需要从外界直接访问,以及你已经表明那个你“认为没有必要从外部世界访问虚拟机,除了到端口 80/443 的流量”。
在此基础上,我想说,您可以将所有虚拟机隐藏在主机的单个公共 IP 地址后面,并使用内部主机/虚拟机桥接网络来允许主机和两个虚拟机直接相互通信。
- 主机接受 ssh 流量(不一定在端口 22 上)
- 主机将端口 80/443 上的 Web 流量转发到 VM Web 服务器
- 主机伪装 (SNAT) 从虚拟机到 Internet 的其他出站流量
主机将有两个接口:公共接口和仅内部接口,为两个虚拟机提供桥接。虚拟机将使用内部主机接口作为默认的向外路由,主机将新流量转发出去,但代理选定的流量向内。