---
# System prepended metadata

title: '**Debian 10 buster** 更改網卡名稱 ─ 還我 eth0'
tags: [' Debian', ' 網卡名稱', Skills39.tw, ' Debian 10', ' 網卡', ' 更改', ' eth0', ' Skills39']

---

---
tags: Skills39.tw, Skills39, Debian, 網卡, 網卡名稱, eth0, Debian 10, 更改
GA: UA-158089455-3
image: none
---
**Debian 10 buster** 更改網卡名稱 ─ 還我 eth0
===
> [name=Samuel C.A. Lee][time=Tue, Mar 17, 2020]

忘了是甚麼時候開始，Debian 的網卡名稱默默從 `eth0` 變成了 `ens33`。然而，我大 技能競賽資網組並沒有隨波逐流，依舊在題目中保存了 `eth0` 的美名。(=.=")

今天會從一個已經 [安裝好 **Debian OS**](/IZVUO7-ZSmmdWQYCQUQzSw) 的 VM 開始，使用 **udev** （另一個方式是 [修改 grub](/V17gmf3CQEKY-soVqHWeZQ)）來自訂網卡名稱。基本上有四個步驟：[**取得 MAC 位址**](#1-取得-MAC-位址) -> [**新增規則（rules）**](#2-新增規則（rules）) -> [**修改 IP 設定**](#3-修改-IP-設定) -> [**重新啟動**](#4-重新啟動)。

> 系統環境：
> 
> 硬體：*VMware Workstation 15.5.1 Pro*
> OS：*Debian GNU/Linux 10 (buster)*
> 
> 套件版本：
> > - *Vim 8.1.1401*
> > - *ip*
> > - *systemd 241 (241)*

正文開始
---

這次會用到 Vim 這款編輯器，關於 Vim 的教學可以看 [這裡](https://www.youtube.com/playlist?list=PLBd8JGCAcUAH56L2CYF7SmWJYKwHQYUDI)。

### 1. 取得 MAC 位址

1. 輸入：

    ```shell
    # ip a
    ```
    > 開頭的`#`不用打喔

    就會得到輸出：
	
    ```shell
	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 
	       valid_lft forever preferred_lft forever
	2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
	    link/ether 00:0c:29:2e:f2:40 brd ff:ff:ff:ff:ff:ff
	    inet 10.0.0.39/24 brd 10.0.0.255 scope global dynamic ens33
	       valid_lft 85108sec preferred_lft 85108sec
	    inet6 fe80::20c:29ff:fe2e:f240/64 scope link 
	       valid_lft forever preferred_lft forever
	```
    
2. 找到要修改名稱的網卡的 MAC 位址（長得像這樣：`xx:xx:xx:xx:xx:xx`），然後記下來。
    
    ```
    00:0c:29:2e:f2:40
    ```
    每台電腦都不一樣，不要抄我的。
    
    > 冷知識：用 VMware 建立的 VM 網卡 MAC 都會是 `00:0c:29` 開頭。

### 2. 新增規則（rules）

1. 打開 Vim

    ```shell
    # vim /etc/udev/rules.d/90-custom-net.rules
    ```
    
    `vim`：在文字模式執行 Vim。
    `/etc/udev/rules.d/`：udev 設定檔存放位置。
    `90-custom-net.rules`：設定檔名稱。`90` 決定優先順位，一般來說設多少都可以；`custom-net` 是可自訂的檔案名稱；`.rules` 是設定檔的副檔名。
    
2. 寫入設定

    按 `i` 進入編輯模式，`ESC` 退出編輯模式。
    ```
    ATTR{address}=="00:0c:29:2e:f2:40", NAME="I_love_eth0"
    ```
    `:wq` 存檔+退出 Vim。
    
### 3. 修改 IP 設定

1. 打開 Vim
    
    ```shell
    # vim /etc/network/interfaces
    ```
    
    不用我再解釋了吧。
    
3. 寫入設定
    
    把全部的 `ens33` 都改成 `eth0`。

### 4. 重新啟動

輸入：

```shell
# reboot
```

或是

```shell
# shutdown -r now
```

> 不能只有重新啟動網卡，因為 udev 是在開機時執行的，要重新開機才能使 udev 執行剛剛新增的指令。 

### 檢查結果

輸入：

```shell
# ip a
```

輸出：

```shell
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 
       valid_lft forever preferred_lft forever
2: I_love_eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:2e:f2:40 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.40/24 brd 10.0.0.255 scope global dynamic I_love_eth0
       valid_lft 85790sec preferred_lft 85790sec
    inet6 fe80::46d3:516e:e24c:1283/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
```

問題與討論
---

   > Q：大家有什麼問題嗎？（可以在留言區提問）

參考資料
---

> [Debian Reference 第 5 章 網絡設置](https://www.debian.org/doc/manuals/debian-reference/ch05.zh-tw.html)
> [Debian Reference 第 3.3 章 udev 系統](https://www.debian.org/doc/manuals/debian-reference/ch03.zh-tw.html#_the_udev_system)
> [Writing udev rules](http://www.reactivated.net/writing_udev_rules.html)
> [Debian9:修改默认网卡为eth0,ifconfig](https://blog.csdn.net/shenwansangz/article/details/78614906)

> [中文文案排版指北](https://github.com/sparanoid/chinese-copywriting-guidelines)
> [發文指南](https://hackmd.io/0gtsb-TrQl6q8aOi49N3Qw)
> 

***
此文由 Samuel C.A. Lee 寫於 2020/03 ，有什麼建議歡迎按右上角留言。:))