📝 准备工作:获取网卡名称
配置前先用命令确认网卡名称(通常是 ens33、eth0 等):
ip addr show
nmcli device status
🖥️ 方法一:nmtui 图形化配置(推荐)
运行交互界面并根据提示操作:
sudo nmtui
- 选择
Edit a connection→ 选中目标网卡 → Enter。 - 将
IPv4 CONFIGURATION从<Automatic>改为Manual。 - 点击
Show填写:Addresses:192.168.1.100/24(务必含前缀长度)Gateway:192.168.1.1DNS servers:8.8.8.8, 114.114.114.114
- 确保
Automatically connect已选中 →OK保存。 - 返回主菜单,进入
Activate a connection,先 Deactivate 再 Activate 该连接。
🔧 方法二:nmcli 命令行配置
通过 nmcli 命令设置静态 IP:
# 查看当前连接的名称
sudo nmcli connection show
# 修改为静态 IP 配置(替换 ens33 为实际连接名)
sudo nmcli connection modify ens33 \
ipv4.method manual \
ipv4.addresses 192.168.1.100/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns "8.8.8.8 114.114.114.114" \
ipv4.ignore-auto-dns yes \
connection.autoconnect yes
# 让配置生效
sudo nmcli connection down ens33 && sudo nmcli connection up ens33
192.168.1.100/24的/24对应子网掩码255.255.255.0。ipv4.ignore-auto-dns yes确保手动 DNS 不被 DHCP 自动获取的配置覆盖。
📄 方法三:编辑配置文件(传统方式)
编辑网卡配置文件(CentOS 8 中已弃用但依然有效):
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
写入以下配置(将 ens33 替换为实际网卡名):
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.100
PREFIX=24 # 等于 NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=114.114.114.114
NM_CONTROLLED=yes # 若想由 NetworkManager 管理,去掉此注释并重启服务
重新加载配置:
sudo nmcli connection reload
sudo nmcli connection up ens33
⚠️ 从 CentOS 8 开始,官方推荐使用
nmcli/nmtui而非直接编辑配置文件,后续版本可能会完全移除ifcfg-*支持。
✅ 验证与测试
# 查看 IP 地址
ip addr show ens33
# 测试网关连通性
ping -c 4 192.168.1.1
# 测试外网连通性(需 DNS 正常)
ping -c 4 baidu.com
# 验证 DNS 解析
cat /etc/resolv.conf
nslookup baidu.com
# 查看默认网关
ip route show default