Linux服务器技术之NetworkManager
什么是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
注意事项
- 配置持久化:修改后自动保存,无需手动重启服务
- WiFi管理:需安装NetworkManager-wifi包
- 企业环境:支持与FreeIPA等目录服务集成
- 云环境:自动识别AWS/Azure等云平台网络配置
- 日志查看:
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官方推荐的未来方向,且能更好地支持现代网络功能。
- 点赞
- 收藏
- 关注作者
评论(0)