背景
该服务器是 VMware 虚拟机,默认 DHCP 方式获取 IP,每次重启 IP 可能变化,导致 SSH 和数据库客户端都要改连接地址。
排查现状
bash
ip addr show # 网卡 eno16777736,IP 后带 "dynamic" 字样 = DHCP
ip route # 默认网关 192.168.110.1
cat /etc/resolv.conf # DNS 192.168.110.1
配置方法
编辑 /etc/sysconfig/network-scripts/ifcfg-eno16777736(CentOS 7 网卡配置文件,命名规则 ifcfg-<网卡名>),核心改动:
ini
BOOTPROTO=static # 原 dhcp,改为 static
IPADDR=192.168.110.51 # 固定的 IP(沿用当前 IP,避免其他机器改连接信息)
PREFIX=24 # 子网掩码 255.255.255.0
GATEWAY=192.168.110.1 # 默认网关
DNS1=192.168.110.1 # 首选 DNS(VMware NAT 网关)
DNS2=114.114.114.114 # 备用公共 DNS
生效:
bash
systemctl restart network
验证要点
ip addr中 IP 后不再有dynamic字样,即静态生效ping 网关通,systemctl is-active network为 active- 改配置前先备份 :
cp ifcfg-eno16777736 /root/ifcfg-eno16777736.bak_dhcp,改坏了随时可回滚
知识点
- VMware 三种网络模式:NAT(虚拟机共享宿主机 IP,网关是虚拟网关如 192.168.110.1)、桥接(直接接入物理局域网)、仅主机。NAT 模式下 VMware 的 DHCP 由虚拟交换机提供,静态 IP 必须与其子网匹配。
- 静态 IP 的注意事项:IP 要么在 VMware 的 DHCP 排除范围内,要么不会与 DHCP 池中其他租约冲突;最稳妥的做法是像本次一样"把当前已租约的 IP 固定下来"。
- PEERDNS=no :静态配置后若不想 DHCP 覆盖
/etc/resolv.conf,可加PEERDNS=no,DNS 直接由配置文件的 DNS1/DNS2 管理(本例改为 static 后 DHCP 不再运行,无此问题)。