如何在CentOS7上改变网络接口名

如何在CentOS7上改变网络接口名

传统上,Linux的网络接口被枚举为eth[0123...],但这些名称并不一定符合实际的硬件插槽,PCI位置,USB接口数量等,这引入了一个不可预知的命名问题(例如,由于不确定的设备探测行为),这可能会导致不同的网络配置错误(例如,由无意的接口改名引起的禁止接口或者防火墙旁路)。基于MAC地址的udev规则在虚拟化的环境中并不有用,这里的MAC地址如端口数量一样无常。

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设置,防火墙规则)是基于旧名称(变更前)的,则需要更新的网络配置以反映更改的名称。

原文地址:https://www.cnblogs.com/lsgxeva/p/8436750.html

时间: 2024-10-21 22:43:35

如何在CentOS7上改变网络接口名的相关文章

如何在Centos7上安装docker

Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单.容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止.Docker 帮助系统管理员和程序员在容器中开发应用程序,并且可以扩展到成千上万的节点. 容器和 VM(虚拟机)的主要区别是,容器提供了基于进程的隔离,而虚拟机提供了资源的完全隔离.虚拟机可能需要一分钟来启动,而容器只需要一秒钟或更短.容器使用宿主操作系统的内核,而虚拟机使用独立的内核. Docker 的局限性之一是,它只能用在 64 位的操作系统上. 在这篇

如何在centos7上安装redis

解压缩 tar zxvf redis-3.0.4.tar.gz 进入解压后的目录 cd redis-3.0.4 使用Make 编译源文件 make 安装 进入源文件的目录 cd src 复制 Redis 的服务器和客户端到 /usr/local/bin cp redis-server redis-cli /usr/local/bin 最好也把 sentinel,benchmark 和 check 复制过去 cp redis-sentinel redis-benchmark redis-check

2020年,手把手教你如何在CentOS7上一步一步搭建LDAP服务器的最新教程

同步滚动:关 什么是LDAP 什么是LDAP? 要想知道一个概念,最简单的办法就是wikipedia,当然也可以百科. LDAP全称是轻型目录访问协议(Lightweight Directory Access Protocol)是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息. 简单理解起来就是LADP包含一个数据库存储了树状结构组织数据,和一套协议,第三方可通过这套协议进行数据的查询与搜索的功能. 它用的协议基于X.500标准的轻量级目录访问协议,是

如何在CentOS7上部署Ghost博客系统

目录 准备工作 新建用户 安装Nginx服务 将端口添加到防火墙里或者关闭防火墙 安装MySql5.7 安装官方的Ghost工具ghost-cli 网站目录准备,此目录必须为空目录 安装Ghost 启动ghost Nginx的反向代理配置 CentOS版本 CentOS-7-x86_64-DVD-1810 Ghost版本 2.23.4 本文以下所有操作和命令均是根据官网setup说明进行,官网仅针对Ubuntu有安装说明,没有在CentOS里的安装说明,网上能Google或Baidu到的所有文章

如何在CentOS 7上修改主机名

如何在CentOS 7上修改主机名 在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient),和灵活的(pretty).“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名.“瞬态”主机名是在系统运行时临时分配的主机名,例如,通过DHCP或mDNS服务器分配.静态主机名和瞬态主机名都遵从作为互联网域名同样的字符限制规则.而另一方面,“灵活”主机名则允许使用自由形式(包括特殊/空白字符)的主机名,以展示给终端用户(如Linu

Linux 中改变主机名的 4 种方法

今天,我们将向你展示使用不同的方法来修改主机名.你可以从中选取最适合你的方法. -- Magesh Maruthamuthu 昨天我们已经在我们的网站中写过 如何在 Linux 中修改主机名的文章 .今天,我们将向你展示使用不同的方法来修改主机名.你可以从中选取最适合你的方法. 使用 systemd 的系统自带一个名为 hostnamectl 的好用工具,它可以使我们能够轻易地管理系统的主机名. 当你使用这个原生命令时,它可以立刻改变主机名而无需重启来生效. 但假如你通过手动修改某个配置文件来更

在CentOS 7上修改主机名的方法

这次我们来讲解一下如何在CentOS 7环境上修改主机名 1.从VMware上登录CentOS 7的虚拟机,并以root用户登录. 2.查看未修改前的主机名 1>.我们可以通过文件hostname查看主机名称 2>.也可以打开终端查看主机名 3.通过vi编译器修改主机名称因为主机名称存放在hostname文件下,所以我们通过vi编译器来更改文件内容,从而达到更改主机名的作用.输入命令:vi /etc/hostname  更改完成后ESC键+:wq保存退出 4.重启虚拟机,观察主机名是否改变 可

CentOS7上编译多版本PHP并同时运行及systemd设置

CentOS7最大改变是systemd代替过去的systemV服务,于是配置服务的方式改变了,用systemctl替代过去的service, chkconfig等命令. 网站搬迁服务器,全新服务器当然用新系统,于是安装上CentOS7. PHP5.4编译参数: ./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --with-layout=GNU --prefix=/usr/local --exec

如何在VS上用C#玩坏“Hello World”。

如何在VS上用C#玩坏“Hello World”. 为了开发win8应用,重装了系统到win8.1,安好了VS2013终极版,我们开始使用C#,今天来玩“Hello World”. 首先,打开vs,建立一个控制台应用程序.我的建立路径是C:\Users\ZhangXiao\Desktop\,工程名字是ConsoleHelloWorld. 如图,打出代码行,调用System命名空间中Console类的WriteLine函数,在控制台上输出一句话. 第一种方法,打开cmd命令提示符,用cd命令进入C