从脚本文件分配 IP 和网关

从脚本文件分配 IP 和网关

我在使用 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 1​​0.0.2.2

然后可选地

sudo /sbin/route 添加默认 gw 1​​0.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 个虚拟网卡,并且信息应该放在第二个网卡中。

相关内容