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