头图

下面给出适用于 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>,并给出与你提供的旧法的对应关系。⚙️

一、该选哪种方式?

flowchart TD
    A[想临时修改?] -->|是| B[使用 ip 命令]
    A -->|否/需重启后保留| C[使用 Netplan 持久化]
    C --> D{谁在管网卡?}
    D -->|Server/纯命令行| E[renderer: systemd-networkd]
    D -->|桌面/有托盘网络图标| F[renderer: NetworkManager 或 nmcli]

二、配置“<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,启用静态。
  • addressesIP/掩码位 写法。
  • 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)新法(推荐)说明
临时改IPifconfig eth0 192.168.1.100ip addr add 192.168.1.100/24 dev eth0ifconfig 已不默认安装且过时;ip 功能更全
改默认网关route add default gw 192.168.1.1ip route replace default via 192.168.1.1route 过时,使用 ip route
重启网络service networking restartnetplan try/applysystemctl restart systemd-networkd/NetworkManager依所用 renderer 而定
持久化配置/etc/network/interfaces/etc/netplan/*.yamlnmcli con现代 Ubuntu 统一用 Netplan/NM

六、最小化排错清单 ✅

  • 查看接口名:ip -br link(有时是 ens160/enp3s0,不是 eth0
  • 看是谁管理:NetworkManager --versionsystemctl is-active systemd-networkd
  • 路由/DNS 检查:ip routeresolvectl 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> 渲染器。

以上流程覆盖 临时静态 场景,并给出新旧指令映射;按需选用即可。🙂


蓝易云
39 声望6 粉丝

蓝易云高防服务器:www.tsyvps.com