目录
在 Red Hat Enterprise Linux 7 中,默认网络服务由 NetworkManager 提供,后者是一个动态网络控制和配置守护进程,在网络设备和连接可用时保持启动和激活。传统的 ifcfg 类型配置文件仍受支持。
总之大多数Linux现在都在使用NetworkManager的nmcli命令来管理网络了。
使用 NetworkManager 的好处
使用 NetworkManager 的主要优点是:
-
更轻松地进行网络配置: NetworkManager 确保网络连接正常工作。当发现系统中没有网络配置但存在网络设备时,NetworkManager 会创建临时连接以提供连接。
-
提供与用户的简单连接设置:NetworkManager 通过不同的工具(GUI、nmtui、nmcli - )提供管理。
-
支持配置灵活性。例如:配置 WiFi 接口,NetworkManager 会扫描并显示可用的 wifi 网络。您可以选择一个接口,NetworkManager 会显示在重启过程后提供自动连接所需的凭证。NetworkManager 可以配置网络别名、IP 地址、静态路由、DNS 信息和 VPN 连接,以及许多特定于连接的参数。您可以修改配置选项以反应您的需要。
-
通过 D-Bus 提供 API,允许应用程序查询和控制网络配置和状态。这样,应用程序可以通过 D-BUS 检查或配置网络。例如,通过
Web
浏览器监控和配置服务器的 Web 控制台界面使用 NetworkManager D-BUS 接口来配置网络。 -
重启过程后保持设备状态,并接管在重启过程中将其设定为受管模式的接口。
-
处理没有被显式设置但由用户或者其他网络设备手动控制的设备。
NetworkManager 工具
NetworkManager 工具和应用程序概述
应用程序或工具 | 描述 |
---|---|
nmcli | 命令行工具可让用户和脚本与 NetworkManager 交互。请注意,nmcli 可以在没有 GUI 的系统上使用,如服务器来控制 NetworkManager 的所有方面。它的功能与 GUI 工具相同。 |
nmtui | NetworkManager的基于 curses 的简单文本用户界面(TUI) |
nm-connection-editor | 控制中心实用程序尚未处理的特定任务 (如配置绑定和成组连接)的图形用户界面工具。您可以添加、删除和修改 NetworkManager 存储的网络连接。要启动它,在终端中输入 nm-connection-editor : ~]$ nm-connection-editor |
control-center | GNOME Shell 提供的图形用户界面工具,可供桌面用户使用。它整合了网络设置工具。要启动它,请按 Super 键进入 Activities Overview,键入 Network,然后按 Enter 键。此时会出现网络设置工具。 |
网络连接图标 | GNOME Shell 提供的图形用户界面工具代表网络连接状态,如 NetworkManager 报告。该图标有多种状态,充当您当前使用的连接类型的可视化指示。 |
配置IP网络
nmcli 命令的基本格式如下:
nmcli [OPTIONS] OBJECT { COMMAND | help }
其中 OBJECT 可以是以下选项之一: 一般
、联网
、无线
、连接
、设备
、代理
和监控
器。您可以在命令中使用这些选项的任何前缀。例如,nmcli con help、nmcli c help 和nmcli 连接帮助生成相同的输出。
以用户友善模式查看输出
nmcli -p device
=====================
Status of devices
=====================
DEVICE TYPE STATE CONNECTION
--------------------------------------------------------------
ens3 ethernet connected Profile 1
lo loopback unmanaged --
检查 NetworkManager 的整体状态
~]$ nmcli general status
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabled
查看所有连接
~]$ nmcli connection show
NAME UUID TYPE DEVICE
Profile 1 db1060e9-c164-476f-b2b5-caec62dc1b05 ethernet ens3
ens3 aaf6eb56-73e5-4746-9037-eed42caa8a65 ethernet --
仅查看当前活跃的连接
~]$ nmcli connection show --active
NAME UUID TYPE DEVICE
Profile 1 db1060e9-c164-476f-b2b5-caec62dc1b05 ethernet ens3
仅查看 NetworkManager 识别的设备及其状态
~]$ nmcli device status
DEVICE TYPE STATE CONNECTION
ens3 ethernet connected Profile 1
lo loopback unmanaged --
某些 nmcli 命令的缩写
nmcli 命令 | 缩写 |
---|---|
nmcli 常规状态 | nmcli g |
nmcli 常规日志记录 | nmcli g 日志 |
nmcli 连接显示 | nmcli con show |
nmcli connection show --active | nmcli con show -a |
nmcli 设备状态 | nmcli dev |
nmcli 启动和停止网络接口
nmcli 工具可用于启动和停止任何网络接口,包括控制器。例如
nmcli con up id bond0
nmcli con up id port0
nmcli dev disconnect bond0
nmcli dev disconnect ens3
# 注意
nmcli connection down # 命令取消激活设备的连接,而不阻止设备进一步自动激活。
nmcli device disconnect # 命令断开连接设备并阻止设备自动激活进一步连接,而无需人工干预。
网卡配置为静态IP
nmcli con mod [网卡] ipv4.method static ipv4.address [IP]
示例
nmcli con mod ens33 ipv4.method static ipv4.address 192.168.137.10/24
网卡配置网关
nmcli con mod [网卡] ipv4.gateway [IP]
示例
nmcli con mod ens33 ipv4.gateway 192.168.137.2
网卡配置DNS
nmcli con mod [网卡] ipv4.dns [IP]
示例
nmcli con mod ens33 ipv4.dns 192.168.137.2
停止网卡
nmcli con down [网卡]
示例
nmcli con down ens33
开启网卡
nmcli con up [网卡]
示例
nmcli con up ens33
重载配置
nmcli con reload
网卡开机自启动
nmcli con mod [网卡] connection.autoconnect yes
示例
nmcli con mod ens33 connection.autoconnect yes
常用命令
# DHCP 类型
nmcli con add con-name ens33-test ifname ens33 type ethernet connection.autoconnect yes
# 静态IP
nmcli con add con-name ens33-test ifname ens33 type ethernet connection.autoconnect yes ipv4.add 192.168.207.200/24 ipv4.gateway 192.168.207.2 ipv4.dns 192.168.207.2 ipv4.method man