必须先确认网卡名和网络管理工具:运行ip link show查真实网卡名,用systemctl list-units | grep -e "(networkmanager|network)"判断使用networkmanager还是传统network服务,再据此选择对应配置方式。

确认网卡名和当前网络管理工具
不先搞清这两件事,后面所有操作都可能白忙。运行 ip link show 查看真实网卡名(如 ens33、enp0s3、eth0),别直接套教程里的名字;再用 systemctl list-units | grep -E "(NetworkManager|network)" 判断系统用的是 NetworkManager 还是传统 network 服务——前者常见于 Ubuntu Desktop、Fedora、RHEL 8+,后者多见于 CentOS 7 或最小化安装的服务器。
Ubuntu 22.04+(含 24.04)用 netplan 配置静态 IP
Ubuntu 默认用 netplan,配置文件在 /etc/netplan/ 下,后缀通常是 .yaml。编辑前先备份:sudo cp /etc/netplan/01-network-manager-all.yaml /etc/netplan/01-network-manager-all.yaml.bak。关键点:
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
-
renderer字段必须匹配实际服务:桌面环境一般填NetworkManager,纯服务器建议用networkd -
addresses是列表格式,写成[192.168.1.100/24],不是192.168.1.100/24(少括号会解析失败) -
gateway4只能写一个 IPv4 网关;多个 DNS 要写成nameservers: {addresses: [8.8.8.8, 114.114.114.114]} - 缩进必须用空格,不能用 Tab;改完执行
sudo netplan apply,别漏sudo
RHEL/CentOS 7/8/9 用 network-scripts 或 nmcli
CentOS 7 默认走 network-scripts,路径是 /etc/sysconfig/network-scripts/ifcfg-<em>网卡名</em>;RHEL 8+ 默认启用 NetworkManager,推荐用 nmcli。二者不能混用,否则冲突:
- 用
network-scripts时,必须设BOOTPROTO=static,且ONBOOT=yes,IPADDR、NETMASK、GATEWAY三者缺一不可 - 用
nmcli时,连接名不是网卡名(比如叫"System ens33"或"Wired connection 1"),得先查:nmcli connection show --active -
nmcli connection modify "xxx" ipv4.method manual必须在设置地址前执行,否则ipv4.addresses不生效 - 改完必须
nmcli connection down "xxx" && nmcli connection up "xxx",只 reload 不行
Debian/旧版 Ubuntu 用 /etc/network/interfaces
这个文件还在 Debian 系和部分老 Ubuntu 上有效,但注意:systemctl restart networking 会杀掉所有非配置网卡的连接,包括 SSH 会话——如果远程操作,务必加 || true 防断连,或先开个备用终端。
- 每块网卡单独一段,以
auto 网卡名和iface 网卡名 inet static开头 -
address后直接写 IP,netmask写子网掩码(如255.255.255.0),不是 CIDR 前缀 -
dns-nameservers后面空格分隔多个地址,不能用逗号 - 改完别忘了
sudo ifdown 网卡名 && sudo ifup 网卡名测试单网卡,比全局重启更安全
ip addr 显示 IP,但 ping 不通网关,或者 DNS 解析失败这种“半生效”状态。










