文章目录
NetworkManager
NetworkManager
简称 NM
,能够让Linux用户更轻松地处理现代网络需求,
尤其是无线网络,能自动发现网卡并配置ip地址。
NM能管理各种网络
有线网卡、无线网卡
动态ip、静态ip
以太网、非以太网
物理网卡、虚拟网卡
NM的优势:
工具齐全:命令行、文本界面、图形界面、web
广纳天地:纳管各种网络,有线、无线、物理、虚拟
参数丰富:多达200多项配置参数(包括ethtool参数)
一统江湖:RedHat系、Suse系、Debian/Ubuntu系,均支持
大势所趋:下一个大版本的rhel只能通过NM管理网络
nmcli示例
nmcli
类似linux ip
命令、cisco
交换机命令
nmcli connection
连接的意思,可简写为nmcli c
相当于ifcfg-ethX
nmcli device
设备的意思,可简写为nmcli d
为实际存在的网卡
连接和设备是多对一的关系,想给某个网卡配IP,首先要用 NM 纳管这个网卡,可先用nmcli d
命令查看存在的网卡,可以用nmcli c
命令查看网卡的连接,每个连接可以理解为一个if-cfg
配置文件,同一时刻,一个设备只能有一个链接活跃。可以通过nmcli c up
切换链接
connection的状态
活跃(带颜色字体):当前的连接生效
非活跃(正常字体):当前连接不生效
device的状态
connected:已被管纳,且有活跃的connection
disconnected:已被管纳,但无活跃的connection
unmanaged:未被管纳
unavailable:不可用,NM无法管纳(ip link set down
)
# 查看ip(类似于ifconfig、ip addr)
nmcli
# 创建connection,配置静态ip(等同于配置ifcfg,其中BOOTPROTO=dhcp,并ifup启动)
nmcli c add type enthernet con-name ethX ifname ethX ipv4.addr 192.168.0.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual
# 创建connection,配置动态ip(等同于ifcfg,其中BOOTPROTO=dhcp,并ifup启动)
nmcli c add type enthernet con-name ethX ifname ethX ipv4.method auto
# 修改ip(交互式)
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]: yesnmcli ipv4> save
nmcli ipv4> activate
nmcli ipv4> quit
# 修改ip(非交互式)
nmcli c modify ethX ipv4.addr '192.168.1.179/24'
nmcli c up ethX
# 启用connection(相当于ifup)
nmcli c up ethX
# 停用connection(相当于ifdown)
nmcli c down
# 删除connection(相当于ifdown并删除ifcfg)
nmcli c delete ethX
# 查看connection列表
nmcli c show
# 查看connection详细信息
nmcli c show ethX
# 重载所有ifcfg或route到connection(不会立即生效)
nmcli c reload
# 重载指定ifcfg或route到connection(不会立即生效)
nmcli c load /etc/sysconfig/network-scripts/ifcfg-ethX
nmcli c load /etc/sysconfig/network-scripts/route-ethX
# 立即生效*3
# 1.
nmcli c up ethX
# 2.
nmcli d reapply ethX
# 3.
nmcli d connect ethX
# 查看device列表
nmcli d
# 查看device详细信息
nmcli d show
# 查看device指定的详细信息
nmcli d show ethX
# 激活网卡
nmcli d connect ethX
# 关闭无线网络(NM默认启用无线网络)
nmcli r all off
# 查看NM接管状态
nmcli n
# 开启NM接管
nmcli n on
nmcli connection详解
nmcli c show
- 第一列为
connection
的名字,简称con-name
- 第二列为
connection
的UUID - 最后一列为
device
名(网卡名),可通过nmcli d
查看
对connection做操作时需要指定标识,标识可以是con-name
、UUID
、如果存在ifcfg文件则也可以用ifcfg的完整路径
,即/etc/sysconfig/network-scripts/ifcfg-ethX
nmcli c 的 con-name
同时对应ifcfg
的文件名以及内容中的NAME=
,该参数表示连接的名字,无需和网卡名相同,可为一个设备创建多个连接,但同一时刻只能有一个活跃。可用nmcli c delete
删除当前的连接;通过nmcli c up
来切换;通过nmcli c modify
修改ifcfg
文件中的NAME
nmcli c 的 ipv4.method
对应ifcfg
文件内容的BOOTPROTO
,ipv4.method
默认为auto
,对应为BOOTPROTO=dhcp
,这种时候如果指定ip,可能导致网卡同时有dhcp分配的ip和静态ip。设置为manual
表示BOOTPROTO=none
,即只有静态ip
nmcli device 重点
nmcli d connect ethX
由NM对指定网卡进行管理,同时刷新该网卡对应的活跃connection,如果有connection均处于非活跃状态,则会自动选择一个并将其活跃(如果没有会自动生成)
nmcli d disconnect ethX
让NM暂时不管理指定网卡,此操作不会变更实际网卡的link
状态,只会使对应的connection
变成非活跃,若重启又会自动connect
nmcli d reapply ethX
专门用于刷新connection
,前提是网卡的device
处于connected
状态
网络接口
网络接口指网络中的计算机或网络设备与其他设备实现通讯的进出口
网络接口的名称的前两个字符为网络类型符号:
en 表示以太网(enthernet)
wl 表示无线局域网(wlan)
ww 表示无线广域网(wwan)
以下的字符根据设备类型或位置选择:
o 表示内置(onboard)于主板上的集成设备及索引号
s 表示插在可以热拔插的插槽上的独立设备及索引号
x 表示基于MAC地址命名的设备
p 表示PCI插槽的物理位置及编号
手工配置
nmtui
nmcli c reload
nmcli c up ens160
使用nmcli配置
nmcli c abc ens160 ipv4.method manual ipv4.addresses 192.168.0.179/24 ipv4.gateway 192.168.0.1 ipv4.dns 8.8.8.8 autoconnect yes
nmcli c reload
nmcli c up end160
直接修改配置文件
[root@kongd ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.150.200
PREFIX=24
GATEWAY=192.168.150.2
DNS1=223.5.5.5
[root@kongd ~]# nmcli c reload
[root@kongd ~]# nmcli c up ens160