目录
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
rhel8依然支持 network.service ,只是默认没安装, 可以通过 yum install network-scripts 来安装 传统的network.service ,不过 redhat 说了,在下一个 rhel 的大版本里将彻底废除,因此不建议使用network.service
NetworkManager是2004年Red Hat启动的项目,旨在能够让Linux用户更轻松地处理现代网络需求,尤其是无线网络,能自动发现网卡并配置ip地址
类似在手机上同时开启wifi和蜂窝网络,自动探测可用网络并连接,无需手动切换
译作设备,可理解为实际存在的网卡(包括物理网卡和虚拟网卡)。可以简写为nmcli d
[root@localhost ~]# nmcli
[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
[root@localhost ~]# nmcli c add type ethernet con-name ethX ifname ethX ipv4.method auto
[root@localhost ~]# nmcli c modify ethX ipv4.addr '192.168.149.200/24'
[root@localhost ~]# nmcli c up ethX
[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
[root@localhost ~]# nmcli c up ethX
[root@localhost ~]# nmcli c down
[root@localhost ~]# nmcli c delete ethX
[root@localhost ~]# nmcli c show
[root@localhost ~]# nmcli c show ethx
[root@localhost ~]# nmcli c reload
[root@localhost ~]# nmcli c load /etc/sysconfig/network-scripts/ifcfg-ethX
[root@localhost ~]# nmcli c load /etc/sysconfig/network-scripts/route-ethx
[root@localhost ~]# nmcli c up ethX
[root@localhost ~]# nmcli d reapply ethX
[root@localhost ~]# nmcli d connect ethX
[root@localhost ~]# nmcli d
[root@localhost ~]# nmcli d show
[root@localhost ~]# nmcli d show ethX
[root@localhost ~]# nmcli d connect ethX
[root@localhost ~]# nmcli r all off
[root@localhost ~]# nmcli n
[root@localhost ~]# nmcli n on
[root@localhost ~]# nmcli n off
[root@localhost ~]# nmcli m
[root@localhost ~]# nm-online
注意:
其中的ifcfg均指代/etc/sysconfig/network-scripts/ifcfg-ethX及/etc/sysconfig/network
scripts/route-ethX
解析
第一列 --- 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 modify修改con-name,只会对应修改ifcfg文件中的NAME,而不会更改ifcfg文件名
示例 --- 创建一个连接(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 d disconnect ethX