下面给出适用于 Ubuntu(含 20.04/22.04/24.04/24.10+) 的最新做法,兼顾服务器与桌面环境;优先使用 <span style="color:red">Netplan</span>、<span style="color:red">ip</span>、<span style="color:red">nmcli</span>,并给出与你提供的旧法的对应关系。⚙️
一、该选哪种方式?
二、配置“<span style="color:red">临时IP</span>”(重启后失效)✅
# 1) 设定 IP 与掩码(/24=255.255.255.0)
sudo ip addr flush dev eth0
sudo ip addr add 192.168.1.100/24 dev eth0
# 2) 设定默认网关
sudo ip route replace default via 192.168.1.1
# 3) 启用网卡
sudo ip link set eth0 up解释:
ip addr flush dev eth0:清空该网卡现有地址,避免冲突。ip addr add .../24 dev eth0:为网卡添加临时地址与子网掩码。ip route replace default via 192.168.1.1:替换或添加默认路由。ip link set eth0 up:确保接口处于 up 状态。
验证:
ip addr show dev eth0
ip route
ping -c 4 192.168.1.1三、配置“<span style="color:red">静态IP</span>”(永久生效,推荐)🏁
方案A:Server 常用(renderer: <span style="color:red">systemd-networkd</span>)
sudo nano /etc/netplan/01-static.yaml# /etc/netplan/01-static.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: false
addresses: [192.168.1.100/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [223.5.5.5, 1.1.1.1]应用并测试(远程环境建议先 try):
sudo netplan try # 120s 内可自动回退,避免断网
sudo netplan apply # 确认无误再正式应用解释:
renderer: networkd:由 systemd-networkd 管理,轻量稳定。dhcp4: false:关闭 DHCP,启用静态。addresses:IP/掩码位写法。routes:配置默认路由。nameservers:设置 DNS。netplan try/apply:安全应用/正式生效。
方案B:桌面常用(renderer: <span style="color:red">NetworkManager</span> 或直接 <span style="color:red">nmcli</span>)
方式1:Netplan 持久化(Desktop 同样支持)
# /etc/netplan/01-nm.yaml
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
dhcp4: false
addresses: [192.168.1.100/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [114.114.114.114, 8.8.8.8]sudo netplan apply方式2:nmcli(生成/修改连接,立即生效且可持久)
# 创建一个名为 static-eth0 的连接
sudo nmcli con add type ethernet ifname eth0 con-name static-eth0 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "223.5.5.5,1.1.1.1"
# 启用该连接
sudo nmcli con up static-eth0解释:
nmcli con add ... manual:创建静态地址连接配置文件。ipv4.addresses/gateway/dns:一次性写入关键网络参数。nmcli con up:立即启用并持久保存(重启后仍在)。
四、<span style="color:red">启用/关闭网卡</span>(两类管理器通用做法)
通用(ip)
sudo ip link set eth0 down # 关闭
sudo ip link set eth0 up # 启用**解释:**直接控制内核网卡状态,简单可靠。
NetworkManager 环境
sudo nmcli dev disconnect eth0 # 临时断开
sudo nmcli dev connect eth0 # 重新连接**解释:**通过 NM 进行友好控制,避免与其状态机冲突。
验证:
nmcli device status
ip -br addr五、旧法与新法对照表(<span style="color:red">分析说明表</span>)📊
| 目标 | 旧法(net-tools) | 新法(推荐) | 说明 |
|---|---|---|---|
| 临时改IP | ifconfig eth0 192.168.1.100 | ip addr add 192.168.1.100/24 dev eth0 | ifconfig 已不默认安装且过时;ip 功能更全 |
| 改默认网关 | route add default gw 192.168.1.1 | ip route replace default via 192.168.1.1 | route 过时,使用 ip route |
| 重启网络 | service networking restart | netplan try/apply 或 systemctl restart systemd-networkd/NetworkManager | 依所用 renderer 而定 |
| 持久化配置 | /etc/network/interfaces | /etc/netplan/*.yaml 或 nmcli con | 现代 Ubuntu 统一用 Netplan/NM |
六、最小化排错清单 ✅
- 查看接口名:
ip -br link(有时是ens160/enp3s0,不是eth0) - 看是谁管理:
NetworkManager --version、systemctl is-active systemd-networkd - 路由/DNS 检查:
ip route、resolvectl status - 远程改网参请用:<span style="color:red">
netplan try</span>,防止 SSH 断连。🚨
七、你提供命令的更新说明(逐段解释)📝
sudo ifconfig <iface> <ip>→ 现用:sudo ip addr add <ip>/<mask> dev <iface>:前者属旧工具,后者为内核新栈接口,语义清晰、可并存多地址。sudo route add default gw <gw>→ 现用:sudo ip route replace default via <gw>:原子替换默认路由,避免重复项。sudo service networking restart→ 现用:sudo netplan apply或重启对应服务,更符合 Netplan 架构。/etc/network/interfaces→ 现用:/etc/netplan/*.yaml:统一抽象层,可选择 <span style="color:red">networkd</span> 或 <span style="color:red">NetworkManager</span> 渲染器。
以上流程覆盖 临时 与 静态 场景,并给出新旧指令映射;按需选用即可。🙂
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。