在 Netplan 配置文件中,网卡名称通常是基于系统实际使用的网络接口名称来配置的。网络接口名称在现代的 Linux 发行版中,尤其是在使用 systemd 的系统上,通常采用一致的网络设备命名法(Predictable Network Interface Names)。这意味着接口名称可能类似于 eth0、ens33、enp0s3、wlp2s0 等。

如何确定网络接口名称

要确定系统中实际使用的网络接口名称,可以使用以下命令:

ip link show

或者:

ifconfig -a

这些命令会列出系统中的所有网络接口及其状态。例如,使用 ip link show 的输出可能类似于:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:68:22:8b brd ff:ff:ff:ff:ff:ff

在这个例子中,ens33 是网络接口的名称。

Netplan 配置示例

一旦确定了实际的网络接口名称,可以在 Netplan 配置文件中使用该名称。例如,如果你的网络接口名称是 ens33,你可以这样配置:

network:
  version: 2
  ethernets:
    ens33:
      dhcp4: no
      addresses:
        - 192.0.2.10/24
      gateway4: 192.0.2.9
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

关键点

  • 实际接口名称:必须使用系统中实际存在的接口名称。不能随意定义接口名称。
  • 预测性命名:现代系统通常使用一致的网络设备命名法,如 ens33、enp0s3 等。旧的 eth0 等命名方式在新系统中可能不会使用。
  • 验证配置:在编辑完 Netplan 配置文件后,可以使用 sudo netplan try 命令进行测试配置。如果没有问题,再使用 sudo netplan apply 应用配置。

例子

假设你的接口名称是 ens33,以下是一个完整的 Netplan 配置示例:

  1. 确定接口名称:

    ip link show

    假设输出包含:

    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
        link/ether 00:0c:29:68:22:8b brd ff:ff:ff:ff:ff:ff
    
  2. 编辑 Netplan 配置文件:

    sudo nano /etc/netplan/01-netcfg.yaml
  3. 配置文件内容:

    network:
      version: 2
      ethernets:
        ens33:
          dhcp4: no
          addresses:
            - 192.0.2.10/24
          gateway4: 192.0.2.9
          nameservers:
            addresses:
              - 8.8.8.8
              - 8.8.4.4
  4. 测试并应用配置:

    sudo netplan try
    sudo netplan apply

通过这些步骤,可以正确配置 Netplan 中的网络接口名称,并确保网络设置生效。

在现代 Linux 系统中,网络接口名称通常使用一致的网络设备命名法(Predictable Network Interface Names),这可以提高系统的稳定性和可管理性。不过,如果你需要更改网络接口名称,确实可以通过配置来实现。

修改网络接口名称

修改网络接口名称通常涉及到配置 udev 规则或修改 GRUB 引导参数。下面是详细步骤:

方法一:使用 udev 规则修改网络接口名称

  1. 创建或编辑 udev 规则文件:

    创建一个新的 udev 规则文件或编辑现有文件。例如,创建一个名为 /etc/udev/rules.d/10-network-interfaces.rules 的文件:

    sudo nano /etc/udev/rules.d/10-network-interfaces.rules
  2. 添加 udev 规则:

    添加规则以指定新名称。假设你想将 ens33 改为 eth0,可以添加如下内容:

    SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0c:29:68:22:8b", NAME="eth0"

    注意:

    • ATTR{address} 是网络接口的 MAC 地址。你可以通过 ip link show 或 ifconfig -a 获取。
    • NAME 是你想设置的新网络接口名称。
  3. 重新加载 udev 规则并重启网络服务:

    sudo udevadm control --reload-rules
    sudo systemctl restart networking

    或者,你可以重启系统以确保更改生效:

    sudo reboot

方法二:修改 GRUB 引导参数

修改 GRUB 引导参数可以禁用一致的网络设备命名法,恢复到旧的命名方式(例如 eth0)。

  1. 编辑 GRUB 配置文件:

    sudo nano /etc/default/grub
  2. 修改 GRUB_CMDLINE_LINUX 参数:

    在 GRUB_CMDLINE_LINUX 行中添加 net.ifnames=0 biosdevname=0 参数:

    GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
  3. 更新 GRUB 配置并重启系统:

    sudo update-grub
    sudo reboot

这会禁用一致的网络设备命名法,使系统使用旧的命名方式。

确认更改

重启系统后,使用以下命令确认网络接口名称已经更改:

ip link show

或

ifconfig -a

重要提示

修改网络接口名称时需要小心,因为错误的配置可能会导致网络不可用。确保你有其他方式访问系统(如通过本地控制台或备用网络接口)以便在发生问题时进行修复。