CentOS 7 改 IP 这件事,修改说简单也简单,地址说坑多也真不少。修改我见过太多人上来就
ifconfig一顿敲,地址结果重启后配置全丢。修改CentOS 7 跟 6 最大的地址区别就是网络管理换成了 NetworkManager,网卡命名也从eth0变成了ens33这种 predictable name。修改你要是地址还按老习惯去改/etc/sysconfig/network-scripts/ifcfg-eth0,大概率找不到文件。修改先确认你的地址网卡叫什么。终端里敲:
ip addr输出里能看到类似
ens33、修改ens192、地址enp0s3这样的修改名字。记下来,地址后面要用。修改别用ifconfig了,CentOS 7 最小化安装默认不带 net-tools,得额外装。用ip命令更省事。假设网卡是
ens33,配置文件在/etc/sysconfig/network-scripts/ifcfg-ens33。改之前先备份,这习惯能救命:cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak然后用 vi 或者 nano 打开。默认装完系统后,这个文件里
BOOTPROTO通常是dhcp,ONBOOT可能是no。你要改成静态 IP,核心就这几行:BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=114.114.114.114注意
ONBOOT=yes必须写,不然开机网卡不启动,你 SSH 都连不上。有人改完 IP 重启网络服务,结果当前会话直接断掉,因为 IP 变了。所以最好在虚拟机控制台或者物理机跟前操作,别远程搞。改完保存,重启网络:
systemctl restart network如果报错,多半是配置文件语法问题。比如等号两边不能有空格,IP 地址别写错段。CentOS 7 的 network 服务跟 NetworkManager 有时候会打架。你可以用
nmcli来改,更符合 CentOS 7 的脾气:nmcli con mod ens33 ipv4.addresses 192.168.1.100/24 nmcli con mod ens33 ipv4.gateway 192.168.1.1 nmcli con mod ens33 ipv4.dns "8.8.8.8 114.114.114.114" nmcli con mod ens33 ipv4.method manual nmcli con up ens33这样改完,配置文件也会同步更新。我个人更推荐 nmcli,尤其批量改多台机器的时候,脚本跑起来干净利落。
验证一下:
ip addr show ens33 ping -c 3 192.168.1.1 ping -c 3 baidu.com能 ping 通网关说明局域网没问题,能 ping 通外网说明 DNS 和路由都对。要是外网不通但网关通,检查
/etc/resolv.conf,看看 DNS 写进去没有。有时候 NetworkManager 会覆盖这个文件,你可以在 ifcfg 文件里加PEERDNS=no防止它乱改。还有个坑:如果你改了 IP 段,比如从 192.168.1.x 换到 10.0.0.x,网关和 DNS 也得跟着换。别只改 IPADDR 就完事。另外虚拟机里改完,记得检查虚拟网络编辑器的 DHCP 范围,别跟静态 IP 冲突。
最后说一句,改完最好
顶: 895踩: 59reboot一次,确认开机后 IP 还在。我见过systemctl restart network生效但重启后失效的情况,多半是ONBOOT没设对,或者 NetworkManager 和 network 服务冲突。CentOS 7 里这两个服务并存,选一个用就行,别两边都配。






评论专区