CentOS Stream 10 配置静态 IP 完整指南

从一键脚本到原理详解,让你轻松搞定 CentOS Stream 10 的静态 IP 配置

适用场景

  • 操作系统:CentOS Stream 10
  • 网卡名称:ens160
  • 目标IP:192.168.6.102
  • 网关:192.168.6.2(VMware NAT模式典型配置)

重要提示

在开始配置前,请务必确认你的网络环境:

bash 复制代码
# 查看当前网络配置,确认网关地址
ip route show

VMware 网络模式对应网关:

  • NAT模式:网关通常是 *.2(如 192.168.6.2)
  • 桥接模式:网关通常是 *.1(如 192.168.6.1)

一、一键配置脚本

直接以 root 权限执行以下脚本即可完成配置:

bash 复制代码
#!/bin/bash
# CentOS Stream 10 网卡 ens160 一键配置静态 IP 脚本
# 目标 IP: 192.168.6.102

# 定义配置参数(请根据你的实际环境修改)
INTERFACE="ens160"
IP_ADDR="192.168.6.102/24"        # IP地址 + 子网掩码(CIDR格式)
GATEWAY="192.168.6.2"             # 网关地址(请确认你的实际网关)
DNS1="114.114.114.114"
DNS2="8.8.8.8"

# 检查目标 IP 是否已被占用
echo "🔍 检查 IP ${IP_ADDR%/24} 是否可用..."
if ping -c 1 -W 1 ${IP_ADDR%/24} > /dev/null 2>&1; then
    echo "❌ 错误:IP ${IP_ADDR%/24} 已被占用!"
    echo "请修改脚本中的 IP_ADDR 为一个未使用的 IP 地址。"
    exit 1
else
    echo "✅ IP ${IP_ADDR%/24} 可用"
fi

# 配置静态 IP
echo "⚙️ 开始配置静态 IP..."
sudo nmcli connection modify "$INTERFACE" ipv4.addresses "$IP_ADDR"
sudo nmcli connection modify "$INTERFACE" ipv4.gateway "$GATEWAY"
sudo nmcli connection modify "$INTERFACE" ipv4.dns "$DNS1 $DNS2"
sudo nmcli connection modify "$INTERFACE" ipv4.method manual
sudo nmcli connection modify "$INTERFACE" connection.autoconnect yes

# 重载并激活配置
sudo nmcli connection reload
sudo nmcli connection down "$INTERFACE" && sudo nmcli connection up "$INTERFACE"

echo "✅ 静态 IP 配置完成!"
echo "📋 当前网络信息:"
ip addr show "$INTERFACE" | grep inet
echo ""
echo "🌐 路由信息:"
ip route show | grep default
echo ""
echo "📡 DNS 信息:"
nmcli device show "$INTERFACE" | grep DNS

⚠️ 注意事项:

  • 执行前请确认网关地址 GATEWAY 与你的实际环境一致
  • 如果目标 IP 192.168.6.102 被占用,请更换为其他未被使用的 IP
  • 配置完成后 SSH 连接会短暂断开,需要用新 IP 重新连接

二、逐步详细讲解

第一步:确认网卡名称和当前网络配置

bash 复制代码
# 查看所有网络设备
ip addr show
# 或使用
nmcli device status

确认网卡名称确实是 ens160,同时查看当前 IP 地址和网关信息。

第二步:了解 CentOS Stream 10 的网络配置方式

CentOS Stream 10 全面采用 NetworkManager 作为网络管理工具,配置文件位置:

  • 旧方式(CentOS 7)/etc/sysconfig/network-scripts/ifcfg-*
  • 新方式(CentOS Stream 10)/etc/NetworkManager/system-connections/*.nmconnection

推荐使用 nmcli 命令行工具进行配置,避免手动编辑配置文件带来的格式错误。

第三步:使用 nmcli 配置静态 IP

以下每条命令的含义详解:

1. 设置 IP 地址和子网掩码
bash 复制代码
nmcli connection modify ens160 ipv4.addresses 192.168.6.102/24
  • connection modify:修改现有连接配置
  • ens160:连接名称(通常与网卡名称一致)
  • ipv4.addresses:指定 IPv4 地址,/24 表示子网掩码 255.255.255.0
2. 设置网关地址
bash 复制代码
nmcli connection modify ens160 ipv4.gateway 192.168.6.2

关键点 :在 VMware NAT 模式下,网关通常是 *.2。请先用 ip route show 确认你的实际网关。

3. 设置 DNS 服务器
bash 复制代码
nmcli connection modify ens160 ipv4.dns "114.114.114.114 8.8.8.8"

多个 DNS 之间用空格分隔。这里配置了国内常用的 114DNS 和 Google 公共 DNS。

4. 设置为手动(静态)模式
bash 复制代码
nmcli connection modify ens160 ipv4.method manual
  • manual:手动配置(静态 IP)
  • auto:自动获取(DHCP)

⚠️ 重要顺序 :建议先设置 ipv4.addresses,再设置 ipv4.method manual,避免报错。

5. 设置开机自动连接
bash 复制代码
nmcli connection modify ens160 connection.autoconnect yes

确保系统重启后网卡自动启用并应用静态 IP 配置。

第四步:重载并激活配置

bash 复制代码
# 重载配置,将修改写入磁盘
nmcli connection reload

# 重启网卡连接,应用新配置(注意:SSH 会短暂断开)
nmcli connection down ens160 && nmcli connection up ens160

第五步:验证配置结果

bash 复制代码
# 查看 IP 地址
ip addr show ens160 | grep inet

# 查看连接配置详情
nmcli connection show ens160 | grep -E "ipv4.method|ipv4.addresses|ipv4.gateway|ipv4.dns"

# 测试网关连通性
ping -c 3 192.168.6.2

# 测试外网连通性
ping -c 3 8.8.8.8

# 测试 DNS 解析
ping -c 3 www.baidu.com

如果 ipv4.method 显示为 manual,说明静态 IP 配置成功。


三、配置文件详解

配置文件存储位置

执行 nmcli 命令后,配置被写入以下文件:

bash 复制代码
/etc/NetworkManager/system-connections/ens160.nmconnection

配置文件内容示例

ini 复制代码
[connection]
id=ens160
uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
type=ethernet
interface-name=ens160
autoconnect=true

[ipv4]
method=manual
address1=192.168.6.102/24,192.168.6.2
dns=114.114.114.114;8.8.8.8

[ipv6]
method=auto

手动编辑配置文件

你也可以直接编辑此文件,编辑后执行:

bash 复制代码
nmcli connection reload

四、常见问题排查

Q1:配置后 IP 没变化,还是 DHCP 获取的地址?

原因及解决方案:

  1. 未执行重载和重启命令

    bash 复制代码
    nmcli connection reload
    nmcli connection down ens160 && nmcli connection up ens160
  2. 存在冲突的连接配置

    bash 复制代码
    # 查看所有连接
    nmcli connection show
    # 删除不必要的连接
    nmcli connection delete "连接名称"
  3. cloud-init 服务干扰(云服务器环境)

    bash 复制代码
    sudo systemctl disable --now cloud-init

Q2:配置静态 IP 后无法 ping 通外网?

排查步骤:

  1. 检查网关配置是否正确

    bash 复制代码
    ip route show | grep default
  2. 检查 DNS 配置

    bash 复制代码
    cat /etc/resolv.conf
    nmcli device show ens160 | grep DNS
  3. 检查物理网络或虚拟机网络模式

    • VMware NAT 模式:确保虚拟机网络适配器设置为 NAT
    • 桥接模式:确保网关地址正确

Q3:网卡名称不是 ens160 怎么办?

bash 复制代码
# 查看实际网卡名称
ip addr show
# 或
nmcli device status

将脚本和命令中的 ens160 替换为实际名称即可。

Q4:配置后无法 SSH 连接?

情况分析:

  • 配置过程中网络会短暂断开,SSH 连接会中断
  • 需要用新 IP 192.168.6.102 重新连接

紧急恢复方法(通过控制台):

bash 复制代码
# 恢复到 DHCP
nmcli connection modify ens160 ipv4.method auto
nmcli connection down ens160 && nmcli connection up ens160

五、高级技巧

1. 单条命令完整配置

将所有配置合并为一条命令:

bash 复制代码
nmcli connection modify ens160 \
    ipv4.addresses 192.168.6.102/24 \
    ipv4.gateway 192.168.6.2 \
    ipv4.dns "114.114.114.114 8.8.8.8" \
    ipv4.method manual \
    connection.autoconnect yes

2. 查看配置变更历史

bash 复制代码
# 查看 NetworkManager 日志
sudo journalctl -u NetworkManager -f

3. 备份和恢复配置

bash 复制代码
# 备份配置
sudo cp /etc/NetworkManager/system-connections/ens160.nmconnection \
       /etc/NetworkManager/system-connections/ens160.nmconnection.bak

# 恢复配置
sudo cp /etc/NetworkManager/system-connections/ens160.nmconnection.bak \
       /etc/NetworkManager/system-connections/ens160.nmconnection
sudo nmcli connection reload
sudo nmcli connection down ens160 && sudo nmcli connection up ens160

六、总结

核心要点

✅ CentOS Stream 10 推荐使用 nmcli + NetworkManager 管理网络

✅ 配置文件存放在 /etc/NetworkManager/system-connections/

✅ 修改后务必执行 nmcli connection reloadnmcli connection up

✅ 用 ip route show 确认网关地址,VMware NAT 模式网关通常是 *.2

✅ 用 nmcli connection show ens160 | grep ipv4.method 确认是否为 manual 模式

快速命令速查

bash 复制代码
# 查看网络状态
ip addr show
nmcli device status

# 配置静态 IP
nmcli connection modify ens160 ipv4.addresses 192.168.6.102/24
nmcli connection modify ens160 ipv4.gateway 192.168.6.2
nmcli connection modify ens160 ipv4.dns "114.114.114.114 8.8.8.8"
nmcli connection modify ens160 ipv4.method manual
nmcli connection modify ens160 connection.autoconnect yes

# 应用配置
nmcli connection reload
nmcli connection down ens160 && nmcli connection up ens160

# 验证配置
nmcli connection show ens160 | grep -E "ipv4.method|ipv4.addresses|ipv4.gateway|ipv4.dns"
ip addr show ens160 | grep inet
ping -c 3 192.168.6.2
ping -c 3 8.8.8.8

📌 温馨提示 :如果你是通过 SSH 远程配置,请确保在执行 nmcli connection up 后,用新 IP 地址重新连接。建议在配置前先打开另一个 SSH 会话或保持控制台访问,以防配置失败导致无法连接。


本文基于 CentOS Stream 10 实际环境验证,配置方法适用于 RHEL 10 及后续版本。如有问题,欢迎在评论区交流讨论。

相关推荐
Ai拆代码的曹操1 小时前
K8s 实战:CrashLoopBackOff 状态下 kubectl logs 拿不到日志的三层排查方案
linux·docker·kubernetes
tedcloud1231 小时前
Kimi-K3 部署指南:大模型应用开发环境搭建实践
linux·运维·服务器·开源·音视频
深念Y2 小时前
ZTE_UZ901_NVRAM经验总结
linux·服务器·网络·嵌入式硬件·嵌入式·随身wifi
似水এ᭄往昔2 小时前
【Linux网络编程】--TCP_Socket
linux·网络·tcp/ip
wuminyu2 小时前
JUC包的AQS与JVM的ObjectMonitor机制对比分析
java·linux·c语言·jvm·c++
闲云自留地3 小时前
课后作业-20260806-Linux iSCSI服务器
linux·运维·服务器
.冰块.3 小时前
P-SAN 实战:CentOS7 搭建 iSCSI Target 共享块存储
linux·服务器·iscsi
Kina_C3 小时前
Keepalived 单播模式实战:跨网络高可用的关键配置
linux·服务器·网络·keepalived
m0_743697594 小时前
磁盘管理的相关知识
linux