如何设置网络接口以在 CentOS 7 中启动时使用 DCHP?

如何设置网络接口以在 CentOS 7 中启动时使用 DCHP?

我有一台 CentOS 7 机器,有 2 个 NIC,eth0 和 eth1。我通过编辑其配置和设置禁用了 eth0(因为我的设置不需要它):

ONBOOT="no"

在我按如下方式配置 eth1(我的 LAN 接口)后,它仍然不会请求 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、NETMASK 和 GATEWAY,因为它会绕过它们。对于 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

注意:首先,检查您的网络是静态的还是 dhcp。

答案2

您应该为第二个 NIC 创建 2 个虚拟接口:eth1一个用于 DHCP,另一个eth1:1用于您的专用网络。

eth1在(文件)的配置中/etc/sysconfig/network-scripts/ifcfg-eth1,您应该使用DEVICE="eth1"BOOTPROTO="dhcp" IPADDRNETMASK

eth1:1在(文件)的配置中/etc/sysconfig/network-scripts/ifcfg-eth1:1,您应该为本地专用网络配置静态参数,例如IPADDR、、NETMASKGATEWAY(这很重要!)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"

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

PS:如果您不再需要直接访问您的私人网络10.0.X.X,您可以只使用第一个配置文件/etc/sysconfig/network-scripts/ifcfg-eth1

相关内容