centos7虚拟机配置ens网卡静态地址还是会dhcp分配一个地址?

centos7虚拟机配置ens网卡静态地址还是会dhcp分配一个地址?

问题现象

[root@cent0s7 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:34:e5:d1 brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.195/24 brd 10.0.1.255 scope global noprefixroute dynamic ens33
       valid_lft 1711sec preferred_lft 1711sec
    inet 10.0.1.130/24 brd 10.255.255.255 scope global secondary ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::7d0c:d6f4:c634:571d/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@cent0s7 ~]# ls
anaconda-ks.cfg
[root@cent0s7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="95328705-82b9-4dd4-abd5-a0c16ba317a2"
IPADDR=10.0.1.130
GATEWAY=10.0.1.2
PREFIX=255.255.255.0
DNS1=8.8.8.8
DNS2=114.114.114.114
DEVICE="ens33"
ONBOOT="yes"


根据您提供的/etc/sysconfig/network-scripts/ifcfg-ens33文件内容,配置已经是静态IP设置,并没有直接开启DHCP的配置项,看起来您已经正确地配置了静态IP地址。但是,如果系统依然获取到了DHCP分配的地址,可能是因为NetworkManager服务自动管理网络连接时启用了DHCP。

要确保不使用DHCP,您需要检查NetworkManager的配置或直接控制NetworkManager的行为来禁用接口上的DHCP。以下是几种可能的操作方式:

方法1: 修改NetworkManager配置

  1. 创建或编辑NetworkManager离线配置文件

    如果您希望通过NetworkManager管理但禁用DHCP,可以在/etc/NetworkManager/conf.d/目录下创建或编辑文件,比如创建一个10-ens33-no-dhcp.conf文件,并加入以下内容:

    [keyfile]
    unmanaged-devices=interface-name:ens33;
    

    但这种方式实际上是让NetworkManager不对ens33接口进行管理,可能不是您想要的效果。

方法2: 直接在ifcfg文件中禁用NetworkManager管理

/etc/sysconfig/network-scripts/ifcfg-ens33文件中添加以下行,来显式告知系统不通过NetworkManager管理这个接口:

NM_CONTROLLED=no

方法3: 禁用NetworkManager对特定接口的管理

如果您希望完全禁用NetworkManager对ens33接口的管理,可以使用以下命令:

nmcli conn modify ens33 managed false

这将使ens33接口不受NetworkManager控制。

重启服务

完成上述任一修改后,您需要重启NetworkManager服务以使更改生效:

sudo systemctl restart NetworkManager

或者,如果直接修改了ifcfg-ens33文件并且未禁用NetworkManager管理,则重启网络服务:

sudo systemctl restart network

请根据您的具体需求和系统配置选择合适的方法。如果只是想确保静态IP设置生效,通常确保BOOTPROTO=staticNM_CONTROLLED=no(如果适用)就已经足够。

解决


[root@cent0s7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="95328705-82b9-4dd4-abd5-a0c16ba317a2"
IPADDR=10.0.1.130
GATEWAY=10.0.1.2
PREFIX=255.255.255.0
DNS1=8.8.8.8
DNS2=114.114.114.114
DEVICE="ens33"
ONBOOT="yes"
NM_CONTROLLED=no    #添加这个



[root@cent0s7 ~]# reboot


[root@cent0s7 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:34:e5:d1 brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.130/24 brd 10.255.255.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe34:e5d1/64 scope link 
       valid_lft forever preferred_lft forever






posted @ 2024-04-27 18:32  三思博客  阅读(17)  评论(0编辑  收藏  举报