Linux 静态 IP 配置实战:CentOS 与 Ubuntu 深度指南
在网络运维中,将动态 IP(DHCP)切换为静态 IP(Static IP)是服务器上线的标准动作。稳定的 IP 地址是部署 Web 服务、数据库集群以及实现内网互通的前提。由于 CentOS 和 Ubuntu 采用了截然不同的网络管理架构,配置方式也存在显著差异。以下将分别针对两大主流发行版提供标准化的配置流程。
一、CentOS / RHEL 系列:传统配置文件管理
CentOS 7 及更早版本(包括部分 CentOS 8 最小化安装)主要依赖传统的 network-scripts 脚本进行网络管理。其核心在于编辑网卡对应的配置文件,并通过重启网络服务生效。
1.1 定位与编辑配置文件
首先,需确认网卡名称(常见为 ens33, eth0, eno16777736 等),可通过 ip addr 命令查看。配置文件位于 /etc/sysconfig/network-scripts/ 目录下,命名规则为 ifcfg-<网卡名>。
操作步骤:
# 使用 vi/vim 编辑配置文件(以 ens33 为例)vi /etc/sysconfig/network-scripts/ifcfg-ens33
关键参数详解:请确保文件中包含以下核心字段,若不存在则手动添加,若存在则修改数值:
TYPE=Ethernet # 网络类型:以太网PROXY_METHOD=none # 代理设置:无BROWSER_ONLY=no # 仅浏览器模式:否BOOTPROTO=static # 【关键】引导协议:static(静态) 或 dhcp(动态)DEFROUTE=yes # 启用默认路由IPV4_FAILURE_FATAL=no # IPv4 失败是否致命:否IPV6INIT=yes # 初始化 IPv6(根据需求调整)NAME=ens33 # 连接名称,需与文件名一致DEVICE=ens33 # 【关键】物理设备名称,需与实际网卡一致ONBOOT=yes # 【关键】开机自动激活:yes(是) / no(否)# --- 静态 IP 核心配置 ---IPADDR=192.168.1.100 # 设定的静态 IP 地址NETMASK=255.255.255.0 # 子网掩码 (也可使用 PREFIX=24 替代)GATEWAY=192.168.1.1 # 【关键】默认网关,必须与路由器 IP 一致DNS1=8.8.8.8 # 【关键】主 DNS 服务器DNS2=8.8.4.4 # 备用 DNS 服务器
💡 避坑指南:
ONBOOT 必须设为 yes,否则重启后网卡不会自动启动。BOOTPROTO 必须从 dhcp 改为 static 或 none。
1.2 重启网络服务
修改保存后,需重启网络服务使配置生效。根据 CentOS 版本不同,服务名称有所区别:
# 场景 A:CentOS 7 及以上 (使用传统 network 服务)# 注意:若系统同时安装了 NetworkManager,建议优先停止 NM 以避免冲突systemctl restart network# 场景 B:若系统主要依赖 NetworkManager (常见于带桌面的版本或 CentOS 8+)systemctl restart NetworkManager# 验证连接ping -c 4 www.baidu.com
1.3 验证 DNS 解析
网络重启成功后,系统会自动将配置文件中的 DNS1/DNS2 写入 /etc/resolv.conf。
# 查看 DNS 配置文件,确认 nameserver 已更新cat /etc/resolv.conf
预期输出应包含 nameserver 8.8.8.8 等内容。若未更新,可手动编辑该文件临时修复,但重启网络后会被覆盖。
二、Ubuntu 系列:Netplan 声明式配置
自 Ubuntu 18.04 LTS 起,Canonical 弃用了旧的 /etc/network/interfaces,转而采用 Netplan 作为默认的网络配置工具。Netplan 使用 YAML 格式描述网络拓扑,语法简洁但对缩进要求极其严格。
2.1 定位与编辑 YAML 文件
Netplan 的配置文件位于 /etc/netplan/ 目录,文件名通常以 .yaml 结尾(如 00-installer-config.yaml, 50-cloud-init.yaml 等)。
操作步骤:
# 进入配置目录并查看文件名ls /etc/netplan/# 编辑对应的 yaml 文件 (文件名视实际环境而定)vi /etc/netplan/01-netcfg.yaml
标准配置模板:请严格遵循 YAML 缩进规范(必须使用空格,严禁使用 Tab 键),通常缩进为 2 个空格。
network:version:2renderer:networkd# 渲染器:server 版常用 networkd,桌面版常用 NetworkManagerethernets:ens18:# 【关键】替换为你的实际网卡名称 (通过 ip addr 查看)dhcp4:no# 关闭 DHCPdhcp6:no# 关闭 IPv6 DHCP (可选)addresses:-192.168.1.100/24# 【关键】IP 地址及 CIDR 掩码 (24 代表 255.255.255.0)routes:# 新版 Netplan 推荐写法 (gateway4 已弃用但部分版本仍兼容)-to:defaultvia:192.168.1.1# 【关键】默认网关nameservers:addresses:-8.8.8.8# 主 DNS-8.8.4.4# 备用 DNSsearch:[]# 搜索域 (通常留空)
⚠️ 语法警告:
- YAML 对缩进非常敏感,层级错误会导致
netplan apply 失败。 addresses 列表中的 IP 必须带掩码位数(如 /24),不能单独写 IP。- 在较新的 Ubuntu 版本(20.04+)中,
gateway4 已被标记为弃用,建议使用上述 routes 写法,虽然 gateway4 目前大多仍可用,但为了未来兼容性,推荐适应新语法。
2.2 应用与验证配置
Netplan 提供了独特的“试错”机制,允许在应用配置前进行语法检查和临时测试。
# 步骤 1:语法检查与临时应用 (推荐)# 该命令会应用配置并在 120 秒内等待用户确认。若网络断开,系统将自动回滚,防止失联。netplan try# 步骤 2:直接应用配置 (若确认无误)netplan apply# 步骤 3:验证网络连通性ip addr show ens18 # 确认 IP 已变更ping -c 4 192.168.1.1 # 测试网关连通性ping -c 4 www.ubuntu.com # 测试 DNS 解析与外网连通性
三、总结与运维建议
| | |
|---|
| 配置文件路径 | /etc/sysconfig/network-scripts/ifcfg-* | /etc/netplan/*.yaml |
| 配置格式 | | |
| 生效方式 | systemctl restart network | netplan apply |
| 容错机制 | | netplan try |
| DNS 管理 | 写入 /etc/resolv.conf (由服务管理) | 由 Netplan 直接生成 /run/systemd/resolve/resolv.conf |
🛡️ 运维安全红线:
- 远程操作风险:在通过 SSH 远程修改 IP 或网关时,一旦配置错误(如网关填错),将立即导致连接中断且无法恢复。
- 对策:推荐使用
screen 或 tmux 会话进行操作;或者使用 at 命令设定一个 5 分钟后重启网络服务的定时任务作为“后悔药”,若新配置成功则取消该任务。
- IP 冲突检测:在正式应用静态 IP 前,务必先在局域网内
ping 一下该 IP,确保未被其他设备占用,避免引发 IP 冲突导致双双掉线。 - 备份习惯:修改任何网络配置文件前,养成
cp filename filename.bak 的备份习惯,这是运维人员的职业素养。
🌟 技术无止境掌握 Linux 网络配置是迈向高级运维工程师的第一步。希望这份指南能助您轻松搞定网络设置。请关注我,获取更多底层原理解析与实战案例;欢迎留言探讨您在配置过程中遇到的奇葩问题;如果觉得有用,请转发分享给团队伙伴!