![更新:](https://linux22.com/image/614842/%E6%9B%B4%E6%96%B0%EF%BC%9A.png)
我有一台 KVM 服务器和两台虚拟机。我有一个主 IP 和两个额外的“单个”IP(不是子网)。我不想在我的 KVM 上拥有带有私有地址的本地网络,但我想将提供商(我购买的)的公共 IP 分配给虚拟机,并且我想在 KVM 主机上管理这些 IP 的路由,而不是在提供商端(因此,不仅仅是从提供商桥接,还可能从我的主机桥接至虚拟机)
我在网上找到的所有教程都有点令人困惑,因为它们都是以不同的方式解决同一个问题(但对我来说仍然不起作用)。
更新:
这会有用吗?
auto eth0
iface eth0 inet manual
auto vmbr0
iface vmbr0 inet static
address 176.x.y.133 (not 192.168.1.1)
netmask 255.255.255.224 (not 255.255.255.0)
gateway 176.x.y.129 (Provider's GW IP)
bridge_ports eth0
bridge_stp off
bridge_fd 0
答案1
您的设置实际上与公共 IP 没有任何关系 - 您的根本问题是您需要使用桥接网络而不是 NAT 或仅主机桥接。
将类似下面的内容放入/etc/network/interfaces
:
iface eth0 inet manual
iface br0 inet static
bridge_ports eth0
bridge_stp no
bridge_fd 0
bridge_maxwait 0
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.2 8.8.8.8 8.8.4.4
dns-search example.com
当然,要针对您的特定设置进行重新配置。
然后配置您的虚拟机以进行桥接br0
,它的行为就像直接连接到进入的电缆一样eth0
。
即您的客户虚拟机将如下所示:
<interface type='bridge'>
<mac address='52:54:de:ad:be:ef'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>