網卡命名為eth4
① linux怎樣修改網卡的名字為eth0
linux可通過以下步驟修改網卡名稱:
1、修改/etc/udev/rules.d/70-persistent-net.rules,將eth0 改為em1,將eth1 改為em2,注意:只需要修改name即可,不需要修改kernel;
2、重命名網卡配置文件,需要ifcfg-eth0文件重命名為ifcfg-em1,需要ifcfg-eth1文件重命名為ifcfg-em2,
mv /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-em1
mv /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-em2
3、編輯網卡配置文件,將名稱修改過來,並把uuid刪除(如沒有就不用),重啟伺服器,重啟之後網卡名稱已經修改過來,網路正常。
② centos 7.1無線網卡怎麼設置
centos 7.1無線網卡可以通過以下方式設置:
1、將無線網卡插入電腦,網卡以eno1677736命名;
6、重啟伺服器後,即可連接網路上網。
③ linux系統修改介面名為eth0以及配置IP地址
將默認網卡名稱ens192更改為eth0,操作步驟如下:
1. 使用vi編輯器打開並修改網卡配置文件,將NAME和DEVICE參數改為eth0。
2. 通過編輯/etc/sysconfig/grub文件禁用自動命名網卡功能,加入"net.ifnames=0 biosdevname=0"。
3. 執行grub2-mkconfig命令生成更新配置參數。
4. 重啟系統進行驗證。
5. 啟動NetworkManager服務並設置為開機自啟動,確保網路服務在系統啟動時自動運行。
6. 重啟網路服務,使用nmcli命令查看活動網路連接和設備狀態。
7. 使用nmcli命令檢查並修改eth0網卡的IP地址配置。
8. 編輯網卡配置文件,手動設置IP地址,確保自動連接功能開啟。
通過以上步驟,成功將介面名修改為eth0並配置了IP地址,實現Linux系統的網路介面管理。
④ redhat 萬兆和千兆的網卡命名問題
新弄了一批機器,為了准備切換到萬兆環境,給機器配了雙千兆和雙萬兆混合的4介面網卡,然後就出了一點問題
centos 7 引入了網路一致化命名規則,具體可以看紅帽的聯網指南
主要部分摘抄如下
------------引用專用分割線----------------------------
8.1. 命名方案層級結構
默認情況下,systemd 會使用以下策略,採用支持的命名方案為介面命名:
方案 1: 如果固件或 BIOS 信息適用且可用,則使用整合了為板載設備提供索引號的固件或 BIOS 的名稱(例如:eno1),否則請使用方案 2。
方案 2: 如果固件或 BIOS 信息適用且可用,則使用整合了為 PCI 快速熱插拔插槽提供索引號的固件或 BIOS 名稱(例如 ens1),否則請使用方案 3。
方案 3: 如果硬體連接器物理位置信息可用,則使用整合了該信息的名稱(例如:enp2s0),否則請使用方案 5。
方案 4: 默認不使用整合介面 MAC 地址的名稱(例如:enx78e7d1ea46da),但用戶可選擇使用此方案。
方案 5: 傳統的不可預測的內核命名方案,在其他方法均失敗後使用(例如: eth0)。
這個策略(如上所述)是默認策略。如果該系統已啟用 biosdevname ,則會使用該方案。註:啟用 biosdevname 需要添加 biosdevname=1 作為命令行參數(Dell 系統除外),此時只要安裝 biosdevname ,就會默認使用該方案。如果用戶已添加 udev 規則,該規則會更高內核設備名稱,則會優先使用這些規則。
設備命名過程如下:
/usr/lib/udev/rules.d/60-net.rules 文件中的規則會讓 udev 幫助工具 /lib/udev/rename_device 查看所有 /etc/sysconfig/network-scripts/ifcfg- suffix 文件。如果發現包含 HWADDR 條目的 ifcfg 文件與某個介面的 MAC 地址匹配,它會將該介面重命名為 ifcfg 文件中由 DEVICE 指令給出的名稱。
/usr/lib/udev/rules.d/71-biosdevname.rules 中的規則讓 biosdevname 根據其命名策略重命名該介面,即在上一步中沒有重命名該介面、已安裝 biosdevname 、且在 boot 命令行中將 biosdevname=0 作為內核命令給出。
/lib/udev/rules.d/75-net-description.rules 中的規則讓 udev 通過檢查網路介面設備,填寫內部 udev 設備屬性值 ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH。註:有些設備屬性可能處於未定義狀態。
/usr/lib/udev/rules.d/80-net-name-slot.rules 中的規則讓 udev 重命名該介面,優先順序如下:ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH。並提供如下信息:沒有在步驟 1 或 2 中重命名該介面,同時未給出內核參數 net.ifnames=0。如果一個參數未設定,則會按列表的順序設定下一個。如果沒有設定任何參數,則不會重命名該介面。
-----------以上是紅帽的聯網指南-------
其實簡述上面的信息就是首先看內核參數是否啟用了biosdevname=1 (默認是啟用),如果bios提供了設備的名稱就使用bios提供的名稱
如果沒有,就根據網卡配置中 device=eth,em,xyz 的名字來命名這個網卡,但是如果這樣命名的話,必須在配置里寫死網卡的mac地址
作為網卡的識別標志,對單網卡當然沒什麼問題,但是如果在集群環境里,HA,以及bonding環境里,為了快速切換網路流量,往往要屏蔽mac,
使用虛擬mac,或者多塊網卡使用一個mac地址,這個時候需要在配置文件里屏蔽mac地址,因此就需要區改udev的配置文件來解決
我所遇到的問題是,使用了biosdevname=0和 net.ifnames=0 參數後,(因為以前有大量的centos6的機器,為了移植方便,不使用一致性命名規則,網卡名依然是eth0,eth1.。。。)安裝伺服器時一切正常,但啟動系統後,發現系統將插在第一個埠的網卡認為是eth2,和預期不符,本能的認為udev可以解決問題,於是添加了udev的規則
```
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:6e:96:ac:a1:xa", ATTR{type}=="1", KERNEL=="*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:6e:96:ac:a1:xb", ATTR{type}=="1", KERNEL=="*", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:6e:96:ac:a1:xc", ATTR{type}=="1", KERNEL=="*", NAME="eth2"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:6e:96:ac:a1:xd", ATTR{type}=="1", KERNEL=="*", NAME="eth3"
```
發現不起作用,,難道寫錯了?換個規則,用pci設備號去綁定
SUBSYSTEM=="net", ACTION=="add", KERNEL=="eth*", SUBSYSTEM=="pci", KERNELS===="0000:01:00.0", NAME="eth0"
依然沒用
用下面的命令debug一下
udevadm test /sys/class/net/eth0
結果縮略如下
rules contain 49152 bytes tokens (4096 * 12 bytes), 13451 bytes strings
2076 strings (25677 bytes), 1399 de-plicated (12904 bytes), 678 trie nodes used
NAME 'eth2' /etc/udev/rules.d/60-net.rules:6
IMPORT builtin 'net_id' /usr/lib/udev/rules.d/75-net-description.rules:6
IMPORT builtin 'hwdb' /usr/lib/udev/rules.d/75-net-description.rules:12
IMPORT builtin 'path_id' /usr/lib/udev/rules.d/80-net-setup-link.rules:5
IMPORT builtin 'net_setup_link' /usr/lib/udev/rules.d/80-net-setup-link.rules:9
No matching link configuration found.
RUN '/usr/lib/systemd/systemd-sysctl --prefix=/net/ipv4/conf/$name --prefix=/net/ipv4/neigh/$name --prefix=/net/ipv6/conf/$name --prefix=/net/ipv6/neigh/$name' /usr/lib/udev/rules.d/99-systemd.rules:55
Error changing net interface name 'eth0' to 'eth2': File exists
could not rename interface '2' from 'eth0' to 'eth2': File exists
created db file '/run/udev/data/n2' for '/devices/pci0000:00/0000:00:1c.4/0000:06:00.0/net/eth0'
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:06:00.0/net/eth0
ID_BUS=pci
ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P X540/I350 rNDC)
粗體看到原來是設備已經存在,無法重命名,於是想到的重新載入驅動
modprobe -rv igb
modprobe -rv ixgbe
然後按順序載入驅動
modprobe ixgbe
modprobe igb
終於可以看到效果了,不過重啟就完蛋了
於是想是否可以調整驅動載入順序?
找了半天文檔,發現可以通過重新打包內核啟動文件和編譯內核兩條路實現,不過這顯然又增加了很多麻煩,總不能升級一次內核,就重新打一次包吧
看看其他方法。最好發現簡單的方法就是修改啟動內核的參數 將 biosdevname=0和net.ifnames=0 改為 biosdevname=0和net.ifnames=1 ,這樣系統啟動時,會按照上述一致性命名規則,重新命名網卡,可以預期的是,已dell板載網卡為例,網卡會依次命名為eno1,eno4,等等,然後再載入udev規則,按照udev規則,再次重新命名為我們期望的eth0,eth1,等等
當然配置文件可以用ansible搞定,我這里的模版內容就是
ifcfg-eth0.j2
------
NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
HWADDR="{{ hostvars[inventory_hostname].ansible_eth1.macaddress }}"
NETBOOT=yes
IPV6INIT=no
BOOTPROTO=static
TYPE=Ethernet
----------
這樣udev 規則就生效了,其實就是啟動過程中,當上述兩個參數全為0時,網路設備只能叫ethx,先載入的驅動搶佔了eth0和eth1時,(我這里是千兆的設備驅動 igb先啟動)後起的設備想按udev規則rname時,發現eth0,和eth1 已經被占據了,因此命名失敗,所以深入理解啟動順序和動作其實還是蠻重要的
參考鏈接 https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/networking_guide/sec-understanding_the_device_renaming_procere
紅帽知識庫文章引用如下
⑤ 求助centos7網卡問題
解決CentOS7網卡埠出現紊亂的問題
最近項目上,遇到一個問題,讓我們很是沒辦法,就是Dell R920 安裝上CentOS7的系統,做完Bonding後,發現埠重啟系統後會紊亂,過程如下:
埠紊亂情況
伺服器上一共配置了兩張萬兆兩口的網卡和一張千兆四口的網卡,其中不同萬兆卡上,兩埠做Bonding,同時千兆卡上也挑了間隔的兩口做Bonding,大概如下情況:、
eth0,eth1,eth2,eth3千兆埠,eth4,eth5,eth6,eth7是萬兆埠,這時經常紊亂是eth3,eth4的埠,兩埠變更,使得做了bonding的埠無法生效
CentOS7的埠命名規則
原來CentOS6之前的網卡埠命名都是eth的,CentOS7之後千兆網口已經變更成隨機的em0...emN或是ens01(N=整數),萬兆網口則變成p1p2等形式,要修改為eth的模式步驟如下:
a.編輯文件
vi /etc/sysconfig/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 net.ifnames=0 biosdevname=0 rd.lvm.lv=centos/root crashkernel=auto vconsole.keymap=us rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
「以上標紅色的值是修改為eth的基礎」
b.執行命令生效
grub2-mkconfig -o /boot/grub2/grub.cfg
c.增加規劃文件
vi /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="78:2b:cb:xx:xx:01", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="78:2b:cb:xx:xx:02", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="78:2b:cb:xx:xx:03", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="78:2b:cb:xx:xx:04", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1b:21:xx:xx:a1", ATTR{type}=="1", KERNEL=="eth*", NAME="eth4"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1b:21:xx:xx:a0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth5"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:60:6e:xx:xx:f6", ATTR{type}=="1", KERNEL=="eth*", NAME="eth6"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:60:6e:xx:xx:f7", ATTR{type}=="1", KERNEL=="eth*", NAME="eth7"
「以上MAC地址與網卡埠對應」
總結:以上方法並不能解決網口紊亂問題,因為官方文檔都要求bond的網卡都不需要寫MAC地址,所以最後我們嘗試使在每個/etc/sysconfig/network-scripts/ifcfg-eth*網卡配置文件上寫上HWADDR,重啟有7-8遍,做ethtool檢查幾次,發現在沒有問題,所以建議遇到同樣問題同學,可以嘗試一下這種方法
⑥ centos網卡命名規則以及更名方法
Linux 操作系統的網卡設備的傳統命名方式是 eth0、eth1、eth2等,而 CentOS7 提供了不同的命名規則,默認是基於固件、拓撲、位置信息來分配。這樣做的優點是命名全自動的、可預知的,缺點是比 eth0、wlan0 更難讀,比如 ens33 。
規則1:
對於板載設備命名合並固件或 BIOS 提供的索引號,如果來自固件或 BIOS 的信息可讀就命名,比如eno1,這種命名是比較常見的,否則使用規則2。
規則2:
命名合並固件或 BIOS 提供的 PCI-E 熱插拔口索引號,比如 ens1,如果信息可讀就使用,否則使用規則3。
規則3:
命名合並硬體介面的物理位置,比如 enp2s0,可用就命名,失敗直接到方案5。
規則4:
命名合並介面的 MAC 地址,比如 enx78e7d1ea46da,默認不使用,除非用戶選擇使用此方案。
規則5:
使用傳統的方案,如果所有的方案都失敗,使用類似 eth0 這樣的樣式。
1、前2個字元的含義
2、第3個字元根據設備類型選擇
如果不習慣使用新的命名規則,可以恢復使用傳統的方式命名,編輯 grub 文件,增加兩個變數,再使用 grub2-mkconfig 重新生成 grub 配置文件即可。
1、編輯 grub 配置文件
2、重新生成 grub 配置文件
然後重新啟動 Linux 操作系統,通過 ip addr 可以看到網卡名稱已經變為 eth0 。
3、修改網卡配置文件
原來網卡配置文件名稱為 ifcfg-ens33,這里需要修改為 ethx 的格式,並適當調整網卡配置文件。
注意:ifcfg-ens33 文件最好刪除掉,否則重啟 network 服務時候會報錯。