在CentOS中,如何设置网络接口以在引导时使用?

分享于 

3分钟阅读

电脑

  繁體 雙語

问题:

我有一个 CentOS 7机器,它有 2网卡,eth0和 eth1. 我已经通过编辑它的配置和设置来禁用 eth0:

 
ONBOOT="no"



 

配置 eth1 ( 我的局域网接口) 之后,它仍然不会请求 DHCP:


DEVICE="eth1"


ONBOOT="yes"


NM_CONTROLLED="no"


BOOTPROTO="dhcp"


IPADDR="10.0.0.5" # This is the IP assigned to this machine on the private network.


NETMASK="255.255.0.0"


IPV6INIT="no"


MTU="1450"



现在每次重启系统,我都必须手动使用 dhclient eth1 命令来获取DHCP地址。 我还能做什么来解决这个问题? 我想设置BOOTPROTO是关键 !


回答 1:

如果你已经设置了" BOOTPROTO=dhcp",你不需要给 IPADDR,网络掩码和网关,因为它会绕过它们。 对于 dhcp,请使用如下所示:


vi/etc/sysconfig/network-scripts/ifcfg-eth0



TYPE=Ethernet


BOOTPROTO=dhcp


DEFROUTE=yes


NAME=eth1


UUID=ACCORDING_TO_YOURS


DEVICE=eth1


ONBOOT=yes



保存文件后,只需重新启动服务即可进行交叉检查。


# systemctl restart network



注意:首先检查你的网络是 static 还是 dhcp。


回答 2:

你应该为第二个网卡创建 2个虚拟接口: eth1 本身为你的private 网络提供DHCP和 eth1:1

eth1的配置中( 文件 /etc/sysconfig/network-scripts/ifcfg-eth1 ) ) 你应该使用 DEVICE="eth1"BOOTPROTO="dhcp" 和不使用任何 IPADDRNETMASK

eth1:1的配置中( 文件 /etc/sysconfig/network-scripts/ifcfg-eth1:1 ) 你应该为本地 private 网络配置 static 参数,例如 IPADDRNETMASKGATEWAY 和( 重要的是) DEVICE="eth1:1"BOOTPROTO="static"

因此,配置文件应该类似于以下内容:

/etc/sysconfig/network-scripts/ifcfg-eth1:


DEVICE="eth1"


ONBOOT="yes"


NM_CONTROLLED="no"


BOOTPROTO="dhcp"


IPV6INIT="no"


MTU="1450"




/etc/sysconfig/network-scripts/ifcfg-eth1:1:


DEVICE="eth1:1"


ONBOOT="yes"


NM_CONTROLLED="no"


BOOTPROTO="static"


IPADDR="10.0.0.5" # This is the IP assigned to this machine on the private network.


NETMASK="255.255.0.0"


IPV6INIT="no"


MTU="1450"



在这种情况下,你的系统将启动正确的网络配置。

如果你不再需要直接访问你的private 网络 10.0.X.X,你只能使用第一个配置文件 /etc/sysconfig/network-scripts/ifcfg-eth1



INT  BOO  SET  引导  接口  network