我现在遇到了一个问题,真的不知道错误出在哪里。我从 ISP 处获得了根服务器。该根服务器已经包含一个 IP,今天我又预订了两个 IP 地址。所以我现在要做的是将这两个新的 IP 地址映射到两个虚拟机,同时保留根服务器包含的 IP。那么我是如何实现这一点的呢?
我想的是这样的:
br0
- 保 stub 服务器的原始IP
br0:0
- 持有第一个虚拟机的第一个 IP
br0:1
- 持有第二个虚拟机的第二个 IP
但这行不通。有任何想法吗。我真的很沮丧。花了一天的时间,没有解决办法。
最佳答案
我也在类似的情况下挣扎,我有服务器,并且必须指出设置网桥确实让我出局,必须重新启动才能到达它,无论如何我已经设法通过 iptables 处理它。 .
#create alias for your second ip address (lets say its 111.222.333.2 , local address 192.168.1.2) ifconfig eth0:1 111.222.333.2 #you should add netmask to be proper if you've got subnet #now you should be able to ping this second address from outside world - try it, #that is if you have not set up firewall to block pings ... flush iptables rules if you are not sure... #set up NAT rule (network-address-translate : outside ip-> local ip and back local ip->outside ip) #assumes your virtual machines lives as 192.168.1.2 iptables -t nat -A PREROUTING -d 111.222.333.2 -j DNAT --to-destination 192.168.1.2 iptables -t nat -A POSTROUTING -s 192.168.1.2 -j SNAT --to-source 111.222.333.2
这确实对我处理具有多个 IP 地址和 KVM 虚拟机的服务器有帮助, 它们最初是在默认网络(转发模式=nat)中运行的,因此它们首先通过NAT和内部IP连接到互联网,这也为它们提供了外部公共(public)IP地址。 您还可以通过调整 iptables 规则来设置地址(如 -d 111.222.333.2:80 -p tcp)并将端口添加到本地地址,逐个端口地执行这些重定向...
您可能还需要打开设备IP转发,您可以通过例如检查
sysctl -a | grep forward(您应该在 eth0 设备上看到它),可以选择通过适当的 sysctl 命令来调整它,例如
sysctl -w net.ipv4.ip_forward=1
关于ip - 多个 IP + KVM 桥接器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21834044/