网卡命名
两种命名规范
biosdevname(过时)
通过读取BIOS中的信息来确定网卡的物理位置,然后借此生成设备名称。这种方式并不一定能够准确对应网卡的物理顺序。
使用需安装 yum -y install biosdevname 软件包
命名规律
eth0、eth1、eth2...
systemd(主流)
使用设备的类型、位置、数字来生成设备名称。
守护进程 systemd-udevd.service ,默认开机自启
命名规律
类型
|----|-----------------------------------------|
| en | 以太网(Ethernet) |
| ib | 无限带宽(InfiniBand) |
| sl | 串列线路互联网协议(slip:Serial line IP) |
| wl | 无线局域网(WLAN,Wireless local area network) |
| ww | 无线广域网(WWAN,Wireless wide area network) |
位置
|----------------------------------------------------------------------------------------|----------|
| o<index> | 板载设备索引号 |
| s<slot> | 热插拔插槽索引号 |
| x<MAC> | MAC 地址 |
| p<bus>s<slot>[f<function>][d<dev_id>] | PCI 地理位置 |
| p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>] | USB 端口链 |
命名策略
Scheme 1(方案 1):如果从BIOS中能够取到可用的,板载网卡的索引号,则使用这个索引号命名,例如: eno1,如不能则尝试Scheme 2
Scheme 2(方案 2):如果从BIOS中能够取到可以用的,网卡所在的PCI-E热插拔插槽的索引号,则使用这个索引号命名,例如: ens1,如不能则尝试Scheme 3
Scheme 3(方案 3):如果能拿到设备所连接的物理位置信息,则使用这个信息命名,例如:enp2s0,如不能则尝试Scheme 5
Scheme 4(方案 4):使用网卡的MAC地址来命名,这个方法一般不使用。
Scheme 5(方案 5):传统的kernel命名方法,例如: eth0,这种命名方法的结果不可预知的,即可能第二块网卡对应eth0,第一块网卡对应eth1。
管理方式
network.service
network.service是系统提供的服务之一,以兼容遗留的网络功能。该服务的运行也被纳入SystemD的管理。
相关命令
service network start 和 chkconfig network on 系列命令
systemctl start network 系列命令
NetworkManager.service
它是守护进程NetworkManager提供的服务。centos7及之后版本默认的网络管理工具
相关命令
systemctl status NetworkManager.service 系列命令
两者不能同时使用
CentOS6
网卡名字
常见的 eth0、eth1、eth2...
管理方式
network.service
相关命令
启动网络服务:service network start
关闭网络服务:service network stop
查看网络服务状态:service network status
设为开机自启:chkconfig network on
取消开机自启:chkconfig network off
配置网络
修改完网卡配置文件后重启网络服务。
bash
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="00:0C:29:E5:8D:44"
TYPE="Ethernet"
UUID="8d0680d1-36ff-4a3f-ac93-5ca2b335094d"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR=192.168.28.163
PREFIX=24
GATEWAY=192.168.28.2
DNS1=223.5.5.5
DNS2=119.29.29.29
[root@localhost ~]# service network restart
CentOS7
网卡名字
常见的 ens33
管理方式
network.service 和 NetworkManager(默认) 同时存在,但不能同时启用。
系统启动时,/etc/init.d/network会读取ifcfg文件,并检测NetworkManager是否已启动该设备。如果NetworkManager已经启动该设备,则/etc/init.d/network不生效,NetworkManager.service管理网络;否则/etc/init.d/network会启动该设备,network.service管理网络。
相关命令
启动网络服务:systemctl start network.service 或 systemctl start NetworkManager.service
关闭网络服务:systemctl stop network.service 或 systemctl stop NetworkManager.service
查看网络服务状态:systemctl status network.service 或 systemctl status NetworkManager.service
设为开机自启:systemctl enable network.service 或 systemctl enable NetworkManager.service
取消开机自启:systemctl disable network.service 或 systemctl disable NetworkManager.service
配置网络
network.service方式
修改完网卡配置文件后重启网络服务。
bash
将 NetworkManager 停止并取消开机自启
[root@wenzi ~]# systemctl stop NetworkManager.service
[root@wenzi ~]# systemctl disable NetworkManager.service
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
Removed symlink /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
启动network.service并设置为开机自启
[root@wenzi ~]# systemctl start network.service
会出现提示,应使用 chkconfig network on
[root@wenzi ~]# systemctl enable network.service
network.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig network on
[root@wenzi ~]# chkconfig network on
[root@wenzi ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID="039c247d-11cc-4cee-8562-01f309f0332a"
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.28.162
PREFIX=24
GATEWAY=192.168.28.2
DNS1=223.5.5.5
DNS2=119.29.29.29
[root@wenzi ~]# systemctl restart network.service
NetworkManager方式
见下方CentOS8
CentOS8
网卡名字
常见的 ens160
管理方式
NetworkManager
相关命令
启动网络服务:systemctl start NetworkManager.service
关闭网络服务:systemctl stop NetworkManager.service
查看网络服务状态:systemctl status NetworkManager.service
设为开机自启:systemctl enable NetworkManager.service
取消开机自启:systemctl disable NetworkManager.service
配置网络
nmcli
是一个命令行工具,用于控制NetworkManager,它是CentOS 7和Red Hat Enterprise Linux 7等系统中默认的网络管理工具。
语法
nmcli [options] object {command | help}
object 常用的是 connection 和 device。
Device(设备)是指网络接口,是物理设备,例如网卡、无线网卡等。NetworkManager可以自动检测和配置这些设备。
Connection(连接)是逻辑设置,用于描述如何配置Device(设备)。一个Connection可以应用到多个Device上,但同一时间只能启用其中一个Connection。Connection包含了诸如IP地址、子网掩码、网关等网络参数的配置。
一、查看网卡信息
bash
查看所有网络连接
[root@wenzi ~]# nmcli con show
NAME UUID TYPE DEVICE
System ens160 96649f5b-1c86-4cea-aa1e-366223abaea8 ethernet ens160
查看活跃的网络连接
[root@wenzi ~]# nmcli con show --active
NAME UUID TYPE DEVICE
System ens160 96649f5b-1c86-4cea-aa1e-366223abaea8 ethernet ens160
查看指定网络连接的详细信息
[root@wenzi ~]# nmcli con show "System ens160"
connection.id: System ens160
connection.uuid: 96649f5b-1c86-4cea-aa1e-366223abaea8
connection.stable-id: --
connection.type: 802-3-etherne
...
查看所有网络设备
[root@wenzi ~]# nmcli dev show
GENERAL.DEVICE: ens160
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:1B:12:DA
...
GENERAL.DEVICE: lo
GENERAL.TYPE: loopback
GENERAL.HWADDR: 00:00:00:00:00:00
GENERAL.MTU: 65536
查看指定网络设备的详细信息
[root@wenzi ~]# nmcli dev show ens160
GENERAL.DEVICE: ens160
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:1B:12:DA
GENERAL.MTU: 1500
...
二、改变网卡状态
bash
停用指定的网络连接
[root@wenzi ~]# nmcli con down "System ens160"
启用指定的网络连接
[root@wenzi ~]# nmcli con up "System ens160"
删除指定的网络连接
[root@wenzi ~]# nmcli con delete "System ens160"
停用指定网络设备
[root@wenzi ~]# nmcli device disconnect ens160
启用指定网络设备
[root@wenzi ~]# nmcli device connect ens160
删除指定的网络设备
[root@wenzi ~]# nmcli device delete ens160
重新加载网络配置
[root@wenzi ~]# nmcli con reload
三、新增网卡配置文件
nmcli con add ...会自动生成新的网卡配置文件,名字为ifcfg-[con-name],即下面的ifcfg-ens00
bash
[root@wenzi ~]# nmcli con add type ethernet con-name ens00 ifname ens00 ipv4.method manual connection.autoconnect yes ipv4.addresses 192.168.28.165/24 ipv4.gateway 192.168.28.2 ipv4.dns 223.5.5.5 +ipv4.dns 119.29.29.29
[root@wenzi ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens00
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.28.165
PREFIX=24
GATEWAY=192.168.28.2
DNS1=223.5.5.5
DNS2=119.29.29.29
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens00
UUID=e4b5bd14-e321-4a9a-a8a9-13226a209c5e
DEVICE=ens00
ONBOOT=yes
|----------------------------------|---------------------------------|
| type ethernet | TYPE=Ethernet |
| con-name ens00 | NAME=ens00 |
| ifname ens00 | DEVICE=ens00 |
| ipv4.method manual 或 auto | BOOTPROTO=none 或 dhcp |
| connection.autoconnect yes | ONBOOT=yes |
| ipv4.addresses 192.168.28.165/24 | IPADDR=192.168.28.165 PREFIX=24 |
| ipv4.gateway 192.168.28.2 | GATEWAY=192.168.28.2 |
| ipv4.dns 223.5.5.5 | DNS1=223.5.5.5 |
| +ipv4.dns 119.29.29.29 | DNS2=119.29.29.29 |
三、修改网卡配置文件
一、通过nmcli命令nmcli con mod ens00 .... ,修改后需要执行 nmcli con up ens00 使配置生效。
二、手动修改ifcfg-ens00配置文件,修改后需要执行 nmcli con reload && nmcli con up ens00 使配置生效
bash
添加第二个IP
[root@wenzi ~]# nmcli con mod ens00 +ipv4.addresses 192.168.28.166/24
删除第二个IP
[root@wenzi ~]# nmcli con mod ens00 -ipv4.addresses 192.168.28.166/24
添加第二个DNS
[root@wenzi ~]# nmcli con mod ens00 +ipv4.dns 223.5.5.5
删除第二个DNS
[root@wenzi ~]# nmcli con mod ens00 -ipv4.dns 223.5.5.5
其余的选项同上方表格。