跳至正文

NetworkManager

概念

在NetworkManager里,有两个非常重要的概念。基本上,理清楚这两个概念对应的含义和区别,剩下的通过文档就可以非常容易的掌握NetworkManager的使用了。

第一个概念是device,也就是设备,怎么理解呢,一个设备对应一个网口,基本上ip link里看到的那些都有对应的设备,基本上可以认为就是物理的网卡,每个物理网卡都会是一个device,当然,有些虚拟的网卡,也会是一个device,比如网桥bridge等。当然也有些区别,物理网卡是现实存在的设备,本质上最终是NetworkManager来管理它,而虚拟机网卡就是NetworkManager因为连接需要而生成的网卡。使用nmcli device命令,可以看到当前NetworkManager所识别的设备,以及:

- 这个设备是否在NetworkManager的管理之下
- 设备所对应的连接配置信息
- 设备当前的连接配置

举个例子:

[root@localhost ~]# nmcli device
DEVICE  TYPE      STATE      CONNECTION
eth0    ethernet  connected  eth0
lo      loopback  unmanaged  --

可以很明确的看到我这台机器有两个设备,分别是eth0lo,其中eth0是以太网类型,被NetworkManager管理且对应的连接配置为eth0,而lo是loopback,目前不被NetworkManager所管理。在终端里执行,正常的设备会显示绿色,不正常的设备显示成红色,不被管理的显示为灰色,还是很清晰的。

另外一个概念是connection,也就是连接。怎么理解呢,连接就是一系列配置,比如IP地址获取方式是DHCP或者手动配置,如果是手动配置,则配置哪些IP地址,网关,DNS等等信息,这些配置非常的多,就不一一细说了,具体的看文档就好。

需要注意的是,连接是需要最终被apply到某个device上的,而且针对同一个device,可以有多个connection。但是,在任意时刻,有且只能有一个活动的connection被apply到一个device。有点绕,但是思考一下这个场景就很容易理解了:针对笔记本的无线网卡,在公司,连接的自然是公司的WIFI,这就需要一个connection,到了家里,又需要连接家里的WIFI,这就是另外一个connection,这俩都是针对同一个device的配置,也不会同时起作用。其实这个场景在服务器上不太常见,所以一般情况下,服务器上基本就可以配置成一个connection对应一个device就解决了。

弄明白这俩者之间的关系,很多东西就很顺畅了。

给网卡配置静态IP地址

NetworkManager使用nmcli这个命令来配置系统的网卡

可以通过nmcli connection show查看当前的链接

假设网卡是ens33,你要设置:

  • IP:192.168.1.100
  • 子网掩码:255.255.255.0
  • 网关:192.168.1.1
  • DNS:8.8.8.8
nmcli connection modify ens33 ipv4.addresses 192.168.1.100/24   #地址和子网掩码
nmcli connection modify ens33 ipv4.gateway 192.168.1.1  #网关
nmcli connection modify ens33 ipv4.dns "8.8.8.8 114.114.114.114"   #  DNS服务器
nmcli connection modify ens33 ipv4.method manual    #  静态IP模式
nmcli connection modify ens33 connection.autoconnect yes  #自动启动连接网卡

如果觉得以上太复杂,可以用一条命令完成

nmcli con mod ens33 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8 ipv4.method manual
nmcli con up ens33

重启网卡

nmcli connection down ens33   #停用网卡
nmcli connection up ens33  #  启用网卡
nmcli connection modify ens33 connection.autoconnect yes   # 设置开机自启

恢复 DHCP自动获取IP

nmcli connection modify ens33 ipv4.method auto
nmcli connection up ens33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注