1. CentOS7固定IP配置全指南刚装完CentOS7系统时默认使用DHCP动态获取IP地址这在服务器环境中简直是灾难——每次重启都可能换IP远程连接直接抓瞎。我见过太多运维新手因为没配固定IP第二天上班发现所有服务都连不上的崩溃现场。今天我们就来彻底解决这个问题手把手教你配置静态IP让你的服务器稳如老狗。2. 网络配置文件解析2.1 定位网卡配置文件CentOS7的网络配置藏在/etc/sysconfig/network-scripts/目录下文件名通常是ifcfg-ens33老版本可能是eth0。这个ens33是网卡名称你的机器可能是ens160或其他先用ip addr命令查看ip addr | grep state UP -A 2你会看到类似这样的输出2: ens33: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:3a:5b:7c brd ff:ff:ff:ff:ff:ff inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic ens33这里ens33就是你的网卡名记下来待会用。2.2 配置文件参数详解用vim编辑配置文件前先备份是个好习惯cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak vim /etc/sysconfig/network-scripts/ifcfg-ens33关键参数说明重点记这些TYPEEthernet # 网络类型以太网 BOOTPROTOstatic # 改为static表示静态IP原dhcp要改掉 NAMEens33 # 网卡名称和文件名一致 DEVICEens33 # 物理设备名 ONBOOTyes # 开机自启必须yes IPADDR192.168.1.100 # 你的固定IP地址 NETMASK255.255.255.0 # 子网掩码 GATEWAY192.168.1.1 # 网关地址通常是路由器IP DNS18.8.8.8 # 主DNS推荐谷歌DNS DNS2114.114.114.114 # 备DNS国内114更稳注意IPADDR的选取有讲究不能随便填。先用ping测试目标IP是否已被占用避免冲突。比如你想用192.168.1.100先执行ping 192.168.1.100如果没响应才能用。3. 实战配置步骤3.1 确定网络参数在改配置前需要先搞清楚这几个关键信息当前网络信息运行ip route show输出里src后面的就是当前IPvia后面是网关子网掩码通常是255.255.255.0/24可以用ifconfig查看可用IP段比如路由器分配的是192.168.1.1-192.168.1.254要选个不在DHCP分配范围内的比如101-1993.2 修改配置文件按以下模板修改根据实际情况替换值# 清空原有配置保留下面这些就行 TYPEEthernet BOOTPROTOstatic DEFROUTEyes NAMEens33 DEVICEens33 ONBOOTyes IPADDR192.168.1.100 NETMASK255.255.255.0 GATEWAY192.168.1.1 DNS18.8.8.8 DNS2114.114.114.1143.3 重启网络服务改完保存后执行以下命令生效systemctl restart network检查是否成功ip addr show ens33 # 查看IP是否变成你设置的 ping www.baidu.com # 测试外网连通性如果遇到问题先看日志journalctl -xe -u network.service --no-pager4. 常见问题解决方案4.1 网络服务重启失败症状执行systemctl restart network报错Failed to restart network.service: Unit network.service not found.原因CentOS7默认用NetworkManager管理网络解决systemctl stop NetworkManager systemctl disable NetworkManager yum install network-scripts -y # 如果缺少传统网络工具 systemctl start network4.2 能ping通IP但无法解析域名症状ping 8.8.8.8通但ping www.baidu.com失败原因DNS配置有问题解决检查/etc/resolv.conf是否有nameserver记录在网卡配置里补上DNS1和DNS2重启网络后检查cat /etc/resolv.conf是否自动更新4.3 虚拟机网络配置要点如果在VMware中配置需要特别注意虚拟机网络模式选桥接模式Bridged或NAT模式桥接模式下IP要和主机同一网段NAT模式下网关通常是192.168.xxx.2用vmnetcfg命令查看5. 高级配置技巧5.1 多网卡绑定Bonding对于服务器建议配置网卡冗余# 创建bond0配置文件 cat /etc/sysconfig/network-scripts/ifcfg-bond0 EOF DEVICEbond0 TYPEBond BONDING_MASTERyes IPADDR192.168.1.100 NETMASK255.255.255.0 GATEWAY192.168.1.1 ONBOOTyes BOOTPROTOstatic BONDING_OPTSmode1 miimon100 EOF # 修改物理网卡配置以ens33和ens34为例 echo MASTERbond0 /etc/sysconfig/network-scripts/ifcfg-ens33 echo SLAVEyes /etc/sysconfig/network-scripts/ifcfg-ens33 echo MASTERbond0 /etc/sysconfig/network-scripts/ifcfg-ens34 echo SLAVEyes /etc/sysconfig/network-scripts/ifcfg-ens34 # 加载bonding模块 echo alias bond0 bonding /etc/modprobe.d/bonding.conf modprobe bonding # 重启网络 systemctl restart network5.2 持久化DNS配置防止/etc/resolv.conf被覆盖的方法chattr i /etc/resolv.conf # 加锁文件或者禁用NetworkManager的DNS管理echo [main] /etc/NetworkManager/conf.d/dns.conf echo dnsnone /etc/NetworkManager/conf.d/dns.conf systemctl restart NetworkManager6. 防火墙与SELinux注意事项配置固定IP后如果发现外部无法访问可能是防火墙拦截# 查看防火墙状态 firewall-cmd --state # 放行端口示例放行SSH firewall-cmd --permanent --add-servicessh firewall-cmd --reload # 临时关闭防火墙测试用 systemctl stop firewalld # 禁用SELinux生产环境谨慎 setenforce 0 sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config7. 配置检查清单最后分享我的自查清单每次配完固定IP都会跑一遍[ ]ip addr显示IP是否正确[ ]ping 网关是否通如ping 192.168.1.1[ ]ping 8.8.8.8测试外网[ ]nslookup baidu.com测试DNS[ ]systemctl status network无报错[ ]cat /etc/resolv.conf有DNS配置[ ] 重启后IP仍然有效如果所有检查项都通过恭喜你你的CentOS7已经成功配置固定IP再也不用担心IP变来变去了。我在实际运维中发现99%的网络问题都是配置错误导致的按这个流程走能避开大部分坑。