我使用的是具有多个接口(ens161、ens192、ens224、ens256)的 CentOS7。该盒子具有所有静态 IP,但有一个接口设置为 DHCP(ens192)。ens192 设置为 onboot=no。我在 /etc/sysconfig/network 中设置了静态路由。这很好用。问题是如果我想启动 ens192 并使用 DHCP 提供的默认网关。我通过执行以下操作删除了在 /etc/sysocnfig/network 中设置的静态路由
ip route del 0/0
然后我执行 ifup ens192 接口将出现一个 IP,但是当我这样做时:
route
我不会看到服务器给出的默认 gw。让它工作的唯一方法是启动 NetworkManager 进程。我默认禁用它的原因是,出于某种原因,当 NetworkManager 运行时,如果我执行
service network restart
它不尊重
onboot=no
我已经在 ifcfg-ens192 中设置了。
我认为目前唯一能让他工作的解决方案是编写一个脚本来执行以下任务:
ip route del 0/0
echo ''> /etc/sysconfig/network
service network restart
ip route del 0/0
ifup ens192
这是唯一看起来有效但有点“黑客”的东西。
答案1
我刚刚遇到这个问题,看了一会儿后,我发现问题的根源是 /etc/sysconfig/network-scripts/ifcfg- 中的“DEFROUTE=no”,将 no 改为 yes,一切就都正常了。基本上,这是针对多个网络接口的,您可以设置默认网关并保存信息,但您可以更改选择哪个接口作为总体默认网关