我在使用 Vagrant 管理的虚拟机上安装了 Ubuntu 10。我需要在启动时设置 ip 和网关,因此根据我在 vagrant github 网站上找到的信息,我向 vagrantfile 中添加了一个脚本文件。
sh 文件如下所示
sudo /sbin/ifconfig eth1 142.17.1.10 netmask 255.255.252.0 up
sudo /sbin/route add default gw 142.17.1.1 eth1
我希望虚拟机拥有的 IP 是 142.17.1.10,网络掩码为 255.255.252.0,网关 IP 必须是 142.17.1.1
不幸的是,这不起作用:IP 设置正确,但是由于我无法从 Internet 访问 VM,因此网关出现了一些问题。
VM 路线看起来像
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.2.0 * 255.255.255.0 U 0 0 0 eth0
142.17.0.0 * 255.255.252.0 U 0 0 0 eth1
default 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
default 142.17.1.1 0.0.0.0 UG 0 0 0 eth1
和 ip
eth1 Link encap:Ethernet HWaddr 08:00:27:74:ad:30
inet addr:142.17.1.10 Bcast:142.17.3.255 Mask:255.255.252.0
inet6 addr: fe80::a00:27ff:fe74:ad30/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3224 errors:0 dropped:0 overruns:0 frame:0
TX packets:133 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:266372 (266.3 KB) TX bytes:8646 (8.6 KB)
我错过了什么?
感谢您的帮助
答案1
将以下行添加到脚本以删除现有的默认网关
sudo /sbin/route del 默认 gw 10.0.2.2
然后可选地
sudo /sbin/route 添加默认 gw 10.0.2.2 metric 100
如果您想使用原来的默认网关作为备份网关(它具有更高的度量,因此新的网关将被优先选择)。
我不知道 Vagrant,但另一种方法可能是修改 /etc/network/interfaces 并在文件中添加 eth1 的配置,如下所示:
自动 eth1 iface eth1 inet 静态 地址 142.17.1.10 网络掩码 255.255.255.0 网关 142.17.1.1
并从 eth0 中删除网关行,这将允许它在启动时以“ubuntu”方式自动启动。
我注意到,这一切都假设您有 2 个虚拟网卡,并且信息应该放在第二个网卡中。