本篇内容介绍了“linux中网卡指的是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
网卡是一块用来允许计算机在计算机网络上进行通讯的计算机硬件,它使得用户可以通过电缆或无线相互连接。在linux操作系统中,网卡设备的传统命名方式是eth0、eth2、eth3等,查看网卡型号的语法“lspci | grep -i ether”、网卡资源使用情况的语法“sar -n DEV”、网卡是否支持多队列的语法“lspci -vvv | grep -i msi-x”。
网卡是什么东西
网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。由于其拥有MAC地址,因此属于OSI模型的第1层和2层之间。它使得用户可以通过电缆或无线相互连接。
每一个网卡都有一个被称为MAC地址的独一无二的48位串行号,它被写在卡上的一块ROM中。在网络上的每一个计算机都必须拥有一个独一无二的MAC地址。
linux中关于网卡的基本知识总结
一、网卡概述
Linux 操作系统的网卡设备的传统命名方式是 eth0、eth2、eth3等,而 CentOS7 提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名全自动的、可预知的,缺点是比 eth0、wlan0 更难读,比如 ens33 。
二、Eth0和ens的区别
eno1:代表由主办bios内置的网卡
Ens:代表有主板bios内置的PCI-E网卡
Enp2s0:PCI-E独立网卡
Eth0:如果以上都不使用回到默认的网卡名
三、命名规则策略
规则1:
对于板载设备命名合并固件或 BIOS 提供的索引号,如果来自固件或 BIOS 的信息可读就命名,比如eno1,这种命名是比较常见的,否则使用规则2。
规则2:
命名合并固件或 BIOS 提供的 PCI-E 热插拔口索引号,比如 ens1,如果信息可读就使用,否则使用规则3。
规则3:
命名合并硬件接口的物理位置,比如 enp2s0,可用就命名,失败直接到方案5。
规则4:
命名合并接口的 MAC 地址,比如 enx78e7d1ea46da,默认不使用,除非用户选择使用此方案。
规则5:
使用传统的方案,如果所有的方案都失败,使用类似 eth0 这样的样式。
四、网卡名称字符含义
1、前2个字符的含义
en 以太网 Ethernet
wl 无线局域网 WLAN
ww 无线广域网 WWAN
2、第3个字符根据设备类型选择
o<index> on-board device index number
s<slot> hotplug slot index number
x<MAC> MAC address
p<bus>s<slot> PCI geographical location
p<bus>s<slot> USB port number chain
五、修改网卡名称样式为ethx
如果不习惯使用新的命名规则,可以恢复使用传统的方式命名,编辑 grub 文件,增加两个变量,再使用 grub2-mkconfig 重新生成 grub 配置文件即可。
1、编辑 grub 配置文件
vim /etc/sysconfig/grub # 其实是/etc/default/grub的软连接
# 为GRUB_CMDLINE_LINUX变量增加2个参数,具体内容如下(加粗):
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap net.ifnames=0 biosdevname=0 rhgb quiet"
2、重新生成 grub 配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
然后重新启动 Linux 操作系统,通过 ip addr 可以看到网卡名称已经变为 eth0 。
3、修改网卡配置文件
原来网卡配置文件名称为 ifcfg-ens33,这里需要修改为 ethx 的格式,并适当调整网卡配置文件。
mv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-eth0 # 修改ifcfg-eth0文件如下内容(其它内容不变) NAME=eth0 DEVICE=eth0
[root@localhost ~]# systemctl restart network.service # 重启网络服务
注意:ifcfg-ens33 文件最好删除掉,否则重启 network 服务时候会报错
TYPE=Ethernet # 网卡类型:为以太网 PROXY_METHOD=none # 代理方式:关闭状态 BROWSER_ONLY=no # 只是浏览器:否 BOOTPROTO=dhcp # 网卡的引导协议:DHCP[中文名称: 动态主机配置协议] DEFROUTE=yes # 默认路由:是, 不明白的可以百度关键词 `默认路由` IPV4_FAILURE_FATAL=no # 是不开启IPV4致命错误检测:否 IPV6INIT=yes # IPV6是否自动初始化: 是[不会有任何影响, 现在还没用到IPV6] IPV6_AUTOCONF=yes # IPV6是否自动配置:是[不会有任何影响, 现在还没用到IPV6] IPV6_DEFROUTE=yes # IPV6是否可以为默认路由:是[不会有任何影响, 现在还没用到IPV6] IPV6_FAILURE_FATAL=no # 是不开启IPV6致命错误检测:否 IPV6_ADDR_GEN_MODE=stable-privacy # IPV6地址生成模型:stable-privacy [这只一种生成IPV6的策略] NAME=ens33 # 网卡物理设备名称 UUID=f47bde51-fa78-4f79-b68f-d5dd90cfc698 # 通用唯一识别码, 每一个网卡都会有, 不能重复, 否两台linux只有一台网卡可用 DEVICE=ens33 # 网卡设备名称, 必须和 `NAME` 值一样 ONBOOT=no # 是否开机启动, 要想网卡开机就启动或通过 `systemctl restart network`控制网卡,必须设置为 `yes`
/etc/sysconfig/network # 包括主机基本网络信息,用于系统启动 /etc/sysconfig/network-script/ # 此目录下是系统启动最初始化网络的信息 /etc/sysconfig/network-script/ifcfg-em1 # 网络配置信息,每个人的配置名字不一样通过命令查看 /etc/xinetd.conf 定义了由超级进程XINETD启动的网络服务 /etc/protocols # 设定了主机使用的协议以及各个协议的协议号 /etc/services # 设定了主机的不同端口的网络服务
六、查看虚拟化有没有开启
Ctrl+alt+delete
七、基础命令
查看网卡型号:
lspci | grep -i ether;
查看网卡资源使用情况:
sar -n DEV(重点看网络带宽);
查看网卡eth0的队列:
/sys/class/net/eth0/queues;
查看网卡是否支持多队列:
lspci -vvv | grep -i msi-x;
如下图所示,查看Ethernet controller的条目内容,如果有MSI-X && Enable+ && TabSize > 1,则该网卡是多队列网卡,TabSize表示该网卡支持的队列数。