CentOS Stream 8 网络配置指南
一 环境准备与常用命令
- 确认网卡名称与状态:使用命令查看设备与连接名,例如 ip addr、nmcli device status。示例输出中常见网卡名为 ens33、enp0s3,连接名可能为 Wired connection 1。
- 管理工具与原则:系统默认使用 NetworkManager 管理网络,优先使用 nmcli 或 nmtui 进行配置与变更;不建议使用已废弃的 systemctl restart network 方式。
- 虚拟机注意:在 VMware/VirtualBox 中,请确保虚拟机网络模式(如 NAT/桥接)与配置的 IP 网段一致。
二 配置方式一 nmcli 命令行(推荐)
- 查看与确认连接名:执行 nmcli device status,记录要配置的网卡名与连接名(两者可能不同)。
- 配置静态 IPv4(示例将连接名设为“ens33”,请替换为你的实际连接名):
sudo nmcli connection modify ens33
ipv4.addresses “192.168.1.100/24”
ipv4.gateway “192.168.1.1”
ipv4.dns “8.8.8.8,8.8.4.4”
ipv4.method “manual”
应用生效:sudo nmcli connection up ens33
- 配置动态 IPv4(DHCP):
sudo nmcli connection modify ens33 ipv4.method “auto”
sudo nmcli connection up ens33
- 小技巧:若不知道连接名,可用 nmcli con show 查看;修改后直接 up 连接即可,无需重启系统服务。
三 配置方式二 编辑 ifcfg 文件(传统方式)
- 配置文件路径:网络接口配置文件位于 /etc/sysconfig/network-scripts/,文件名形如 ifcfg-<接口名>(如 ifcfg-ens33 或 ifcfg-enp0s3)。
- 静态 IP 示例(ifcfg-ens33):
TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.100
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
- 动态 IP 示例:
BOOTPROTO=dhcp
ONBOOT=yes
- 使配置生效(二选一):
- 仅重载连接并激活:sudo nmcli connection reload ens33 && sudo nmcli connection up ens33
- 重启 NetworkManager:sudo systemctl restart NetworkManager
- 提示:编辑前建议备份原文件,例如 cp ifcfg-ens33 ifcfg-ens33.bak。
四 配置方式三 nmtui 文本图形界面
- 启动工具:执行 sudo nmtui。
- 编辑连接:选择 Edit a connection → 选中目标网卡 → 将 IPv4 CONFIGURATION 改为 Manual → 填写 IP、子网掩码(Prefix)、网关、DNS → 保存。
- 激活连接:选择 Activate a connection → 选中对应连接并激活。
- 使配置生效:可执行 sudo systemctl restart NetworkManager 或 nmcli connection reload <连接名>。
五 验证与常见问题
- 验证步骤:
- 查看地址:ip addr show <接口名>(确认 inet 已分配)
- 连通性测试:ping -c 4 8.8.8.8(测试路由/外网)与 ping -c 4 example.com(测试 DNS 解析)
- 查看 DNS:cat /etc/resolv.conf(应看到 nameserver 8.8.8.8 等)
- 常见问题与处理:
- 接口未连接:执行 nmcli con up <连接名>;检查 ifcfg 中 ONBOOT=yes 是否设置。
- 无法上外网:核对 GATEWAY 与 DNS;确保虚拟机网络模式与 IP 网段匹配。
- 修改后不生效:优先使用 nmcli connection reload/up 或 systemctl restart NetworkManager;避免 systemctl restart network。
- 防火墙放行:如需开放服务(如 HTTP),执行 sudo firewall-cmd --add-service=http --permanent && sudo firewall-cmd --reload。