Linux服务器技术之NetworkManager

举报
tea_year 发表于 2025/08/29 19:41:53 2025/08/29
【摘要】 什么是NetworkManager和nmcliNetworkManager是一个用于简化网络管理的工具,支持有线、无线、移动宽带(3G/4G)、VPN等多种连接方式。nmcli是NetworkManager的命令行接口,允许用户在终端中管理和配置网络连接。一、基本命令1.显示设备状态用途:显示所有网络设备的当前状态,包括连接状态和设备类型。nmcli device status2.列出所有连...

什么是NetworkManager和nmcli

NetworkManager是一个用于简化网络管理的工具,支持有线、无线、移动宽带(3G/4G)、VPN等多种连接方式。nmcli是NetworkManager的命令行接口,允许用户在终端中管理和配置网络连接。

一、基本命令


1.显示设备状态
用途:显示所有网络设备的当前状态,包括连接状态和设备类型。

nmcli device status

2.列出所有连接
用途:显示所有网络连接的配置(无论是否已激活)。

nmcli connection show
NAME  UUID                                  TYPE      DEVICE 
eth0  781f1b69-6064-4678-9a8d-44d5ce0e5b01  ethernet  eth0   
eth1  9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04  ethernet  eth1  

3.显示活动连接
用途:显示当前已激活的网络连接。

nmcli connection show --active
NAME  UUID                                  TYPE      DEVICE 
eth0  781f1b69-6064-4678-9a8d-44d5ce0e5b01  ethernet  eth0   
eth1  9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04  ethernet  eth1   
tun0  9a3e06e7-0b33-4ec0-bb7c-138d6aa07d43  tun       tun0 

#启动加密隧道
[root@m01 ~]#systemctl status openvpn@server
● openvpn@server.service - OpenVPN Robust And Highly Flexible Tunneling Application On server
   Loaded: loaded (/usr/lib/systemd/system/openvpn@.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
[root@m01 ~]#systemctl start openvpn@server

TYPE 覆盖了有线、无线、虚拟网络、隧道等几乎所有常见网络场景,核心类型包括:wifi(无线)、bridge(网桥)、bond/team(网卡聚合)、vlan(虚拟局域网)、pppoe(拨号)等。可根据实际网络需求选择对应的类型配置。

4.禁用网络设备
用途:手动禁用特定网络设备。

[root@m01 ~]#nmcli device disconnect eth1
成功断开设备 'eth1'。
[root@m01 ~]#nmcli connection show -active
NAME  UUID                                  TYPE      DEVICE 
eth0  781f1b69-6064-4678-9a8d-44d5ce0e5b01  ethernet  eth0   
tun0  9a3e06e7-0b33-4ec0-bb7c-138d6aa07d43  tun       tun0 

5.启用网络设备
用途:手动连接特定网络设备。

[root@m01 ~]#nmcli device connect eth1
成功用 'eth1' 激活了设备 '9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04'。

[root@m01 ~]#nmcli connection show -active
NAME  UUID                                  TYPE      DEVICE 
eth0  781f1b69-6064-4678-9a8d-44d5ce0e5b01  ethernet  eth0   
eth1  9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04  ethernet  eth1   
tun0  9a3e06e7-0b33-4ec0-bb7c-138d6aa07d43  tun       tun0  

6.禁用网络管理
用途:禁用整个系统的网络管理。

nmcli networking off

#完毕后,FinalShell连接不上了,去虚拟机开启即可.

7.启用网络管理
用途:启用整个系统的网络管理。

nmcli networking on

二、连接管理


1.激活连接
用途:激活指定的网络连接。

nmcli connection up <连接名>

2.断开连接
用途:断开指定的网络连接。

nmcli connection down <连接名>

3.添加新的有线连接

用途:创建新的有线网络连接。


nmcli connection add type ethernet ifname <接口名> con-name <连接名>

pdsyw@pdsyw1024:~/Desktop$ nmcli connection add type ethernet ifname eno1 con-name 有线连接1

4.添加新的无线连接
用途:创建新的无线网络连接。

nmcli connection add type wifi ifname <接口名> con-name <连接名> ssid <SSID> -- wifi-sec.key-mgmt wpa-psk wifi-sec.psk

三、Wi-Fi 管理


1.扫描可用 Wi-Fi 网络
用途:扫描并列出周围可用的 Wi-Fi 网络。

nmcli device wifi list

2.连接到 Wi-Fi 网络
用途:连接到指定的 Wi-Fi 网络。

nmcli device wifi connect <SSID> password <密码>

3.显示当前 Wi-Fi 信号强度
用途:显示当前连接的 Wi-Fi 网络及其信号强度。

nmcli device wifi list | grep '*'

四、IP 配置

1.设置静态 IP 地址

用途:为指定连接配置静态 IP 地址。

nmcli connection modify <连接名> ipv4.addresses <IP地址>/<子网掩码>

nmcli connection modify <连接名> ipv4.gateway <网关地址>

nmcli connection modify <连接名> ipv4.dns <DNS服务器地址>

nmcli connection modify <连接名> ipv4.method manual


nmcli connection modify <连接名> ipv4.addresses <IP地址>/<子网掩码>
# 先断开 eth0 连接
nmcli connection down eth0

# 再重新激活 eth0 连接(加载新配置)
nmcli connection up eth0

2.设置静态 IP 地址
用途:为指定连接配置静态 IP 地址。

nmcli connection modify <连接名> ipv4.addresses <IP地址>/<子网掩码>   ipv4.gateway <网关地址>   ipv4.dns <DNS服务器地址>

3.设置动态 IP 地址(DHCP)
用途:将指定连接设置为通过 DHCP 自动获取 IP 地址。

nmcli connection modify <连接名> ipv4.method auto

2.显示设备的 IP 地址
用途:显示特定网络设备的 IP 配置和状态。

nmcli device show <设备名>

服务

#启动服务
systemctl start NetworkManager
# 开机启动服务
systemctl enable NetworkManager
#停止服务
systemctl stop NetworkManager

# 永久性停止服务
systemctl disable NetworkManager


注意事项

  1. 配置持久化:修改后自动保存,无需手动重启服务
  2. WiFi管理:需安装NetworkManager-wifi包
  3. 企业环境:支持与FreeIPA等目录服务集成
  4. 云环境:自动识别AWS/Azure等云平台网络配置
  5. 日志查看:journalctl -u NetworkManager      

五、服务冲突解决方案


5.1 典型冲突表现
IP地址配置被意外覆盖
网络接口频繁up/down
路由表被自动修改
DNS设置重置
服务启动顺序导致配置失效
5.2 彻底解决方案
方案一:完全使用NetworkManager

禁用传统network 
systemctl disable --now network 
yum remove network-scripts 
 
确保NetworkManager接管所有设备 

nmcli device set eth0 managed yes 



方案二:完全使用传统network

禁用NetworkManager 
systemctl disable --now NetworkManager 
 
安装传统network支持 

yum install network-scripts 


方案三:混合使用(不推荐)

明确设备管理权 
nmcli device set eth0 managed no 
 
在ifcfg文件中添加 

NM_CONTROLLED=no 

5.3 冲突排查流程
检查服务状态:systemctl status network NetworkManager
查看设备管理权:nmcli device show
检查配置覆盖:ls -l /etc/resolv.conf
分析日志:journalctl -u network -u NetworkManager --since "1 hour ago"
验证配置:nmcli connection show vs cat /etc/sysconfig/network-scripts/ifcfg-*
5.4 进一步说明network显示active (exited)

正常应是 active(running),但是显示exited网络却正常使用,我也没有找到具体原因,按照禁用NetworkManager这些方案或者重装network都没能解决,有知道的大佬求指点,不甚感激

总结

如何选择网络服务
选择network当管理不需要频繁变更的服务器,需要精确控制网络配置运行在无图形界面的环境使用较旧的自动化工具,选择NetworkManager当管理笔记本电脑或移动设备,需要管理多种网络连接(WiFi/VPN等)在云环境或容器平台运行需要与其他现代Linux工具集成无论选择哪种方案,建议在CentOS 8+环境中优先考虑NetworkManager,因为它是Red Hat官方推荐的未来方向,且能更好地支持现代网络功能。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。