RHEL7网络管理NetworkManager和nmcli指令

1、NetworkManager简介
在 Red Hat Enterprise Linux 7 中,NetworkManager 提供的默认联网服务是一个动态网络控制和配置守护
进程,它尝试在其可用时保持网络设备和连接处于活动状态。仍支持传统 ifcfg 类型配置文件。
 
  • nmcli:NetworkManager的命令行工具(CLI)
  • nmtui:NetworkManager的文本用户界面工具(TUI)
 
 
安装NetworkManager:
#yum  install   NetworkManager
 
查看NetworkManager守护进程状态:
#systemctl status  NetworkManager
 
设置开机启动NetworkManager服务:
#systemctl enable  NetworkManager
 
 
2、使用文本用户界面(nmtui)进行网络配置
#nmtui  
从上面看出 可以配置IP地址、主机名。
建议使用这种方法配置主机名很方便。
 
 
3、使用sysconfig文件进行网络配置
网卡接口的具体信息保存在/etc/sysconfig/network-scripts/ 目录下的ifcfg文件中。
[root@test network-scripts]# cat ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="e51a1d1e-fe3b-4360-b916-d005fa98fa7d"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.110.168
NETMASK=255.255.255.0
GATEWAY=192.168.110.2
DNS1=114.114.114.114
 
 
在RHEL7中编辑ifcfg文件时,networkmanager不会自动意识到更改,必须让networkmanager 重新读取该配置文件,使用
如下指令:
#nmcli   connection   reload
或者,
# systemctl restart network
 
官方文档中提到:
建议不要在ifcfg文件的同一位置保存其备份文件。网络脚本会运行ifcfg-*,扩展名.old、.orig、.rpmnew、.rpmorig和
.rmpsave除外。最好不要将备份文件保存在/etc/目录下。
 
 
ifup和ifdown指令
ifup   ensxx         //调用networkmanager 启动该接口连接
ifdown    ensxx    //调用networkmanager 终止该接口连接
 
 
 
4、使用nmcli命令行工具配置网络
 
nmcli指令与配置文件对应关系
 
nmcli指令帮助信息:
#nmcli  help
#nmcli  general  help
 
4.1 查看网卡接口信息
#nmcli  device  status
 
#nmcli  device  show  eno49
 
 
4.2查看连接信息
#nmcli  conn show
 
 
查看某个接口连接的详细信息:
#nmcli  conn show  eno49
 
 
显示所有活动连接:
 
 
4.3启动与停止接口
启动接口:
nmcli connection up eno49
nmcli device connect eno49
 
#停止接口
nmcli connection down  eno49  
nmcli device disconnect  eno49
 
建议使用nmcli   dev  connect/disconnect   enoxx指令,这样断开链接后,会将接口放到“手动”模式,接口不会被自动激活。
 
 
删除网络连接的配置文件:
nmcli  conn  delete  eno49
 
重新加载网络配置文件:
nmcli  conn  reload
 
 
 
4.4 修改网卡是不是开机自动启动(ONBOOT=yes/no)
nmcli  conn modify  eno49  connection.autoconnect  no/on
 
 
4.5设置修改IP地址和DNS
给eno49添加一个IP(IPADDR)
# nmcli connection modify eth0 ipv4.addresses 192.168.0.58
 
给eno49添加一个子网掩码(NETMASK)
# nmcli connection modify eth0 ipv4.addresses 192.168.0.58/24
 
 
IP获取方式设置成手动(BOOTPROTO=static/none/dhcp)
# nmcli connection modify eth0 ipv4.method manual
 
 
添加DNS
# nmcli connection modify eth0 ipv4.dns 114.114.114.114
 
删除DNS
# nmcli connection modify eth0 -ipv4.dns 114.114.114.114
 
添加一个网关(GATEWAY)
 
# nmcli connection modify eth0 ipv4.gateway 192.168.0.2
 
或者:
nmcli connection modify eno49 ipv4.addresses  '192.168.10.10/24 '  ipv4.gateway '192.168.10.254'  ipv4.dns '8.8.8.8'  
 
 
 
6、RHEL7中一致网络设备命名【摘自官方文档】
在 Red Hat Enterprise Linux 7 中,udev 支持大量不同的命名方案。默认是根据固件、拓扑及位置信息分配
固定名称。这样做的优点是命名可完全自动进行,并可预期,即使添加或删除硬件后也会保留其名称(不会出
现重复枚举的情况),同时可顺利更换损坏的硬件。不足之处是,相比传统的名称,比如 eth0 或 wlan0,这
些名称有时会比较难理解。例如:enp5s0。
 
 
RHEL7中命名方案层级结构:
默认情况下,systemd 会使用以下策略,采用支持的命名方案为接口命名:
  • 方案 1:如果固件或 BIOS 信息适用且可用,则使用整合了为板载设备提供索引号的固件或 BIOS 的名称(例如:eno1),否则请使用方案 2。
  • 方案 2:如果固件或 BIOS 信息适用且可用,则使用整合了为 PCI 快速热插拔插槽提供索引号的固件或BIOS 名称(例如 ens1),否则请使用方案 3。
  • 方案 3:如果硬件连接器物理位置信息可用,则使用整合了该信息的名称(例如:enp2s0),否则请使用方案 5。
  • 方案 4: 默认不使用整合接口 MAC 地址的名称(例如:enx78e7d1ea46da),但用户可选择使用此方案。
  • 方案 5:传统的不可预测的内核命名方案,在其他方法均失败后使用(例如: eth0)。
 
这个策略(如上所述)是默认策略。如果该系统已启用 biosdevname,则会使用该方案。注:启用
biosdevname 需要添加 biosdevname=1 作为命令行参数(Dell 系统除外),此时只要安装
biosdevname,就会默认使用该方案。如果用户已添加 udev 规则,该规则会更高内核设备名称,则会优
先使用这些规则。
 
结合上述规则,从下面可以看出eno49/50是板载的网卡。ens1f0/ens1f1是PCI网卡,后面添加的。
 
 
 

posted on 2019-11-01 15:35  春风亭牛二哥  阅读(2627)  评论(0编辑  收藏  举报

导航