---
# System prepended metadata

title: ubuntu 24.04 固定網卡名稱為 eth0
tags: [linux]

---

# ubuntu 24.04 固定網卡名稱為 eth0

Linux 的網路介面名稱（如 `ens33` 或 `enp1s0`）是根據底層硬體匯流排位置 (PCI Slot) 自動產生的。而不同虛擬化環境，例如： VMware、KVM 都會有自己的命名方式，如果要前移 VM 到不同虛擬化環境，網卡名稱就會發生改變。

VMware 環境：網卡通常被識別為 `ens33`、`ens160` 或 `ens192`。

Harvester (KVM) 環境：遷移過去後，底層虛擬硬體變成了 KVM 的 VirtIO 架構，位置變了，所以 Linux 核心會把它識別為新名稱 `enp1s0`。


## 原始網卡名稱
```
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:87:29:32 brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    inet 172.20.1.11/16 brd 172.20.255.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fe87:2932/64 scope link
       valid_lft forever preferred_lft forever
```

## 修改網卡名稱

```
$ sudo nano /etc/default/grub
......
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"       # 新改此欄位
```
```
$ sudo update-grub
```
* 修改網卡名稱
```
$ sudo sed -i "s/ens33/eth0/" /etc/netplan/50-cloud-init.yaml
```

```
$ sudo reboot
```

* 重新開機後網卡名稱固定為 `eth0`
```
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:87:29:32 brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    altname ens33
    inet 172.20.1.11/16 brd 172.20.255.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fe87:2932/64 scope link
       valid_lft forever preferred_lft forever
```

