我目前正在开展一个项目,该项目涉及在三台不同的机器上运行的三个独立模块(目前在 3 个不同的虚拟机中完成),所有模块都必须相互通信。我遇到的一个麻烦是,当我将虚拟机转移到另一台计算机或不同的网络时,虚拟机获取的 IP 地址与每个模块中硬编码的 IP 地址不同。
我觉得必须有一种更简单、更便携的方式来做到这一点。是否可以为每个虚拟机分配一个别名 IP,例如 10.0.0.x 子网,并使用该地址而不是实际的 192.168.1.x 地址来引用它们?每个虚拟机和主机都运行 Ubuntu 9.04 64 位。
提前致谢,Dave McClelland
编辑:复制我的 /etc/network/interfaces 文件,而不是在下面对其进行评论——它被弄乱了
auto eth0
iface eth0 inet dhcp
iface eth0:0 inet static
address 192.168.14.21
network 192.168.14.0
netmask 255.255.255.0
broadcast 192.168.14.255
gateway 192.168.14.1
答案1
编辑 /etc/network/interfaces:
iface eth0 inet static
address 192.168.0.10
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
更改以适合您的首选网络子网/设置。
要在 DHCP 的 eth0 上创建别名:
# The primary network interface
auto eth0
iface eth0 inet dhcp
iface eth0:0 inet static
address 192.168.0.10
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
启动接口:
$ sudo ifup eth0:0
$ ifconfig eth0:0
eth0:0 Link encap:Ethernet HWaddr 00:0c:29:b0:fe:76
inet addr:192.168.0.10 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:19 Base address:0x2000
答案2
我在 Ubuntu 中遇到了同样的问题。仅仅因为您编辑了接口文件以对 IP 进行硬编码,并不能阻止 DHCP 客户端租用新 IP。
sudo /etc/init.d/dhcp stop
一旦发现它可以正常工作,您就可以永久删除 DHCP 客户端,这样它就不会再回来:
sudo apt-get remove dhcp3-client