目录
Linux之管理联网
rhel8与7的区别
NetworkManager
定义
NM能管理各种网络
使用方法
使用NM的原因
nmcli使用方法
nmcli的两个常用命令
nmcli connection
定义
两种状态
nmcli device
定义
四种状态
nmcli常用命令
查看ip(类似于ifconfig、ip addr)
创建connection,配置静态ip(等同于配置ifcfg,其中BOOTPROTO=none,并ifup启动)
创建connection,配置动态ip(等同于配置ifcfg,其中BOOTPROTO=dhcp,并ifup启动)
修改ip(非交互式)
修改ip(交互式)
启用connection(相当于ifup)
停止connection(相当于ifdown)
删除connection(类似于ifdown并删除ifcfg)
编辑
查看connection列表
查看connection详细信息
重载所有ifcfg或route到connection(不会立即生效)
重载指定ifcfg或route到connection(不会立即生效)
立即生效connection,有3种方法
查看device列表
查看所有device详细信息
查看device详细信息
激活网卡
关闭无线网络(NM默认启用无线网络)
查看NM纳管状态
开启NM纳管
关闭NM纳管(谨慎执行)
监听事件
检测NM是否在线可用
nmcli connection重点
nmcli c show
nmcli c的con-name
nmcli c的ipv4.method
nmcli device重点
nmcli d connect ethX
nmcli d reapply ethX
nmcli d set ethX autoconnect yes|no managed yes|no
Linux之管理联网
rhel8与7的区别
rhel8依然支持 network.service ,只是默认没安装, 可以通过 yum install network-scripts 来安装 传统的network.service ,不过 redhat 说了,在下一个 rhel 的大版本里将彻底废除,因此不建议使用network.service
NetworkManager
定义
NetworkManager是2004年Red Hat启动的项目,旨在能够让Linux用户更轻松地处理现代网络需求,尤其是无线网络,能自动发现网卡并配置ip地址
类似在手机上同时开启wifi和蜂窝网络,自动探测可用网络并连接,无需手动切换
NM能管理各种网络
- 有线网卡、无线网卡
- 动态ip、静态ip
- 以太网、非以太网
- 物理网卡、虚拟网卡
使用方法
- nmcli --- 命令行
- nmtui --- 在shell终端开启文本图形界面
- Freedesktop applet ---如GNOME上自带的网络管理工具
- cockpit --- redhat自带的基于web图形界面的"驾驶舱"工具,具有dashborad和基础管理功能
使用NM的原因
- 工具齐全 --- 命令行、文本界面、图形界面、web
- 广纳天地 --- 纳管各种网络,有线、无线、物理、虚拟
- 参数丰富 --- 多达200多项配置参数(包括ethtool参数)
- 一统江湖 --- RedHat系、Suse系、Debian/Ubuntu系,均支持
- 大势所趋 --- 下一个大版本的rhel只能通过NM管理网络
nmcli使用方法
nmcli的两个常用命令
nmcli connection
定义
两种状态
- 活跃(带颜色字体)--- 表示当前该connection生效
- 非活跃(正常字体)--- 表示当前该connection不生效
nmcli device
定义
译作设备,可理解为实际存在的网卡(包括物理网卡和虚拟网卡)。可以简写为nmcli d
四种状态
- connected ---已被NM纳管,并且当前有活跃的connection
- disconnected --- 已被NM纳管,但是当前没有活跃的connection
- unmanaged --- 未被NM纳管
- unavailable --- 不可用,NM无法纳管,通常出现于网卡link为down的时候(比如ip link set ethX down)
nmcli常用命令
查看ip(类似于ifconfig、ip addr)
[root@localhost ~]# nmcli
创建connection,配置静态ip(等同于配置ifcfg,其中BOOTPROTO=none,并ifup启动)
[root@localhost ~]# nmcli c add type ethernet con-name ethX ifname ethX ipv4.addr 192.168.149.100/24 ipv4.gateway 192.168.149.1 ipv4.method manual
创建connection,配置动态ip(等同于配置ifcfg,其中BOOTPROTO=dhcp,并ifup启动)
[root@localhost ~]# nmcli c add type ethernet con-name ethX ifname ethX ipv4.method auto
修改ip(非交互式)
[root@localhost ~]# nmcli c modify ethX ipv4.addr '192.168.149.200/24'
[root@localhost ~]# nmcli c up ethX
修改ip(交互式)
[root@localhost ~]# nmcli c edit ethX
nmcli> goto ipv4.addresses
nmcli ipv4.addresses> change
Edit 'addresses' value: 192.168.1.200/24
Do you also want to set 'ipv4.method' to 'manual'? [yes]: yes
nmcli ipv4> save
nmcli ipv4> activate
nmcli ipv4> quit
启用connection(相当于ifup)
[root@localhost ~]# nmcli c up ethX
停止connection(相当于ifdown)
[root@localhost ~]# nmcli c down
删除connection(类似于ifdown并删除ifcfg)
[root@localhost ~]# nmcli c delete ethX
查看connection列表
[root@localhost ~]# nmcli c show
查看connection详细信息
[root@localhost ~]# nmcli c show ethx
重载所有ifcfg或route到connection(不会立即生效)
[root@localhost ~]# nmcli c reload
重载指定ifcfg或route到connection(不会立即生效)
[root@localhost ~]# nmcli c load /etc/sysconfig/network-scripts/ifcfg-ethX
[root@localhost ~]# nmcli c load /etc/sysconfig/network-scripts/route-ethx
立即生效connection,有3种方法
[root@localhost ~]# nmcli c up ethX
[root@localhost ~]# nmcli d reapply ethX
[root@localhost ~]# nmcli d connect ethX
查看device列表
[root@localhost ~]# nmcli d
查看所有device详细信息
[root@localhost ~]# nmcli d show
查看device详细信息
[root@localhost ~]# nmcli d show ethX
激活网卡
[root@localhost ~]# nmcli d connect ethX
关闭无线网络(NM默认启用无线网络)
[root@localhost ~]# nmcli r all off
查看NM纳管状态
[root@localhost ~]# nmcli n
开启NM纳管
[root@localhost ~]# nmcli n on
关闭NM纳管(谨慎执行)
[root@localhost ~]# nmcli n off
监听事件
[root@localhost ~]# nmcli m
检测NM是否在线可用
[root@localhost ~]# nm-online
注意:
其中的ifcfg均指代/etc/sysconfig/network-scripts/ifcfg-ethX及/etc/sysconfig/network
scripts/route-ethX
nmcli connection重点
nmcli c show
解析
第一列 --- NAME ---- connection名字,简称con-name(注意con-name不是网卡名)
第二列 --- UID ---- connection的UUID
第三列 --- DEVICE ---- 网卡名(标准说法叫device名),可通过nmcil d查看device
[root@localhost ~]nmcli c show ethX
[root@localhost ~]nmcli c show cae3f1ef-e79a-46c3-8e0c-946b91a65e11
[root@localhost ~]nmcli c show /etc/sysconfig/network-scripts/ifcfg-ethX
nmcli c的con-name
注意:通过nmcli c modify修改con-name,只会对应修改ifcfg文件中的NAME,而不会更改ifcfg文件名
nmcli c的ipv4.method
示例 --- 创建一个连接(connection)
[root@localhost ~]# nmcli c add type ethernet con-name ethX-test ifname ethX ipv4.addresses '192.168.149.100/24,192.168.149.101/32' ipv4.routes '10.0.0.0/8 192.168.149.10,192.168.0.0/16 192.168.149.11' ipv4.gateway 192.168.149.254 ipv4.dns '8.8.8.8,4.4.4.4' ipv4.method manual
解析:
type ethernet --- 创建连接时候必须指定类型,类型有很多,可以通过 nmcli c add type -h 看到,这里指定为ethernet
con-name ethX ifname ethX --- 第一个 ethX 表示连接(connection)的名字 ,这个名字可以任意定义,无需和网卡名相同;第二个ethX 表示网卡名 ,这个 ethX 必须是在 nmcli d 里能看到的ipv4.addresses '192.168.149.100/24,192.168.149.101/32' --- 配置 2 个 ip 地址,分别为 192.168.149.100/24 和192.168.149.101/32ipv4.gateway 192.168.149.254 --- 网关为 192.168.149.254ipv4.dns '8.8.8.8,4.4.4.4' --- dns 为 8.8.8.8 和 4.4.4.4ipv4.method manual --- 配置静态 IP
对应的ifcfg和dns就是
注意:
如果这是为ethX创建的第一个连接,则自动生效;如果此时已有连接存在,则该连接不会自动生效,可以执行 nmcli c up ethX-test 来切换生效
nmcli device重点
nmcli d connect ethX
nmcli d disconnect ethX
nmcli d reapply ethX
nmcli d set ethX autoconnect yes|no managed yes|no