CentOS静态IP改DHCP,ifcfg-ens33参数详解与坑点
把服务器从固定地址切成自动获取,看似一条命令就能搞定,真动手时却常被“网卡起不来”“IP飘走”“DNS失踪”三连击。下面把ifcfg-ens33里每一行参数掰开揉碎,顺带把踩过的坑一次说清,照着做,十分钟内能切完还能平安回滚。

为什么要切回DHCP
机房新增DHCP服务器、云实例迁移、家用路由器换网段,都会让原来写死的IP瞬间失联。手动改十几台机器太费眼,自动获取能省命。更重要的是,DHCP还能统一推送网关、DNS、NTP,后期改网络架构只改服务端配置,客户端零改动。
改前必做的两件小事
1. 给旧配置留底:cp /etc/sysconfig/network-scripts/ifcfg-ens33 /root/ifcfg-ens33.static,回滚只需一条cp。
2. 确认DHCP服务端地址池足够,别把自家服务器挤到和别人冲突的地址,真冲突时查日志能查到怀疑人生。
ifcfg-ens33逐行拆解

用vi /etc/sysconfig/network-scripts/ifcfg-ens33打开,常见字段如下:
DEVICE=ens33
设备名,必须和实际网卡一致。有人克隆虚拟机后这里还是ens32,结果重启网络时报“Device not found”,改回正确名即可。
BOOTPROTO=dhcp
核心开关,原来写static或none,改成dhcp后,系统启动才会调用dhclient。注意大小写,写成Dhcp服务不会报错,但网卡不会动。
ONBOOT=yes

决定开机是否自启,云主机镜像经常默认no,导致重启后SSH失联,改yes是第一步。
UUID=...
这一行可留可删。留的话,确保同一机器多网卡不重复;删的话,NetworkManager会自动生成。克隆机最容易UUID撞车,两个网卡同UUID会随机掉线,删了最省心。
HWADDR=MAC地址
物理地址,云主机换弹性网卡后MAC会变,这里若写死旧地址,系统会报“MAC mismatch”,直接注释掉让内核自己读。
IPADDR、PREFIX、GATEWAY、DNS1
静态时代的老四位,一旦BOOTPROTO=dhcp,这四项全部失效,但建议注释而非删除,方便回滚。有人只改BOOTPROTO,忘记删GATEWAY,结果路由表出现双网关,包出去一半丢一半。
NM_CONTROLLED=yes
NetworkManager掌控开关。最小化安装的系统里NM常被阉割,写成yes却找不到NM,重启网络会卡十秒,无桌面环境直接写no。
PEERDNS=yes
默认yes,DHCP服务端下发的DNS会覆盖/etc/resolv.conf;设成no可保住手填DNS,适合内网有独立解析服务器的场景。
DEFROUTE=yes
是否把DHCP推送的网关设为默认路由,多网卡时只能一张卡yes,其余no,否则路由表打架。
一条命令让配置生效
CentOS 7之后推荐:nmcli con reload && nmcli con up ens33,不用restart network,避免把整张网卡拍掉。老习惯service network restart在8里已被systemd标记为废弃,用一次警告一次。
验证四连
ip addr看是否拿到地址;ip route确认默认网关;cat /etc/resolv.conf查DNS;ping 114.114.114.114测外网。四步全绿才算完工。
高频坑位合集
1. dhclient没装
最小化镜像里被裁掉,现象是BOOTPROTO=dhcp却拿不到地址,yum -y install dhclient后重试即可。
2. 虚拟机克隆导致MAC冲突
VMware/ESXi克隆后若选“保留所有网卡”,新机器和母机同MAC,DHCP服务端会只回一个地址,后启动的机器直接没网,改MAC或删HWADDR行都能解。
3. 防火墙把DHCP请求拦了
firewalld默认放行进站68端口,但有人手痒加规则把udp 67/68全禁,结果dhclient收不到offer,放行或临时关闭防火墙测试。
4. NetworkManager与network-scripts混用
8以后官方推荐NM,但很多人还是习惯脚本,两者同时管理同一张卡会随机掉配置,统一用NM就全用NM,关掉systemctl disable NetworkManager再纯脚本也行,最怕半吊子混用。
5. DHCP服务端地址池耗尽
办公室新加五十台笔记本,服务器只留30个地址,老服务器重启后抢不到IP,扩容池子或缩短租期解决。
回滚方案
真遇到服务端不靠谱,秒回滚:cp /root/ifcfg-ens33.static /etc/sysconfig/network-scripts/ifcfg-ens33 && nmcli con up ens33,三十秒恢复静态,比找领导批变更单快多了。
改个BOOTPROTO只是起点,UUID、MAC、DNS、路由、防火墙、地址池环环都能埋雷。按上面顺序逐项核对,基本能一次过。记住留备份、四连验证、最小化改动,再急也不慌。
