Try   HackMD

Debian 10 buster 更改網卡名稱 ─ 還我 eth0

Samuel C.A. LeeTue, Mar 17, 2020

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

今天會從一個已經 安裝好 Debian OS 的 VM 開始,使用 udev (另一個方式是 修改 grub)來自訂網卡名稱。基本上有四個步驟:取得 MAC 位址 -> 新增規則(rules) -> 修改 IP 設定 -> 重新啟動

系統環境:

硬體:VMware Workstation 15.5.1 Pro
OS:Debian GNU/Linux 10 (buster)

套件版本:

  • Vim 8.1.1401
  • ip
  • systemd 241 (241)

正文開始

這次會用到 Vim 這款編輯器,關於 Vim 的教學可以看 這裡

1. 取得 MAC 位址

  1. 輸入:

    ​​​​# 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 
    ​       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

    ​​​​# 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

    ​​​​# vim /etc/network/interfaces
    

    不用我再解釋了吧。

  2. 寫入設定

    把全部的 ens33 都改成 eth0

4. 重新啟動

輸入:

# reboot

或是

# shutdown -r now

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

檢查結果

輸入:

# 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 
       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 章 網絡設置
Debian Reference 第 3.3 章 udev 系統
Writing udev rules
Debian9:修改默认网卡为eth0,ifconfig

中文文案排版指北
發文指南


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