我已经为我的虚拟服务器 Ubuntu 12.04 添加了辅助 IP在OpenVZ虚拟主机中运行。 我用了ip addr add xx.xxx.168.95/32 label venet0:1 dev venet0
。
当我执行 ifconfig 时,IP 显示在 lo、venet0 和 venet0:0 下方:
venet0:1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:xx.xxx.168.95 P-t-P:xx.xxx.168.95 Bcast:0.0.0.0 Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
外部访问辅助 IP 存在问题。本地访问工作正常,我使用的是具有基于 ip 的虚拟主机的 tomcat 实例。本地 2 个站点均正确提供服务。外部我只能访问主 IP 上的站点。Google DNS 解析指向相关辅助 IP 的域名,在 Ubuntu 机器上,我也将它们添加到主机中。
但是,我无法从外部访问辅助 IP,甚至无法 ping。看来我需要添加一些内容,以使辅助 IP 可以访问互联网。
我在这里遗漏了什么?
更新
因此,我发现 IP 别名的概念很有趣。这是我的“interfaces”文件:
自动 lo iface lo inet 环回
auto venet0
iface venet0 inet manual
up ifconfig venet0 up
up ifconfig venet0 0
up route add default dev venet0
down route del default dev venet0
down ifconfig venet0 down
iface venet0 inet6 manual
up ifconfig venet0 add yyyy:yyy:5::4db/0
down ifconfig venet0 del yyyy:yyy:5::4db/0
up /sbin/ip -6 route add 2000::/3 dev venet0
auto venet0:0
iface venet0:0 inet static
address xx.xxx.168.175
netmask 255.255.255.255
该文件还指出不要编辑该文件,而是创建一个带有附加规则的“interfaces.tail”文件:
auto venet0:1
iface venet0:1 inet static
address xx.xxx.168.95
netmask 255.255.255.255
但是,创建这个文件还不够。我需要重新启动网络,我试过了,/etc/init.d/networking restart
但出现“无法启动 venet0”。所以我重新启动了。interfaces.tail 没有被读取。
答案1
我不太了解 OpenVZ,但在阅读了一些文档后,veth Net 设备听起来更友好一些,因为它具有更多功能:
但请不要引用我的任何言论。
我检查了“Feature veth venet”的链接
Tasos 的原始答案