Linux NetworkManager:网络连接的瑞士军刀

admin 2024年11月13日17:54:32评论12 views字数 3492阅读11分38秒阅读模式
01

· 引言 ·

Linux NetworkManager:网络连接的瑞士军刀
NetworkManager是Linux系统中一个功能强大的网络连接管理工具,它为用户提供了全面、便捷且可靠的网络配置和连接管理能力。随着计算机网络技术的飞速发展,传统的网络配置方法,如手动编辑配置文件或使用命令行工具,已经无法满足现代用户对于网络连接的便捷性和可靠性的需求。NetworkManager的应运而生,成为Linux系统中不可或缺的一部分。

NetworkManager能够自动检测并管理系统中可用的网络连接,包括有线网络、无线网络(Wi-Fi)、蓝牙网络等。除了自动连接管理外,NetworkManager还支持多种网络类型的配置,如以太网、Wi-Fi、VPN等。用户可以通过图形化界面或命令行工具轻松配置各种网络参数,如IP地址、子网掩码、DNS服务器等。这种灵活性使得NetworkManager能够适应各种复杂的网络环境,满足用户的不同需求。

02

· NetworkManager网络连接管理工具 ·

Linux NetworkManager:网络连接的瑞士军刀
NetworkManager为用户提供简单的连接设置:NetworkManager通过不同的工具( GUI、nmtuinmcli

、d_bus_API)提供管理。

nmcli:命令行工具可让用户和脚本与 NetworkManager 交互。请注意,nmcli 可以在没有 GUI 的系统上使用,如服务器来控制 NetworkManager 的所有方面。它的功能与 GUI 工具相同。

nmtuiNetworkManager基于文本界面的图形界面(TUI)、通过键盘操作,无需鼠标。

GUI(control-center,nm-connection-editor):GNOME Shell 提供的图形用户界面工具,可供桌面用户使用。它整合了网络设置工具。

d_bus_API:方便应用程序进行二次开发管理。

03

· NetworkManager原理及组成 ·

Linux NetworkManager:网络连接的瑞士军刀
NetworkNanager 有两个组件:

  • NetworkManager daemon, 管理连接和监听并报告网络变化
  • 用户界面管理工具, (GUI、nmtui、nmcli、d_bus_API)

NetworkManager daemon 依赖于 D-Bus, 实现了管理连接的接口,底层使用 netlink 跟 linux 内核交互,获得设备信息,配置连接(比如修改 ipv4 的地址等)。nmcli 跟 D-Bus 交互连接 NetworkManager daemon,获得信息以及配置网络。

D-Bus (“ Desktop Bus ”的缩写)是一种面向消息的中间件机制,允许在同一台机器上并发运行的多个进程之间进行通信。D-Bus 是作为freedesktop.org项目的一部分而开发的,该项目由GNOME开发人员Havoc Pennington发起,旨在标准化Linux 桌面环境(例如GNOME和KDE)提供的服务。

freedesktop.org 项目还开发了一个名为 libdbus 的免费开源软件库,作为该规范的参考实现。该库不应与 D-Bus 本身混淆,因为 D-Bus 规范的其他实现也存在,例如 GDBus (GNOME)、QtDBus ( Qt /KDE)、dbus-java 和 sd-bus (systemd的一部分)。

Linux NetworkManager:网络连接的瑞士军刀
04

· NetworkManager软件包及结构 ·

Linux NetworkManager:网络连接的瑞士军刀
Networkmanager由多个软件包组成,主要软件包为NetworkManager,NetworkManager-tui、NetworkManager-config-server、NetworkManager-team,系统默认安装,其它为功能增强包,对于有特别需要的可以手动安装,如下:

NetworkManager.x86_64

默认安装

NetworkManager-adsl.x86_64

adsl支持

NetworkManager-bluetooth.x86_64

bluetooth支持

NetworkManager-config-server.x86_64

默认安装,配置文件自定义功能

NetworkManager-config-server.noarch

默认安装,配置文件自定义功能

NetworkManager-glib.x86_64

系统接口

NetworkManager-libnm.x86_64

应用接口

NetworkManager-libreswan.x86_64

vpn支持

NetworkManager-libreswan-gnome.x86_64

基于gnome的图形界面VPN支持

NetworkManager-ppp.x86_64

ppp支持

NetworkManager-team.x86_64

team支持

NetworkManager-tui.x86_64

nmtui支持

NetworkManager-wifi.x86_64

wifi支持

NetworkManager-wwan.x86_64

wwan支持

05

· NetworkManager主软件包目录功能 ·

Linux NetworkManager:网络连接的瑞士军刀
  • 接口相关配置

    /etc/sysconfig/network-scripts/

  • VPN、移动宽带和PPPoE连接的信息

    /etc/NetworkManager/system-connections/

  • NetworkManager服务本身配置文件

    /etc/NetworkManager/NetworkManager.conf

针对于/etc/NetworkManager/

NetworkManager.conf的自定义配置,可以在/etc/NetworkManager/conf.d文件夹内新增或修改自定义配置文件。

06

· NetworkManager使用场景 ·

Linux NetworkManager:网络连接的瑞士军刀
手动配置ifcfg-*文件

当手动配置/etc/sysconfig/network-scripts/目录下的ifcfg开头的文件时,无论是添加配置还是修改配置,NetworkManager都不会自动识别修改后的配置,需要使用如下命令使NetworkManager识别,任选其一即可:

nmcli connection reload     #全局生效nmcli con load /etc/sysconfig/network-scripts/ifcfg-[ifname]     针对指定接口生效
通过nmcli命令配置

通过nmcli配置IP、路由等配置后无需进行重载,up一下网络接口即可使生效,命令如下:

nmcli connection up [eth0 filename help id path uuid]     #[]内的任选其一即可
[]内的信息可以通过如下命令获取

nmcli con show
07

· nmcli常用配置示例 ·

Linux NetworkManager:网络连接的瑞士军刀
以下配置命令[]内的内容需要自行替换,配置变更改后使用nmcli con up [ifname]生效。

增加接口并配置IP地址

nmcli con add con-name [cust-name] ifname [interface-name] ipv4.addresses [xxx.xxx.xxx.xxx/xx] ipv4.gateway [xxx.xxx.xxx.xxx] autoconnect yes
修改IP地址

nmcli con modify con-name [con-name] ifname [interface-name] ipv4.addresses [xxx.xxx.xxx.xxx/xx] ipv4.gateway [xxx.xxx.xxx.xxx] autoconnect yes
配置bond

nmcli con add type bond ifname [bond--name] mode [active-backup]nmcli con add type ethernet ifname [interface-name] master mybond0nmcli con add type ethernet ifname [interface-name]  master mybond0
添加路由

nmcli connection modify ifname +ipv4.routes [dest/netmask] gateway
删除路由

nmcli connection modify ifname +ipv4.routes [dest/netmask] gateway
Linux NetworkManager是一个强大的网络管理工具,它通过提供一个统一的接口和自动管理功能,大大简化了网络设备的配置和监控。随着Linux在各个领域的广泛应用,NetworkManager将继续扮演着重要的角色,为Linux系统提供稳定和可靠的网络连接支持。

Linux NetworkManager:网络连接的瑞士军刀
Linux NetworkManager:网络连接的瑞士军刀
文章作者 | 闫千

原文始发于微信公众号(EBCloud):Linux NetworkManager:网络连接的瑞士军刀

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月13日17:54:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux NetworkManager:网络连接的瑞士军刀https://cn-sec.com/archives/3392110.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息