07_Linux网络配置与管理:命令与工具指南

本系列文章导航:01_Linux基础操作CentOS7学习笔记-CSDN博客

文章目录

  • 网络配置与管理:命令与工具指南
    • [1. `ping`命令](#1. ping命令)
    • [2. `ifconfig`命令](#2. ifconfig命令)
    • [3. `ip`命令](#3. ip命令)
    • [4. `route`命令](#4. route命令)
    • [5. `ip route`命令](#5. ip route命令)
    • [6. `nslookup`命令](#6. nslookup命令)
    • [7. `nmcli`命令](#7. nmcli命令)
    • [8. `nmtui`命令](#8. nmtui命令)
    • [9. RHEL7修改网卡名](#9. RHEL7修改网卡名)
      • [1. 修改网络(会话)配置文件中device 网卡名](#1. 修改网络(会话)配置文件中device 网卡名)
      • [2. 接下来禁用网卡命名规则。](#2. 接下来禁用网卡命名规则。)
      • [3. 执行grub2-mkconfig -o /boot/grub2/grub.cfg命令生成更新grub配置参数](#3. 执行grub2-mkconfig -o /boot/grub2/grub.cfg命令生成更新grub配置参数)
      • [4. 添加udev网卡自定义命名规则](#4. 添加udev网卡自定义命名规则)
      • [5. 重启系统验证成功](#5. 重启系统验证成功)
    • [10. 主机路由持久化](#10. 主机路由持久化)

在Linux系统中,网络配置和管理是一项基本而重要的任务。本文将详细介绍几种常用的网络配置命令和工具,包括ping、ifconfig、ip、route、ip route、nslookup、nmcli和nmtui,以及如何在RHEL7中修改网卡名和实现路由的持久化。

网络配置与管理:命令与工具指南

在Linux系统中,网络配置和管理是一项基本而重要的任务。本文将详细介绍几种常用的网络配置命令和工具,包括pingifconfigiprouteip routenslookupnmclinmtui,以及如何在RHEL7中修改网卡名和实现路由的持久化。

1. ping命令

ping命令用于检测与另一个主机之间的网络连接。它使用ICMP协议发送请求回应信息,以测试网络连通性。

语法:

shell 复制代码
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 毫秒后开始执行。

示例:

shell 复制代码
[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命令用于显示或设置网络设备。它可以设置网络设备的状态,或是显示目前的设置。

语法:

shell 复制代码
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地址。
  • [网络设备] 指定网络设备的名称。

示例:

显示网络设备信息

shell 复制代码
[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

启动关闭指定网卡

shell 复制代码
# ifconfig eth0 down
# ifconfig eth0 up

为网卡配置和删除IPv6地址

shell 复制代码
# ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 //为网卡设置IPv6地址

# ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 //为网卡删除IPv6地址

用ifconfig修改MAC地址

shell 复制代码
# 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地址

shell 复制代码
# 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协议

shell 复制代码
# ifconfig eth0 arp  //开启
# ifconfig eth0 -arp  //关闭

设置最大传输单元

shell 复制代码
# ifconfig eth0 mtu 1500 
//设置能通过的最大数据包大小为 1500 bytes

3. ip命令

ip命令用于显示和操作路由、网络设备、接口等网络配置。

语法格式:

shell 复制代码
ip [参数]

常用参数:

  • -4 基于IPv4网络协议。
  • -6 基于IPv6网络协议。
  • -f 强制使用指定协议族而不询问。
  • -o 将每条信息用一行输出,不换行。
  • -r 不使用IP地址,而是用域名。
  • -s 显示执行过程详细信息。
  • -V 显示版本信息。

示例:

显示当前的网络设备运行状态:

shell 复制代码
[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

显示当前的网络设备的详细运行状态:

shell 复制代码
[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       

显示当前核心路由表信息:

shell 复制代码
[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网络节点名:

shell 复制代码
# 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命令用于显示与设置路由信息。

语法格式:

shell 复制代码
route [参数] [域名或IP地址]

常用参数:

  • -A 设置网络地址类型。
  • -C 显示内核路由缓存信息。
  • -e 设置路由表显示格式。
  • -F 设置内核FIB路由表参数。
  • -n 显示数字形式的IP地址。
  • -v 显示执行过程详细信息。
  • -host 一个主机的路由表。
  • -net 一个网络的路由表。

常用动作:

  • Add 增加指定的路由记录。
  • Del 删除指定的路由记录。
  • Target 目的网络或目的主机。
  • gw 设置默认网关。
  • mss 设置TCP的最大区块长度(MB)。
  • window 指定通过路由表的TCP连接的窗口大小。
  • dev 路由记录所表示的网络接口。

示例:

显示当前路由表信息:

shell 复制代码
[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

添加一条指定的路由信息:

shell 复制代码
# 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

删除一条指定的路由信息:

shell 复制代码
# 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      ----存在多条路由时,删除目标网段的第一条路由

添加和删除默认网关:

shell 复制代码
[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命令的常见用法和示例:

  • 显示当前系统的路由表:

    shell 复制代码
    ip route show
  • 添加一条路由规则:

    shell 复制代码
    ip route add <network>/<prefix> via <gateway> dev <interface>

    示例:

    shell 复制代码
    ip route add 192.168.0.0/24 via 192.168.1.1 dev eth0
  • 删除一条路由规则:

    shell 复制代码
    ip route del <network>/<prefix> via <gateway> dev <interface>

    示例:

    shell 复制代码
    ip route del 192.168.0.0/24 via 192.168.1.1 dev eth0
  • 修改一条路由规则:

    shell 复制代码
    ip route change <network>/<prefix> via <gateway> dev <interface>

    示例:

    shell 复制代码
    ip route change 192.168.0.0/24 via 192.168.1.2 dev eth0
  • 设置默认路由:

    shell 复制代码
    ip route add default via <gateway> dev <interface>

    示例:

    shell 复制代码
    ip route add default via 192.168.1.1 dev eth0
  • 清空路由表:

    shell 复制代码
    ip route flush

请注意,以上命令中的<network>/<prefix>表示目标网络和子网掩码,<gateway>表示下一跳网关的IP地址,<interface>表示出口接口的名称。

更多关于ip route命令的详细用法和选项,请参考相关文档或使用man ip-route命令查看帮助信息。

6. nslookup命令

nslookup命令来自英文词组"Nameserver lookup"的缩写,其功能是用于查询域名服务器信息。nslookup命令能够用于查询指定域名所对应的DNS服务器信息(正向解析),亦可查询到指定DNS服务器上所绑定的域名信息(反向解析)。该命令有两种工作方式,其一是交互式,在命令行中执行nslookup命令后即可进入,一问一答的查询模式;其二是非交互式,直接在命令后追加域名或IP地址信息即可直接进行查询操作。
语法格式:

shell 复制代码
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

shell 复制代码
[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服务器信息(非交互式):

shell 复制代码
[[root@lianghui ~]# nslookup www.baidu.com

方法二:<只能查你机器当前配置的DNS服务时谁?>

shell 复制代码
# 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命令工具配置过的参数会直接写入到网卡服务配置文件中,永久生效。

语法格式:

shell 复制代码
nmcli [参数] [网卡名]

常用参数:

  • -f 设置要显示的字段名。
  • -h 显示帮助信息。
  • -p 美观输出信息。
  • -t 简洁输出信息。
  • -v 显示版本信息。

示例:

显示所有网络连接的列表:

shell 复制代码
[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

显示所有网络连接的详细信息:

shell 复制代码
[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服务获取:

shell 复制代码
[root@linuxcool ~]# nmcli connection add con-name house type ethernet ifname ens160
Connection 'house' (d848242a-4bdf-4446-9079-6e12ab5d1f15) successfully added.

对指定网卡创建一个网络会话连接,网卡参数由手动指定配置:

shell 复制代码
[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地址参数:

shell 复制代码
[root@linuxcool ~]# nmcli connection modify company ipv4.dns 8.8.8.8

实例

  1. 创建会话"default",使用DHCP获取IP,并自动连接网络,网卡名为ens33:
shell 复制代码
nmcli connection add con-name default type ethernet ifname ens33 autoconnect yes
  1. 创建会话"static",指定IP和网关,但不自动连接网络:
shell 复制代码
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
  1. 切换到静态IP的会话"static":
shell 复制代码
nmcli connection up static
  1. 切换回使用DHCP获取IP的会话"default":
shell 复制代码
nmcli connection up default
  1. 查看当前存在的会话:
shell 复制代码
nmcli connection show
  1. 查看会话"static"的详细配置信息:
shell 复制代码
nmcli connection show "static"
  1. 查看当前活动的会话:
shell 复制代码
nmcli connection show --active

修改现有会话的步骤如下:

  1. 关闭会话"static"的自动连接:
shell 复制代码
nmcli con modify static connection.autoconnect no
  1. 修改会话"static"的DNS服务器地址:
shell 复制代码
nmcli con modify static ipv4.dns "8.8.8.8"
  1. 添加第二个DNS服务器地址:
shell 复制代码
nmcli con modify static +ipv4.dns "8.8.4.4"
  1. 更换静态IP地址和默认网关:
shell 复制代码
nmcli con modify static ipv4.addresses "192.168.0.120/24" ipv4.gateway "192.168.0.1"
  1. 添加第二个IP地址:
shell 复制代码
nmcli con modify static +ipv4.addresses "192.168.0.130/24"

注意:对于修改的配置,nmcli会自动保存为配置文件,并在重启后仍然有效。但如果更改了配置,需要重新激活会话以使新配置生效:

shell 复制代码
nmcli con up "static"

8. nmtui命令

nmtui命令来自英文词组"NetworkManager TUI"的缩写,其功能是用于管理网卡配置参数。用户可以使用nmtui命令在终端下调出类图形界面,使用方向和回车键即可进行控制,对于不会使用nmcli命令的新手管理员来讲十分友好。

语法格式:

shell 复制代码
nmtui

常用选项:

  • Activate a connection 激活网卡。
  • Edit a connection 编辑网卡。
  • Quit 退出工具。
  • Set system hostname 设置主机名。

示例:

进入网卡参数配置界面:

shell 复制代码
[root@linuxcool ~]# nmtui

9. RHEL7修改网卡名

注意:新手在修改网卡时可能存在误操作,建议vmware建立快照再进行相关改动

工作中可能涉及修改网卡的需求:

1.在RHEL/centos7中接口名称自动基于固件、拓扑结构和位置信息来确定,因此新的接口名称难以阅读,在系统安装完成后网卡使用起来较为不便,因此我们将当前的网卡名ens33称改为熟悉的eth0

2.当前管理多台服务器时,而多台服务器的网卡命名各不相同,造成批量管理的麻烦,因此修改为某个统一的名称

shell 复制代码
[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 网卡名

shell 复制代码
[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"即可

shell 复制代码
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配置参数

shell 复制代码
[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"

shell 复制代码
[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. 重启系统验证成功

shell 复制代码
[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. 主机路由持久化

按照以下步骤创建对应网卡的路由配置文件并添加路由规则:

  1. 打开路由配置文件:
shell 复制代码
[root@lianghui ~]# vim /etc/sysconfig/network-scripts/route-eth0
  1. 在文件中添加路由规则,使用与ip route add命令相同的语法。例如:
shell 复制代码
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
  1. 保存并关闭文件。

  2. 重启网络服务以使配置文件生效:

shell 复制代码
[root@lianghui ~]# systemctl restart network
  1. 使用route -n命令验证路由规则是否成功添加。您应该能够看到添加的路由规则以及默认路由等信息。
shell 复制代码
[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
相关推荐
软件技术员5 分钟前
Let‘s Encrypt SSL证书:acmessl.cn申请免费3个月证书
服务器·网络协议·ssl
哎呦喂-ll16 分钟前
Linux进阶:环境变量
linux
耗同学一米八18 分钟前
2024 年河北省职业院校技能大赛网络建设与运维赛项样题四
运维·网络
Rverdoser18 分钟前
Linux环境开启MongoDB的安全认证
linux·安全·mongodb
PigeonGuan28 分钟前
【jupyter】linux服务器怎么使用jupyter
linux·ide·jupyter
一条晒干的咸魚44 分钟前
【Web前端】创建我的第一个 Web 表单
服务器·前端·javascript·json·对象·表单
速盾cdn1 小时前
速盾:CDN缓存的工作原理是什么?
网络·安全·web安全
东华果汁哥1 小时前
【linux 免密登录】快速设置kafka01、kafka02、kafka03 三台机器免密登录
linux·运维·服务器
咖喱鱼蛋1 小时前
Ubuntu安装Electron环境
linux·ubuntu·electron