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配置
-
创建或编辑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=static
且NM_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