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