随着云计算、容器化、虚拟化等技术的普及,`nmcli` 在现代 Linux 系统中仍然具有重要的地位,是系统管理员和开发者不可或缺的工具之一。 一、nmcli 简介 `nmcli` 是 NetworkManager 的命令行接口,它允许用户通过命令行方式管理 NetworkManager 的配置和状态。NetworkManager 是一个轻量级的网络管理工具,可以自动配置网络连接,支持多种网络类型,包括有线、无线、VPN、桥接等。`nmcli` 通过命令行方式提供对这些网络配置的管理能力,使得网络管理更加灵活和高效。 `nmcli` 的主要功能包括: - 管理网络连接(如 Wi-Fi、以太网等) - 查看网络连接状态 - 配置网络接口 - 管理网络服务(如 DNS、IP 分配等) - 管理网络策略(如 QoS、防火墙规则等) `nmcli` 的使用方式非常灵活,支持多种命令,如 `nmcli connection show`、`nmcli connection add`、`nmcli connection delete` 等,使得网络管理变得简单而高效。 二、nmcli 命令语法 `nmcli` 的命令语法遵循一定的格式,主要命令包括: 1.查看网络连接状态 `nmcli connection show` 此命令会列出所有已连接的网络连接,包括名称、类型、状态、IP 地址、DNS 等信息。例如: ``` NAME UUID TYPE DEVICE STATE AUTO REBOOT ens3 1234567890abcdef Ethernet ens3 connected yes no wlan0 0987654321cba9 Wi-Fi wlan0 disconnected no no ``` 2.查看网络接口信息 `nmcli device show` 此命令会列出所有网络接口及其状态。例如: ``` NAME UUID TYPE DEVICE STATE AUTO REBOOT ens3 1234567890abcdef Ethernet ens3 connected yes no wlan0 0987654321cba9 Wi-Fi wlan0 disconnected no no ``` 3.添加网络连接 `nmcli connection add` 此命令用于创建新的网络连接。基本语法如下: ``` nmcli connection add type
例如,修改 IP 地址: ``` nmcli connection modify ens3 ip4 192.168.1.110 ``` 6.管理网络服务 `nmcli network show` 此命令用于查看网络服务的状态,包括是否启用、是否自动启动等。 7.启用/禁用网络服务 `nmcli network enable` `nmcli network disable` 此命令用于启用或禁用网络服务,例如: ``` nmcli network enable nmcli network disable ``` 三、nmcli 命令示例 示例 1:查看所有网络连接 ```bash nmcli connection show ``` 输出示例: ``` NAME UUID TYPE DEVICE STATE AUTO REBOOT ens3 1234567890abcdef Ethernet ens3 connected yes no wlan0 0987654321cba9 Wi-Fi wlan0 disconnected no no ``` 示例 2:添加一个 Wi-Fi 连接 ```bash nmcli connection add type wifi ifname wlan0 state connected ssid "MyWiFi" password "123456" ``` 示例 3:删除一个网络连接 ```bash nmcli connection delete ens3 ``` 示例 4:修改网络接口的 IP 地址 ```bash nmcli connection modify ens3 ip4 192.168.1.120 ``` 示例 5:启用网络服务 ```bash nmcli network enable ``` 示例 6:查看网络服务状态 ```bash nmcli network show ``` 输出示例: ``` ENABLED: yes BOOTPROTO: dhcp DEFROUTE: yes SUBNETMASK: 255.255.255.0 IPV4_FAILURE_FATAL: yes IPV6_FAILURE_FATAL: yes IPV6_PRIVACY: auto IPV6_ADDR_GEN_MODE: auto IPV6_AUTOCONF: yes IPV6_DEFROUTE: yes IPV6_PRIVACY: auto IPV6_AUTOCONF: yes ``` 四、nmcli 命令高级用法
4.1管理网络接口 `nmcli device` 命令可以查看所有网络接口的状态: ```bash nmcli device show ```
4.2管理网络策略 `nmcli network` 命令可以管理网络策略,例如设置 DNS、IP 分配等: ```bash nmcli network set DNS 8.8.8.8 8.8.4.4 ```
4.3管理网络服务的自动启动 `nmcli network enable` 和 `nmcli network disable` 可以控制网络服务是否自动启动: ```bash nmcli network enable nmcli network disable ``` 五、nmcli 命令在实际场景中的应用
5.1系统管理 系统管理员可以使用 `nmcli` 命令来管理网络连接,确保系统网络稳定运行。例如: - 在服务器上配置静态 IP - 在客户端配置无线网络 - 在虚拟化环境中管理网络连接
5.2开发与测试 开发人员可以在测试环境中使用 `nmcli` 来配置网络,确保网络服务正常工作。例如: - 测试网络连接状态 - 配置虚拟网络 - 测试网络策略
5.3容器网络管理 在容器化环境中,`nmcli` 可以用于管理容器网络,确保容器之间的网络通信正常。例如: - 配置容器网络接口 - 管理容器网络策略 六、nmcli 命令注意事项 1.权限问题:`nmcli` 需要 root 权限才能修改网络配置,否则会提示权限错误。 2.网络服务状态:在修改网络配置前,应确保 NetworkManager 服务已启动。 3.命令格式:命令格式必须准确,否则可能导致网络配置错误。 4.网络接口名称:网络接口名称必须与系统中实际的接口名称一致,否则无法成功配置。 七、nmcli 命令在云环境中的应用 在云环境中,`nmcli` 可以用于管理虚拟网络、私有网络、安全组等。例如: - 在云服务器上配置私有网络 - 在虚拟私有云(VPC)中管理网络连接 - 配置安全组规则 八、归结起来说 `nmcli` 是 Linux 系统中管理网络连接的重要工具,提供了丰富的命令行接口,使得网络管理更加灵活和高效。无论是系统管理员还是开发人员,都可以通过 `nmcli` 实现对网络配置的精确控制。通过掌握 `nmcli` 的基本语法和高级用法,可以更好地管理网络连接,确保系统稳定运行。在实际应用中,`nmcli` 的灵活性和强大功能使其成为 Linux 系统网络管理的首选工具之一。 `nmcli` 是 Linux 系统中用于管理 NetworkManager 服务的命令行工具,具有强大的网络配置能力,支持多种网络类型,适用于系统管理员、开发人员和云环境管理。其命令行语法灵活,支持多种网络管理操作,是 Linux 网络管理的重要工具之一。