CentOS8网络管理
CentOS7同时支持network.service和NetworkManager.service。一般都会将NetworkManager禁用掉。通过network.service来管理网络
CentOS8上 必须开启NM,否则无法使用网络。默认没有安装network.service
1 NetworkManager使用方法
nmcli:命令行。这是最常用的工具,
nmtui:在shell终端开启文本图形界面。
Freedesktop applet:如GNOME上自带的网络管理工具
cockpit:redhat自带的基于web图形界面的"驾驶舱"工具,具有dashborad和基础管理功能。
2 连接connection和设备device
一个设备配置多个连接
每个连接有一个ifcfg配置文件
同一时刻,一个设备只能有一个连接活跃
3 操作
3.1 查看网卡连接信息
nmcli c show (可以简写为 nmcli c)
nmcli c show eth0
3.2 获取网卡设备列表
查看所有device详细信息
nmcli d show
查看指定device详细信息
nmcli d show eth0
device有4种常见状态:
▷ connected:已被NM纳管,并且当前有活跃的connection
▷ disconnected:已被NM纳管,但是当前没有活跃的connection
▷ unmanaged:未被NM纳管
▷ unavailable:不可用,NM无法纳管,通常出现于网卡link为down的时候
3.3 启用和停止网卡连接
相当于ifup ifdown
启用 nmcli c up eth0
停止 nmcli c down eth0
立即生效connection,有3种方法
nmcli c up eth0
nmcli d reapply eth0
nmcli d connect eth0
删除网卡连接
nmcli c delete eth0
重载所有、指定 ifcfg或route到connection(不会立即生效)
nmcli c reload
nmcli c load /etc/sysconfig/network-scripts/ifcfg-eth0
创建网络连接并配置静态IP地址(等同于配置ifcfg,其中BOOTPROTO=none,并ifup启动)
nmcli c add type ethernet con-name eth0 ifname eth0 ipv4.addr 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual
创建网络连接并配置动态IP地址(等同于配置ifcfg,其中BOOTPROTO=dhcp,并ifup启动)
nmcli c add type ethernet con-name eth0 ifname eth0 ipv4.method auto
修改IP地址(非交互式)
nmcli c modify eth0 ipv4.addr '192.168.0.200/24'
nmcli c up eth0
修改IP地址(交互式)
nmcli c edit eth0
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
关闭无线网络
nmcli r all off
查看NetworkManager状态
nmcli n
开启NetworkManager
nmcli n on
关闭NetworkManager
nmcli n off
监听事件
nmcli m
检测NetworkMarger是否在线可用
nm-online
例子:创建一个连接(connection)
nmcli c add type ethernet con-name eth0-test ifname eth0-test ipv4.addresses '192.168.1.100/24,192.168.1.101/32' ipv4.routes '10.0.0.0/8 192.168.1.10,192.168.0.0/16 192.168.1.11' ipv4.gateway 192.168.1.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.1.100/24,192.168.1.101/32’:配置2个ip地址,分别为192.168.1.100/24和192.168.1.101/32
▪ ipv4.gateway 192.168.1.254:网关为192.168.1.254
▪ ipv4.dns ‘8.8.8.8,4.4.4.4’:dns为8.8.8.8和4.4.4.4
▪ ipv4.method manual:配置静态IP
对应生成的网卡配置文件就是
[root@CentOS8 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0-test
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.1.100
PREFIX=24
IPADDR1=192.168.1.101
PREFIX1=32
GATEWAY=192.168.1.254
DNS1=8.8.8.8
DNS2=4.4.4.4
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=eth0-test
UUID=ced95bb1-d856-4ace-8f2e-79a3f2d572c6
DEVICE=eth0-test
ONBOOT=yes
通过该nmcli c 可以看到增加了一条连接
[root@CentOS8 ~]# nmcli c
NAME UUID TYPE DEVICE
eth0 6eebabfa-8f58-40af-b298-a385094b2f04 ethernet eth0
eth0-test ced95bb1-d856-4ace-8f2e-79a3f2d572c6 ethernet --
查看ip地址和NetworkManager状态
类似于ifconfig、ip addr
[root@CentOS8 ~]# nmcli
eth0: connected to eth0
"Intel 82545EM"
ethernet (e1000), 00:0C:29:B2:BE:2D, hw, mtu 1500
ip4 default
inet4 10.0.0.58/24
route4 0.0.0.0/0
route4 10.0.0.0/24
inet6 fe80::b05:e02d:a476:ce8e/64
route6 fe80::/64
route6 ff00::/8
lo: unmanaged
"lo"
loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
DNS configuration:
servers: 10.0.0.1
interface: eth0
Use "nmcli device show" to get complete information about known devices and
"nmcli connection show" to get an overview on active connection profiles.
Consult nmcli(1) and nmcli-examples(5) manual pages for complete usage details.