ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 使用 nmcli 配置网络 ## 目标 完成本节后,学员应该能够通过 nmcli 和 NetworkManager 管理网络设置和设备。 ## NetworkManager NetworkManager 是监控和管理网络设置的守护进程。除了该守护进程外,还有一个提供网络状态信息的 GNOME 通知区域小程序。命令行和图形工具与 NetworkManager 通信,并将配置文件保存在 /etc/sysconfig/network-scripts 目录中。 设备是网络接口。连接是供设备使用的配置,其由一组设置组成。同一设备可能存在多个连接,但一次只能有一个保持活动状态。例如,系统通常可以使用 DHCP 提供的设置与网络连接。该系统偶尔需要连接到实验室或数据中心网络,它们仅使用静态联网。除了手动更改配置外,每一配置都可以存储为单独的连接。 ## 通过 nmcli 查看网络信息 要显示所有连接的列表,可使用 nmcli con show。要仅列出活动的连接,可用 --active 选项。 ~~~ [root@desktopX~]# nmcli con show ~~~ 指定连接 ID(名称),查看该连接的详细信息。小写设置表示该连接的配置。设置和属性名称在 nm-settings man page 中予以定义。大写设置为活动数据。 ~~~ [root@desktopX~]# nmcli con show "static-eth0" ~~~ nmcli 也可用于显示设备状态和详细信息。 ~~~ [root@desktopX~]# nncli dev status ... [root@desktopX~]# nmcli dev show eth0 ~~~ ## 通过 nmcli 创建网络连接 通过 nmcli 创建网络连接时,参数的顺序非常重要。首先为共用参数,必须包含类型和接口。接下来指定任何与类型有关的参数,最后指定 IP 地址、前缀和网关信息。可以为一个设备指定多个 IP 地址。其他设置可以在连接存在后作为修改进行设置,如 DNS 服务器。 ### 创建新连接示例 1. 定义一个名为“default”的新连接,它将使用 DHCP 通过 eth0 设备的以太网连接自动连接。 ~~~ [root@desktopX~]# nmcli con add con-name "default" type ethernet ifname eth0 ~~~ 2. 新建一个名为“static”的连接,并且指定 IP 地址和网关。不要自动连接。 ~~~ [root@desktopX~]# nmcli con add con-name "static" ifname eth0 autoconnect no type ethernet ip4 172.25.X.10/24 gw4 172.25.X.254 ~~~ 3. 系统将在启动时通过 DHCP 连接进行自动连接。改为静态连接。 ~~~ [root@desktopX~]# nmcli con up "static" ~~~ 4. 改回到 DHCP 连接。 ~~~ [root@desktopX~]# nmcli con up "default" ~~~ ### 重要 如果静态连接丢失,默认连接将尝试自动连接。要以管理员身份禁用某一接口并防止自动连接,可使用 nmcli dev disconnect DEVICENAME。 ### 类型选项 类型选项以所用的类型为基础。以太网类型的连接可能会选择性的指定连接的 MAC 地址。Wifi 类型的连接必须指定 SSID,可能还要指定额外的选项。还有许多其他类型可用,如网桥、绑定、组队、VPN 和 VLAN 等。要查看所有选项,可使用 nmcli con add help。 ~~~ [root@desktopX~]# nmcli con add help ~~~ ### 通过 nmcli 修改网络接口 可以通过 nmcli con mod 参数修改现有连接。参数为键/值对组合。键包含设置名称和属性名称。使用 nmcli con show "<ID>" 查看连接的当前值的列表。nm-setting man page 介绍了该设置,以及属性名称和用法。 ~~~ [root@desktopX~]# nmcli con show "static" ~~~ #### 连接修改示例 1. 关闭自动连接。 ~~~ [root@desktopX~]# nmcli con mod "static" connection.autoconnect no ~~~ 2. 指定 DNS 服务器。 ~~~ [root@desktopX~]# nmcli con mod "static" ipv4.dns 172.25.X.254 ~~~ 3. 一些配置参数可能增加或删除了值。在参数前添加 +/- 符号。添加辅助 DNS 服务器。 ~~~ [root@desktopX~]# nmcli con mod "static" +ip4.dns 8.8.8.8 ~~~ 4. 替换静态 IP 和网关。 ~~~ [root@desktopX~]# nmcli con mod "static" ipv4.addresses "172.25.X.10/24 172.25.X.254" ~~~ 5. 添加没有网关的辅助 IP 地址。 ~~~ [root@desktopX~]# nmcli con mod "static" +ip4.addressses 10.10.10.10/16 ~~~ ### 重要 nmcli con mod 将把设置保存到配置文件中。要激活更改,需要激活或重新激活该连接。 ~~~ [root@desktopX~]# nmcli con up "static" ~~~ ## nmcli 命令摘要 用于 nmcli 的基本设备和连接命令: nmcli 命令 | 命令 | 用途 | | --- | --- | | nmcli dev status | 列出所有设备。 | | nmcli con show | 列出所有连接。 | | nmcli con up "<ID>" | 激活连接。 | | nmcli con down "<ID>" | 取消激活连接。如果自动重新连接为是,则该连接将重新启动。 | | nmcli dev dis <DEV> | 中断接口,并且暂时禁用自动连接。 | | nmcli net off | 禁用所有管理的接口。 | | nmcli con add ... | 添加新连接。 | | nmcli con mod "<ID>" ... | 修改连接。 | | nmcli con del "<ID>" | 删除连接。 | ### 注意 nmcli 命令也有交互式编辑模式。如需图形界面,请使用 nm-connection-editor。 ## 参考 nmcli、nmcli-example 和 nm-settings man page