本系列文章导航:01_Linux基础操作CentOS7学习笔记-****博客
文章目录
- 网络配置与管理:命令与工具指南
- 1. `ping`命令
- 2. `ifconfig`命令
- 3. `ip`命令
- 4. `route`命令
- 5. `ip route`命令
- 6. `nslookup`命令
- 7. `nmcli`命令
- 8. `nmtui`命令
- 9. RHEL7修改网卡名
- 1. 修改网络(会话)配置文件中device 网卡名
- 2. 接下来禁用网卡命名规则。
- 3. 执行grub2-mkconfig -o /boot/grub2/grub.cfg命令生成更新grub配置参数
- 4. 添加udev网卡自定义命名规则
- 5. 重启系统验证成功
- 10. 主机路由持久化
在Linux系统中,网络配置和管理是一项基本而重要的任务。本文将详细介绍几种常用的网络配置命令和工具,包括ping、ifconfig、ip、route、ip route、nslookup、nmcli和nmtui,以及如何在RHEL7中修改网卡名和实现路由的持久化。
网络配置与管理:命令与工具指南
在Linux系统中,网络配置和管理是一项基本而重要的任务。本文将详细介绍几种常用的网络配置命令和工具,包括ping
、ifconfig
、ip
、route
、ip route
、nslookup
、nmcli
和nmtui
,以及如何在RHEL7中修改网卡名和实现路由的持久化。
1. ping
命令
ping
命令用于检测与另一个主机之间的网络连接。它使用ICMP协议发送请求回应信息,以测试网络连通性。
语法:
ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
参数说明:
-
-d
使用Socket的SO_DEBUG功能。 -
-c <完成次数>
设置完成要求回应的次数。 -
-f
极限检测。 -
-i<间隔秒数>
指定收发信息的间隔时间。 -
-I<网络界面>
使用指定的网络接口送出数据包。 -
-l<前置载入>
设置在送出要求信息之前,先行发出的数据包。 -
-n
只输出数值。 -
-p<范本样式>
设置填满数据包的范本样式。 -
-q
不显示指令执行过程,开头和结尾的相关信息除外。 -
-r
忽略普通的Routing Table,直接将数据包送到远端主机上。 -
-R
记录路由过程。 -
-s<数据包大小>
设置数据包的大小。 -
-t<存活数值>
设置存活数值TTL的大小。 -
-v
详细显示指令的执行过程。 -
-w <deadline>
在 deadline 毫秒后退出。 -
-W <timeout>
在等待 timeout 毫秒后开始执行。
示例:
[root@lianghui ~]# ping -c 3 -i 0.1 -s10 www.baidu.com
PING www.a.shifen.com (14.119.104.189) 10(38) bytes of data.
18 bytes from 14.119.104.189 (14.119.104.189): icmp_seq=1 ttl=128
18 bytes from 14.119.104.189 (14.119.104.189): icmp_seq=2 ttl=128
18 bytes from 14.119.104.189 (14.119.104.189): icmp_seq=3 ttl=128
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 205ms
-c 指定ping的次数
-i 指定ping间隔时间
-s 指定数据包的大小
-w 指定无法ping通时的wait时间长
2. ifconfig
命令
ifconfig
命令用于显示或设置网络设备。它可以设置网络设备的状态,或是显示目前的设置。
语法:
ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]
参数说明:
-
add<地址>
设置网络设备IPv6的IP地址。 -
del<地址>
删除网络设备IPv6的IP地址。 -
down
关闭指定的网络设备。 -
<hw<网络设备类型><硬件地址>
设置网络设备的类型与硬件地址。 -
io_addr<I/O地址>
设置网络设备的I/O地址。 -
irq<IRQ地址>
设置网络设备的IRQ。 -
media<网络媒介类型>
设置网络设备的媒介类型。 -
mem_start<内存地址>
设置网络设备在主内存所占用的起始地址。 -
metric<数目>
指定在计算数据包的转送次数时,所要加上的数目。 -
mtu<字节>
设置网络设备的MTU。 -
netmask<子网掩码>
设置网络设备的子网掩码。 -
tunnel<地址>
建立IPv4与IPv6之间的隧道通信地址。 -
up
启动指定的网络设备。 -
-broadcast<地址>
将要送往指定地址的数据包当成广播数据包来处理。 -
-pointopoint<地址>
与指定地址的网络设备建立直接连线,此模式具有保密功能。 -
-promisc
关闭或启动指定网络设备的promiscuous模式。 -
[IP地址]
指定网络设备的IP地址。 -
[网络设备]
指定网络设备的名称。
示例:
显示网络设备信息
[root@lianghui ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.133 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 fe80::20c:29ff:fece:3926 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:ce:39:26 txqueuelen 1000 (Ethernet)
RX packets 5006 bytes 343174 (335.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7122 bytes 13125107 (12.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
启动关闭指定网卡
# ifconfig eth0 down
# ifconfig eth0 up
为网卡配置和删除IPv6地址
# ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 //为网卡设置IPv6地址
# ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 //为网卡删除IPv6地址
用ifconfig修改MAC地址
# ifconfig eth0 down //关闭网卡
# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址
# ifconfig eth0 up //启动网卡
# ifconfig eth1 hw ether 00:1D:1C:1D:1E //关闭网卡并修改MAC地址
# ifconfig eth1 up //启动网卡
配置IP地址
# ifconfig eth0 192.168.1.56
//给eth0网卡配置IP地址
# ifconfig eth0 192.168.1.56 netmask 255.255.255.0
// 给eth0网卡配置IP地址,并加上子掩码
# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255
// 给eth0网卡配置IP地址,加上子掩码,加上个广播地址
启用和关闭ARP协议
# ifconfig eth0 arp //开启
# ifconfig eth0 -arp //关闭
设置最大传输单元
# ifconfig eth0 mtu 1500
//设置能通过的最大数据包大小为 1500 bytes
3. ip
命令
ip
命令用于显示和操作路由、网络设备、接口等网络配置。
语法格式:
ip [参数]
常用参数:
-
-4
基于IPv4网络协议。 -
-6
基于IPv6网络协议。 -
-f
强制使用指定协议族而不询问。 -
-o
将每条信息用一行输出,不换行。 -
-r
不使用IP地址,而是用域名。 -
-s
显示执行过程详细信息。 -
-V
显示版本信息。
示例:
显示当前的网络设备运行状态:
[root@lianghui ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:ce:39:26 brd ff:ff:ff:ff:ff:ff
显示当前的网络设备的详细运行状态:
[root@lianghui ~]# ip -s link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
RX: bytes packets errors dropped overrun mcast
0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
0 0 0 0 0 0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:ce:39:26 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
352098 5123 0 0 0 0
TX: bytes packets errors dropped carrier collsns
13133403 7198 0 0 0 0
显示当前核心路由表信息:
[root@lianghui ~]# ip route list
default via 192.168.100.2 dev eth0
169.254.0.0/16 dev eth0 scope link metric 1002
192.168.100.0/24 dev eth0 proto kernel scope link src 192.168.100.133
查看当前linux网络节点名:
# ip addr --- 完整命令 ip address show
[root@lianghui ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:ce:39:26 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.128/24 brd 192.168.100.255 scope global dynamic ens33
valid_lft 1099sec preferred_lft 1099sec
inet6 fe80::20c:29ff:fece:3926/64 scope link
valid_lft forever preferred_lft forever
4. route
命令
route
命令用于显示与设置路由信息。
语法格式:
route [参数] [域名或IP地址]
常用参数:
-
-A
设置网络地址类型。 -
-C
显示内核路由缓存信息。 -
-e
设置路由表显示格式。 -
-F
设置内核FIB路由表参数。 -
-n
显示数字形式的IP地址。 -
-v
显示执行过程详细信息。 -
-host
一个主机的路由表。 -
-net
一个网络的路由表。
常用动作:
-
Add
增加指定的路由记录。 -
Del
删除指定的路由记录。 -
Target
目的网络或目的主机。 -
gw
设置默认网关。 -
mss
设置TCP的最大区块长度(MB)。 -
window
指定通过路由表的TCP连接的窗口大小。 -
dev
路由记录所表示的网络接口。
示例:
显示当前路由表信息:
[root@lianghui ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.100.2 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
添加一条指定的路由信息:
# route add -net 192.168.100.0 netmask 255.255.255.0 dev ens160
# route add default gw 192.168.50.2 默认(缺省)网关
# route add -net 192.168.100.0 netmask 255.255.255.0 gw 192.168.100.2 --添加192.168.100.0网段的路由
# route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.100.2
等价
# route add default gw 192.168.100.2
删除一条指定的路由信息:
# route del -net 192.168.100.0 netmask 255.255.255.0 dev ens160
# route del -net 192.168.100.0 netmask 255.255.255.0 gw 192.168.100.2 ---删除指定的一条路由规则
# route del -net 192.168.100.0 netmask 255.255.255.0 ----存在多条路由时,删除目标网段的第一条路由
添加和删除默认网关:
[root@linuxcool ~]# route add default gw 192.168.100.2
或者 # route add default gw 192.168.50.2 默认(缺省)网关
[root@linuxcool ~]# route del default gw 192.168.100.2
或者 # route del default 删除默认路由
5. ip route
命令
ip route
命令用于显示和操作Linux系统的路由表。它可以显示当前系统的路由信息,包括网络目标、下一跳网关、出口接口等。
以下是ip route
命令的常见用法和示例:
-
显示当前系统的路由表:
ip route show
-
添加一条路由规则:
ip route add <network>/<prefix> via <gateway> dev <interface>
示例:
ip route add 192.168.0.0/24 via 192.168.1.1 dev eth0
-
删除一条路由规则:
ip route del <network>/<prefix> via <gateway> dev <interface>
示例:
ip route del 192.168.0.0/24 via 192.168.1.1 dev eth0
-
修改一条路由规则:
ip route change <network>/<prefix> via <gateway> dev <interface>
示例:
ip route change 192.168.0.0/24 via 192.168.1.2 dev eth0
-
设置默认路由:
ip route add default via <gateway> dev <interface>
示例:
ip route add default via 192.168.1.1 dev eth0
-
清空路由表:
ip route flush
请注意,以上命令中的<network>/<prefix>
表示目标网络和子网掩码,<gateway>
表示下一跳网关的IP地址,<interface>
表示出口接口的名称。
更多关于ip route
命令的详细用法和选项,请参考相关文档或使用man ip-route
命令查看帮助信息。
6. nslookup
命令
nslookup
命令来自英文词组“Nameserver lookup”的缩写,其功能是用于查询域名服务器信息。nslookup命令能够用于查询指定域名所对应的DNS服务器信息(正向解析),亦可查询到指定DNS服务器上所绑定的域名信息(反向解析)。该命令有两种工作方式,其一是交互式,在命令行中执行nslookup命令后即可进入,一问一答的查询模式;其二是非交互式,直接在命令后追加域名或IP地址信息即可直接进行查询操作。
语法格式:
nslookup [参数] 域名或IP地址
常用参数:
-
exit
退出命令。 -
help
显示帮助信息。 -
ls
显示DNS域信息。 -
root
设置默认服务器为DNS域名空间的根目录服务器。 -
server
设置解析域名的服务器地址。 -
set
设置查找运行方式的配置信息。 -
set all
显示当前配置信息。 -
set class
设置查询类。 -
set debug
设置调试模式。 -
set domain
设置默认DNS域名为指定名称。 -
set port
设置默认TCP/UDP DNS域名服务器端口号。 -
set retry
设置重试次数。 -
set root
设置用于查询根服务器的名称。 -
set srchlist
设置默认DNS域名或搜索列表。 -
set timeout
设置等待请求答复的初始秒数。 -
set type
设置查询的资源记录类型。 -
set type=a
设置查询域名A记录。 -
set type=mx
设置查询域名邮件交换记录。 -
set type=soa
设置查询域名授权起始信息。
示例:
查看或测试当前DNS服务器地址:
PS:DNS服务用于查询 域名
方法一:<既能查询当前DNS服务,又能测试是否可用>
nslookup 命令如果没有需要安装包 # yum install -y bind-utils
[root@lianghui ~]# nslookup
> server --查看DNS服务器是谁
Default server: 192.168.100.2
Address: 192.168.100.2#53
> www.baidu.com ----测试当前DNS是否可以正常解析
Server: 192.168.100.2
Address: 192.168.100.2#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 120.232.145.144
Name: www.a.shifen.com
Address: 120.232.145.185
> exit ---退出
查询指定域名所对应的DNS服务器信息(非交互式):
[[root@lianghui ~]# nslookup www.baidu.com
方法二:<只能查你机器当前配置的DNS服务时谁?>
# cat /etc/resolv.conf - ----也可以通过查看DNS配置文件获知当前DNS
search example.com
nameserver 192.168.0.254,192.168.1.254
注意:
centos7上默认由 network 和 NetworkManager 2个服务共同管理,为了避免网络管理冲突导致故障,因此选择其中一个中服务即可,关闭、禁用另一个服务。
network : 推荐使用 配置文件 设置网络
NetworkManager : 推荐使用nmcli 命令去管理网络
固定永久配置:
1.NetworkManager图形界面
nmtui-connect 禁用或启用网卡
nmtui-edit 配置网卡
2.network修改配置文件的方法
修改IP配置需要执行的操作:
1.设置Ip获取的方式 BOOTPROTO=dhcp/static/none
none:不指定任何一种方式,如何有指定IPADDR则静态IP,否则自动获取
dhcp 自动获取
static 手动设置(静态)
如果设置为static 手动设置IP ,则需要设置以下选项
2.IP地址 IPADDR=
3.子网掩码 PREFIX= (5、6系统用 NETMASK= 新系统推荐使用 PREFIX 指定掩码位数)
4.网关 <连接外网需要> GATEWAY=
5.DNS服务器地址 <通过域名访问需要> DNS1= DNS2= DNS3=
DNS1=
network服务管理网络的配置文件,
网络配置文件: /etc/sysconfig/network-scripts/ifcfg-ens33 网卡配置文件名后缀建议与网卡名一致
以下是nmcli命令中常用参数与ifcfg文件中对应参数的表格:
nmcli参数 | ifcfg文件参数 | 描述 |
---|---|---|
connection.autoconnect | ONBOOT | 是否在系统启动时自动连接 |
connection.id | NAME | 连接名称 |
connection.type | TYPE | 连接类型 |
connection.interface | DEVICE | 网卡接口名称 |
ipv4.method | BOOTPROTO | IPv4配置方式 |
ipv4.addresses | IPADDR | IPv4地址 |
ipv4.gateway | GATEWAY | 默认网关 |
ipv4.dns | DNS1, DNS2 | DNS服务器地址 |
ipv4.dns-search | DOMAIN | DNS搜索域 |
ipv4.dns-options | OPTIONS | DNS选项 |
ipv6.method | IPV6_AUTOCONF, DHCPv6 | IPv6配置方式 |
ipv6.addresses | IPV6ADDR | IPv6地址 |
ipv6.gateway | IPV6_DEFAULTGW | IPv6默认网关 |
ipv6.dns | IPV6_AUTOCONF_DNS, DHCPv6 | IPv6 DNS服务器地址 |
ipv6.dns-search | IPV6_AUTOCONF_DNS_SEARCH | IPv6 DNS搜索域 |
ipv6.dns-options | IPV6_AUTOCONF_DNS_OPTIONS | IPv6 DNS选项 |
ipv6.dhcp-duid | DHCPV6_CLIENT_DUID | DHCPv6客户端DUID |
connection.autoconnect-priority | AUTOCONNECT_PRIORITY | 自动连接优先级 |
connection.autoconnect-retries | AUTOCONNECT_RETRIES | 自动连接重试次数 |
请注意,不同版本的Linux发行版和NetworkManager版本可能会有一些差异,因此某些参数可能会有所不同。需根据具体情况参考相关文档或使用man nm-settings
命令查看详细信息。
7. nmcli
命令
nmcli
命令来自英文词组“NetworkManager command-line”的缩写,其功能是用于基于命令行配置网卡参数。nmcli与nmtui命令工具配置过的参数会直接写入到网卡服务配置文件中,永久生效。
语法格式:
nmcli [参数] [网卡名]
常用参数:
-
-f
设置要显示的字段名。 -
-h
显示帮助信息。 -
-p
美观输出信息。 -
-t
简洁输出信息。 -
-v
显示版本信息。
示例:
显示所有网络连接的列表:
[root@linuxcool ~]# nmcli con show
NAME UUID TYPE DEVICE
ens160 1136e9fc-4549-4737-b9e5-86e8250f2b5d ethernet ens160
virbr0 8065a10b-356e-439a-a55f-ccb965059640 bridge virbr0
显示所有网络连接的详细信息:
[root@linuxcool ~]# nmcli device show
GENERAL.DEVICE: ens160
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:22:31:9C
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ens160
………………省略部分输出信息………………
对指定网卡创建一个网络会话连接,网卡参数由DHCP服务获取:
[root@linuxcool ~]# nmcli connection add con-name house type ethernet ifname ens160
Connection 'house' (d848242a-4bdf-4446-9079-6e12ab5d1f15) successfully added.
对指定网卡创建一个网络会话连接,网卡参数由手动指定配置:
[root@linuxcool ~]# nmcli connection add con-name company ifname ens160 autoconnect no type ethernet ip4 192.168.10.10/24 gw4 192.168.10.1
Connection 'company' (6ac8f3ad-0846-42f4-819a-e1ae84f4da86) successfully added.
对一个指定的网络会话连接添加DNS地址参数:
[root@linuxcool ~]# nmcli connection modify company ipv4.dns 8.8.8.8
实例
- 创建会话"default",使用DHCP获取IP,并自动连接网络,网卡名为ens33:
nmcli connection add con-name default type ethernet ifname ens33 autoconnect yes
- 创建会话"static",指定IP和网关,但不自动连接网络:
nmcli connection add con-name static type ethernet ifname ens33 autoconnect no ipv4.addresses 192.168.100.111/24 ipv4.gateway 192.168.100.254
- 切换到静态IP的会话"static":
nmcli connection up static
- 切换回使用DHCP获取IP的会话"default":
nmcli connection up default
- 查看当前存在的会话:
nmcli connection show
- 查看会话"static"的详细配置信息:
nmcli connection show "static"
- 查看当前活动的会话:
nmcli connection show --active
修改现有会话的步骤如下:
- 关闭会话"static"的自动连接:
nmcli con modify static connection.autoconnect no
- 修改会话"static"的DNS服务器地址:
nmcli con modify static ipv4.dns "8.8.8.8"
- 添加第二个DNS服务器地址:
nmcli con modify static +ipv4.dns "8.8.4.4"
- 更换静态IP地址和默认网关:
nmcli con modify static ipv4.addresses "192.168.0.120/24" ipv4.gateway "192.168.0.1"
- 添加第二个IP地址:
nmcli con modify static +ipv4.addresses "192.168.0.130/24"
注意:对于修改的配置,nmcli会自动保存为配置文件,并在重启后仍然有效。但如果更改了配置,需要重新激活会话以使新配置生效:
nmcli con up "static"
8. nmtui
命令
nmtui
命令来自英文词组“NetworkManager TUI”的缩写,其功能是用于管理网卡配置参数。用户可以使用nmtui命令在终端下调出类图形界面,使用方向和回车键即可进行控制,对于不会使用nmcli命令的新手管理员来讲十分友好。
语法格式:
nmtui
常用选项:
-
Activate a connection
激活网卡。 -
Edit a connection
编辑网卡。 -
Quit
退出工具。 -
Set system hostname
设置主机名。
示例:
进入网卡参数配置界面:
[root@linuxcool ~]# nmtui
9. RHEL7修改网卡名
注意:新手在修改网卡时可能存在误操作,建议vmware建立快照再进行相关改动
工作中可能涉及修改网卡的需求:
1.在RHEL/centos7中接口名称自动基于固件、拓扑结构和位置信息来确定,因此新的接口名称难以阅读,在系统安装完成后网卡使用起来较为不便,因此我们将当前的网卡名ens33称改为熟悉的eth0
2.当前管理多台服务器时,而多台服务器的网卡命名各不相同,造成批量管理的麻烦,因此修改为某个统一的名称
[root@lianghui ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.128 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 fe80::20c:29ff:fece:3926 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:ce:39:26 txqueuelen 1000 (Ethernet)
RX packets 21359 bytes 28047624 (26.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3374 bytes 282920 (276.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
1. 修改网络(会话)配置文件中device 网卡名
[root@lianghui ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
DEVICE=eth0
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
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=67fd3dfb-b036-48e2-b1a2-1ad2723188e3
ONBOOT=yes
HWADDR=00:0c:29:ce:39:26 如果改名启动失败报链接错误 指定正确MAC地址
2. 接下来禁用网卡命名规则。
此功能通过/etc/default/grub文件来控制,要禁用此次功能,在文件中加入"net.ifnames=0 biosdevname=0"即可
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="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0 biosdevname=0 "
GRUB_DISABLE_RECOVERY="true"
3. 执行grub2-mkconfig -o /boot/grub2/grub.cfg命令生成更新grub配置参数
[root@lianghui ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-9aa4bea4400741d596c5b60c2e947f0e
Found initrd image: /boot/initramfs-0-rescue-9aa4bea4400741d596c5b60c2e947f0e.img
done
4. 添加udev网卡自定义命名规则
在/etc/udev/rules.d目录中创建一个网卡规则70-persistent-net.rules文件。在文件中写入以下参数:
SUBSYSTEM==“net”,ACTION==“add”,DRIVERS==“?",ATTR{address}“需要修改名称的网卡MAC地址”,ATTR{type}“1” ,KERNEL=="eth”,NAME=“eth0”
[root@lianghui ~]# vim /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net",ACTION=="add",DRIVERS=="?*",ATTR{address}=="00:0c:29:ce:39:26",ATTR{type}=="1" ,KERNEL=="eth*",NAME="eth0"
5. 重启系统验证成功
[root@lianghui ~]# reboot
[root@lianghui ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.128 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 fe80::20c:29ff:fece:3926 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:ce:39:26 txqueuelen 1000 (Ethernet)
RX packets 53 bytes 7451 (7.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 55 bytes 7663 (7.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
10. 主机路由持久化
按照以下步骤创建对应网卡的路由配置文件并添加路由规则:
- 打开路由配置文件:
[root@lianghui ~]# vim /etc/sysconfig/network-scripts/route-eth0
- 在文件中添加路由规则,使用与
ip route add
命令相同的语法。例如:
14.0.0.0/8 via 192.168.100.2 dev eth0
183.3.0.0/16 via 192.168.100.2 dev eth0
113.0.0.0/8 via 192.168.100.2 dev eth0
-
保存并关闭文件。
-
重启网络服务以使配置文件生效:
[root@lianghui ~]# systemctl restart network
- 使用
route -n
命令验证路由规则是否成功添加。您应该能够看到添加的路由规则以及默认路由等信息。
[root@lianghui ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.100.2 0.0.0.0 UG 0 0 0 eth0
14.0.0.0 192.168.100.2 255.0.0.0 UG 0 0 0 eth0
113.0.0.0 192.168.100.2 255.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
183.3.0.0 192.168.100.2 255.255.0.0 UG 0 0 0 eth0
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0