Linux中國

Linux有問必答:如何在CentOS7上改變網路介面名

CentOS/RHEL6引入了一致和可預測的網路設備命名網路介面的方法。這些特性可以唯一地確定網路介面的名稱以使定位和區分設備更容易,並且在這樣一種方式下,無論是否重啟機器、過了多少時間、或者改變硬體,其名字都是持久不變的。然而,這種命名規則並不是默認在CentOS/RHEL6上開啟。

從CentOS/RHEL7起,這種可預見的命名規則變成了默認。根據這一規則,介面名稱被自動基於固件,拓撲結構和位置信息來確定。現在,即使添加或移除網路設備,介面名稱仍然保持固定,而無需重新枚舉,和壞掉的硬體可以無縫替換。

* 基於介面類型的兩個字母前綴:
*   en -- 乙太網
*   sl -- 串列線路IP (slip)
*   wl -- wlan
*   ww -- wwan
*
* 名字類型:
*   b<number>                             -- BCMA匯流排和新書
*   ccw<name>                             -- CCW匯流排組名
*   o<index>                              -- 車載設備的索引號
*   s<slot>[f<function>][d<dev_port>]     -- 熱插拔插槽索引號
*   x<MAC>                                -- MAC 地址
*   [P<domain>]p<bus>s<slot>[f<function>][d<dev_port>]
*                                         -- PCI 位置
*   [P<domain>]p<bus>s<slot>[f<function>][u<port>][..]1[i<interface>]
*                                         -- USB埠號鏈

新的命名方案的一個小的缺點是介面名稱相比傳統名稱有點難以閱讀。例如,你可能會發現像enp0s3名字。再者,你再也無法來控制介面名了。

如果由於某種原因,你喜歡舊的方式,並希望能夠選擇任意名稱分配給CentOS/ RHEL7的設備,你需要重寫默認的可預測的命名規則,定義基於MAC地址udev規則。

下面是如何在CentOS或RHEL7命名網路介面

首先,讓我們來禁用該可預測命名規則。對於這一點,你可以在啟動時傳遞「net.ifnames=0」的內核參數。這是通過編輯/etc/default/grub並加入「net.ifnames=0」到GRUBCMDLINELINUX變數來實現的。

然後運行這條命令來重新生成GRUB配置並更新內核參數。

$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg 

接下來,編輯(或創建)一個udev的網路命名規則文件(/etc/udev/rules.d/70-persistent-net.rules),並添加下面一行。更換成你自己的MAC地址(08:00:27:a9:7a:e1)和介面(sushi)。

 $ sudo vi /etc/udev/rules.d/70-persistent-net.rules 
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:a9:7a:e1", ATTR{type}=="1", KERNEL=="eth*", NAME="sushi"

最後,重啟電腦並驗證新的介面名。

請注意,配置重命名後的介面仍然是你的責任。如果網路配置(例如,IPv4設置,防火牆規則)是基於舊名稱(變更前)的,則需要更新的網路配置以反映更改的名稱。

via: http://ask.xmodulo.com/change-network-interface-name-centos7.html

譯者:geekpi 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國