---
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 ,有什麼建議歡迎按右上角留言。:))