CentOS 服务器静态 IP 配置实战指南
1. 为什么需要配置静态IP刚接触服务器运维的朋友可能好奇为什么不能直接用自动获取的IP我刚开始管理服务器时也这么想直到有次凌晨两点被叫起来处理故障——DHCP自动分配的IP变了导致所有依赖这个IP的服务集体罢工。那次教训让我明白生产环境服务器必须用静态IP就像你家门牌号不能天天变一样。静态IP和动态IP最核心的区别在于稳定性。动态IPDHCP适合办公电脑这种临时设备但服务器需要7×24小时稳定服务。想象一下如果数据库服务器的IP突然变化所有连接它的应用都会报错。实际工作中以下场景必须配置静态IP跑数据库、中间件等关键服务的机器需要被其他服务器通过IP固定访问的节点集群环境中需要固定标识的服务器对外提供API或Web服务的生产环境CentOS作为企业级Linux发行版配置静态IP其实很简单但有些细节不注意就会踩坑。下面我会手把手带你走完整套流程包括我这些年总结的避坑技巧。2. 配置前的准备工作2.1 查看当前网络信息动手修改前一定要先记录现有网络配置。这就像做手术前的检查报告能帮你快速回滚。打开终端执行ip addr show你会看到类似这样的输出以常见的ens33网卡为例2: ens33: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:3d:5e:9e brd ff:ff:ff:ff:ff:ff inet 192.168.1.105/24 brd 192.168.1.255 scope global dynamic ens33 valid_lft 86384sec preferred_lft 86384sec inet6 fe80::20c:29ff:fe3d:5e9e/64 scope link valid_lft forever preferred_lft forever重点记下网卡名称这里是ens33当前IP地址192.168.1.105子网掩码/24对应255.255.255.0默认网关通过ip route show查看2.2 确定静态IP参数找网络管理员要以下信息就像租房子要问清楚地址可用IP地址不能和现有设备冲突建议ping一下测试子网掩码通常是255.255.255.0默认网关一般是路由器IP如192.168.1.1DNS服务器可以用公共DNS如8.8.8.8小技巧在办公环境配置时我习惯先用手机连WiFi查看手机获取的网络参数作为参考。3. 详细配置步骤3.1 修改网络配置文件CentOS的网络配置文件藏在/etc/sysconfig/network-scripts/目录下文件名格式为ifcfg-网卡名。用vim编辑记得加sudosudo vim /etc/sysconfig/network-scripts/ifcfg-ens33原始内容类似这样TYPEEthernet BOOTPROTOdhcp DEVICEens33 ONBOOTyes修改后配置示例重点参数已加注释TYPEEthernet BOOTPROTOstatic # 关键修改dhcp改为static DEFROUTEyes NAMEens33 DEVICEens33 ONBOOTyes # 开机自动启用 # 以下是新增的静态IP配置 IPADDR192.168.1.100 # 你的静态IP NETMASK255.255.255.0 # 子网掩码 GATEWAY192.168.1.1 # 默认网关 DNS18.8.8.8 # 主DNS DNS2114.114.114.114 # 备选DNS避坑指南UUID字段如果存在不要删除但新系统可能没有子网掩码也可以用CIDR格式如PREFIX24多个DNS服务器就继续写DNS3、DNS43.2 重启网络服务保存文件后执行以下命令让配置生效sudo systemctl restart NetworkManager老版本CentOS可能要用sudo service network restart这里有个血泪教训有次我配置完直接断开了SSH连接结果配置有误导致连不回去。建议在本地控制台操作或者先开个ping测试窗口ping -t 8.8.8.8 # 持续ping测试网络3.3 验证配置结果执行以下命令检查是否配置成功ip addr show ens33 # 查看IP是否生效 ping www.baidu.com # 测试DNS解析 ip route show # 查看默认路由正常应该看到网卡显示你配置的静态IP能ping通外网域名说明DNS工作路由表显示正确的网关4. 常见问题排查4.1 网络服务启动失败如果重启网络报错按这个顺序检查用journalctl -xe查看详细错误日志检查配置文件语法cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep -v ^#临时用DHCP恢复网络dhclient ens334.2 能ping通IP但无法解析域名这是典型的DNS配置问题检查/etc/resolv.conf是否包含你的DNS服务器测试nslookup www.baidu.com可能被NetworkManager覆盖建议在网卡配置文件写DNS4.3 多网卡绑定静态IP对于有多个网卡的服务器每个网卡对应一个配置文件。我曾给数据库服务器配置过双网卡eth0192.168.1.100业务通信eth110.0.0.100内部集群通信关键点是为每个网卡创建独立的ifcfg-ethX文件并确保GATEWAY只在主网卡配置。5. 高级配置技巧5.1 禁用IPv6可选有些内网环境不需要IPv6可以在配置文件中添加IPV6INITno IPV6_AUTOCONFno IPV6_DEFROUTEno5.2 配置静态路由如果需要访问其他子网在配置文件追加ADDRESS010.1.0.0 NETMASK0255.255.0.0 GATEWAY0192.168.1.2545.3 网络绑定Bonding对于需要高可用的服务器可以配置多网卡绑定。这是我给Web集群做的bond配置示例DEVICEbond0 TYPEBond BONDING_MASTERyes IPADDR192.168.1.200 NETMASK255.255.255.0 GATEWAY192.168.1.1 BONDING_OPTSmode1 miimon1006. 安全加固建议配置完静态IP后建议做这些安全措施修改SSH端口并禁用root登录配置防火墙只放行必要端口sudo firewall-cmd --permanent --add-servicehttp sudo firewall-cmd --reload设置fail2ban防止暴力破解定期备份网络配置文件sudo cp /etc/sysconfig/network-scripts/ifcfg-ens33 ~/ifcfg-ens33.bak