centos7虛擬機器配置ens網路卡靜態地址還是會dhcp分配一個地址?

三思博客發表於2024-04-27

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






相關文章