NetworkManager的前世今生

目录

一、NetworkManager的概述

二、NetworkManager的发展历史

三、NetworkManager的特性和功能:

四、NetworkManager的常用命令

五、nmcli

六、未来发展趋势

一、NetworkManager的概述

       NetworkManager是一个在Linux和Unix-like操作系统中管理网络连接的系统守护进程和用户控制工具。它提供了一种统一的方式来管理以太网、Wi-Fi、移动蜂窝网络等多种类型的网络连接。通过NetworkManager,用户可以方便地管理网络配置、连接和断开网络、监控网络状态以及执行网络相关的操作。它还支持自动连接到已知的网络、VPN、IPv6和IPv4配置等功能,使网络管理变得更加简单和高效。

二、NetworkManager的发展历史

       NetworkManager项目始于2004年,由Red Hat的工程师罗伯特·洛夫(Robert Love)和丹·威廉姆斯(Dan Williams)共同发起。开发的初衷是为了在Linux系统上提供更易于管理的网络连接,让用户在不同网络环境下能够快速切换和自动配置网络。

主要的版本发布历史如下:

  • 2004年:NetworkManager首次推出,为用户提供了基本的网络连接管理功能。

  • 2006年:发布了1.0版本,增加了许多新功能,包括支持多种网络类型、VPN、IPv6等。

  • 2010年:推出了0.8系列版本,改进了Wi-Fi和移动网络支持。

  • 2013年:发布了0.9.8版本,引入了更好的IPv6支持、改进的Wi-Fi功能和改进的用户界面。

  • 2015年:发布了1.0版本,这是一个重要的里程碑版本,标志着项目的成熟。该版本包括了许多新的特性和改进,例如支持更多的网络接口类型、增强的安全性和稳定性。

  • 之后的版本:随着时间的推移,NetworkManager继续发展,引入了对更多网络技术的支持、改进的用户界面以及各种性能和稳定性改进。

NetworkManager目前是Linux系统中流行的网络管理工具之一,并在许多Linux发行版中作为默认的网络管理工具。

三、NetworkManager的特性和功能

NetworkManager具有许多特性和功能,其中一些主要的包括:

  1. 多种网络类型支持: 支持以太网、Wi-Fi、蓝牙、移动蜂窝网络等多种类型的网络连接。

  2. 统一的管理界面: 提供了一个统一的管理界面,使用户可以方便地管理所有类型的网络连接。

  3. 自动连接: 能够自动连接到已知的网络,避免了手动配置网络连接的麻烦。

  4. VPN支持: 支持配置和管理虚拟专用网络(VPN)连接,包括OpenVPN、IPsec等多种VPN协议。

  5. IPv6和IPv4支持: 支持IPv6和IPv4协议,能够进行相应的配置和管理。

  6. 无线网络管理: 提供了丰富的Wi-Fi管理功能,包括扫描可用网络、连接到指定网络、自动选择最佳网络等。

  7. 移动网络支持: 支持移动蜂窝网络(如4G、5G),能够管理移动数据连接。

  8. 网络状态监控: 能够实时监控网络连接的状态,包括连接的稳定性、速度等信息。

  9. 命令行和图形界面工具: 提供了命令行和图形界面工具,方便用户进行网络配置和管理操作。

  10. 可扩展性: 支持插件和扩展,可以通过插件添加额外的功能和支持新的网络类型。

四、NetworkManager的常用命令

  • 启动服务
systemctl start NetworkManager
  • 关闭服务
systemctl stop NetworkManager
  • 查看服务状态
systemctl status NetworkManager
  • 设置服务开机自启动
systemctl enable NetworkManager  #下次开机生效
systemctl enable NetworkManager --now  #立即生效
  • 关闭服务开机自启动 
systmctl disable NetworkManager

五、nmcli

nmcli 是软件 NetworkManager 的提供的命令。使用 nmcli 命令时,必须确保 NetworkManager 为运行状态(nm 代表 NetworkManager,cli 代表 Command-Line)

语法格式

1.nmcli [OPTIONS...] { help | general | networking | radio | connection | device | agent | monitor } [COMMAND] [ARGUMENTS...]
2.上面的语法就是: nmcli [选项...] 对象 [命令] [参数...]
3.对象 =  help | general | networking | radio | connection | device | agent | monitor

常见参数: 

-a | --ask  提示输入缺少的参数,而不是报错。例如连接wifi的时候,没有提供password参数,那么如果有-a选项就会提示输入密码
-p | --pretty 显示的时候会更加易于人类阅读,尤其是多行显示的时候,可以分块显示
-m | --mode { tabular | multiline }  tabular显示的时候是表格式(有表头)的,不易阅,multiline是多行类似key:value形式。如果省略,大多数命令默认使用tabular。 nmcli connection show ID和nmcli device show这两命令因为结构化信息不好单行显示,如果省略,默认使用multiline
-f | --fields { field1,field2... | all | common }  默认使用common(命令公共字段)。也可以指定特定字段,比如nmcli -f GENERAL.DEVICE,IP4.ADDRESS device show 显示网卡名和ip地址(善用tab补全)。查看可用字段的方法:1-通过对应对象的show来找到字段.对于connection对象,可以使用man 5 nm-settings查看, 或者输入错误字段,让报错来提示可字段,比如输入nmcli -f xxx connection show myAP 就会报错,提示可用字段

connection对象(连接的配置)

NetworkManager会把网络配置保存为connections配置信息,比如保存二层网络信息,ip信息等。NetworkManger会根据这些信息知道怎么去连接一个网络。在一个特定设备,可以有多个连接配置(比如一个是dhcp的,一个是静态ip地址的),但是只有一个配置是“活动“的配置。connection对象就是用来管理这些连接配置的。

nmcli connection { show | up | down | modify | add | edit | clone | delete | monitor | reload | load | import | export } [ARGUMENTS...]

1.激活与禁用连接 

nmcli connection up 连接名

反之,要禁用某连接,可执行以下命令使之失效 

nmcli connection down 连接名

同一时间只能有一个连接绑定在一个网络接口上。可以多创建几个连接,以便设置几套配置文件,需要时可以进行临时切换。

2.删除连接

nmcli connection delete 连接名

3.修改连接

modify [--temporary] [ id | uuid | path ] ID { option value | [+|-]setting.property value } ...

 --temporary 表示临时修改,不会保存下来。连接可以由其名称、UUID或D-Bus 路径来标识,如果ID含义不明确,可以考虑使用id、uuid或path。属性设置同上述连接创建。

 下面给出几个例子。修改连接的IP地址:

nmcli connection modify NET01 ipv4.addr 192.168.1.20/24

 为连接增加一个IP地址:

nmcli connection modify NET01 +ipv4.addresses 172.10.10.100/16

 为连接配置网关:

nmcli connection modify NET01 ipv4.gateway 192.168.1.1

 关闭开机自动连接:

nmcli connection modify NET01 connection.autoconnect no

 为连接配置自动获取IP地址:

nmcli connection modify NET01 ipv4.method auto

修改连接配置后,可以选择重启网络服务使之生效:

systemctl restart network

也可以重新加载配置使之生效:

nmcli connection reload

六、未来发展趋势

未来,随着物联网(IoT)和边缘计算的快速发展,以及5G网络的普及,可以预见NetworkManager在以下方面可能会有进一步的发展:

  1. 更好的IoT支持: 随着物联网设备数量的增加,NetworkManager可能会加强对各种物联网设备的支持,包括智能家居设备、传感器等,以便更好地管理和连接这些设备。

  2. 更智能的自动连接: 随着人工智能和机器学习技术的发展,NetworkManager可能会借助这些技术来改进自动连接功能,使其更加智能和自适应,能够更准确地选择最佳网络连接。

  3. 更强大的安全功能: 随着网络安全威胁的增加,NetworkManager可能会加强对网络安全的支持,包括更强大的加密和认证功能,以及对网络攻击的实时监测和防御能力。

  4. 更灵活的配置选项: 随着网络技术的不断发展,可能会出现新的网络配置需求和标准,NetworkManager可能会提供更灵活的配置选项,以满足不同用户的需求。

  5. 更好的云集成: 随着云计算的普及,NetworkManager可能会加强与云服务的集成,使用户可以更方便地管理和监控云端网络资源。

总体而言,随着网络技术的不断进步和用户需求的不断变化,NetworkManager有望在未来发展出更多新的功能和特性,以适应不断变化的网络管理环境。

  • 34
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值