Ubuntu 和 CentOS 是两种流行的 Linux 发行版,它们在很多方面相似,因为它们都基于 Linux 内核。然而,由于它们源自不同的 Linux 发行版家族(Ubuntu 来自 Debian,而 CentOS 基于 Red Hat Enterprise Linux),在一些命令和管理工具上存在差异。
包管理器
- Ubuntu: 使用 apt(或旧版本中的 apt-get)作为其包管理器。例如,安装软件包的命令是 sudo apt install [package]。
- CentOS: 最新的 CentOS (CentOS 8)使用 dnf 作为其包管理器,而较旧的版本(CentOS 7 及以下)使用 yum。例如,安装软件包的命令是 sudo dnf install [package](或在 CentOS 7 及以下版本中使用 yum)。
服务管理
- Ubuntu: 使用 systemd 作为其系统和服务管理器(自 Ubuntu 15.04 起)。控制服务的命令格式如 sudo systemctl start [service]。
- CentOS: CentOS 7 及以后版本也使用 systemd。在 CentOS 6 及以前的版本中,服务是通过 init 脚本管理的,使用的命令如 service [service] start。
配置文件和位置
- 配置文件的位置和命名在 Ubuntu 和 CentOS 之间可能略有不同。例如,网络配置文件、防火墙设置等。
发行版特定的工具和命令
- 每个发行版可能有其特有的工具和命令,用于系统设置、硬件配置等。
默认安装的软件
- Ubuntu 和 CentOS 可能在默认安装的软件包上有所不同。例如,它们可能使用不同的默认编辑器(如 nano vs. vi)或不同的文件系统工具。
版本号和发行周期
- Ubuntu 和 CentOS 的版本命名约定不同。Ubuntu 使用年份和月份的组合(如 20.04),而 CentOS 使用主版本号和次版本号(如 CentOS 7)。
- Ubuntu 每六个月发布一个新版本,并每两年发布一个长期支持(LTS)版本。而 CentOS 的发布周期通常更长,与其上游源 Red Hat Enterprise Linux 的发布周期一致。
尽管有这些差异,如果您熟悉其中一个发行版,通常不难适应另一个,因为许多基础的 Linux 命令和概念在不同的发行版间是共通的。
Ubuntu 网络配置和管理
从 Ubuntu 18.04 LTS 开始,默认使用 netplan 进行网络配置。netplan 配置文件通常位于 /etc/netplan/ 目录下。这些文件使用 YAML 格式。
![](https://falay.cn/wp-content/uploads/2023/12/1703812754-image.png)
编辑并保存文件后,应用配置:
![](https://falay.cn/wp-content/uploads/2023/12/1703812776-image.png)
![](https://falay.cn/wp-content/uploads/2023/12/1703812790-image.png)
在 Ubuntu 的图形用户界面(GUI)中进行的网络配置实际上是对系统底层配置文件的更改。这些更改通常是通过 NetworkManager 进行的,它是一个用于处理网络连接的守护程序,并提供了一个用户友好的界面来管理网络设置。
- NetworkManager:
- NetworkManager 通常负责管理 Ubuntu 系统上的网络连接。
- 它提供了一个 GUI 工具(通常是 GNOME 的网络设置或其他桌面环境的类似工具),使用户能够通过图形界面配置网络设置,如无线网络、有线网络、VPN 连接等。
- 命令行配置工具:
- 在 Ubuntu 18.04 及以后的版本中,NetworkManager 通常与 netplan 配合工作。netplan 是一个命令行网络配置工具,它处理 /etc/netplan/ 目录下的 YAML 配置文件。
- 在旧版 Ubuntu(16.04 及更早版本)中,NetworkManager 可能与传统的 /etc/network/interfaces 文件或 ifupdown 工具结合使用。
GUI 配置和命令行配置的转换:
- 当您在 GUI 中进行网络配置时,NetworkManager 会自动处理底层配置。这意味着在后台,NetworkManager 可能会修改 netplan 配置文件或其他相关的网络配置文件。
- 由于 NetworkManager 的存在,您通常不需要直接编辑 netplan 配置或 /etc/network/interfaces 文件,尤其是在桌面环境中。NetworkManager 旨在简化网络配置过程,并确保配置的一致性。
注意事项:
- 在服务器或无头系统(没有图形界面的系统)上,您可能需要直接编辑 netplan 配置文件或使用命令行工具进行网络配置。
- 在使用 GUI 配置网络时,建议不要同时手动编辑 netplan 或 /etc/network/interfaces 文件,以避免配置冲突。
renderer: networkd
- 当 renderer 设置为 networkd 时,网络配置是由 systemd-networkd 服务处理的。这种方式通常用于服务器或无头(没有图形界面)系统。
- 在这种模式下,Ubuntu 的图形用户界面(GUI)中的网络管理器(NetworkManager)不会管理网络设置。因此,您可能会发现 GUI 中的网络设置变得不可用或者“灰色”(即不能点击)。
renderer: NetworkManager
- 另一方面,如果您将 renderer 设置为 NetworkManager,则网络配置由 NetworkManager 程序处理,它是一个适用于桌面系统的用户友好的网络管理工具。
- 在 NetworkManager 模式下,您可以使用图形界面来管理网络设置,例如连接/断开 Wi-Fi、设置 VPN 等。
当 renderer 设置为 networkd:
- systemd-networkd 接管: systemd-networkd 会管理网络接口的配置。
- NetworkManager 状态: NetworkManager 服务可能仍在运行,但不会管理任何通过 systemd-networkd 配置的网络接口。
当 renderer 设置回 NetworkManager:
- NetworkManager 接管: 网络接口的管理权会返回到 NetworkManager。
- 需要重新启动 NetworkManager: 为使更改生效,可能需要重新启动 NetworkManager 服务:
设置路由优先级
每个网络接口的配置中添加 gateway4 和 metric 选项,以指定网关和其路由度量值。值越小优先级越高
![](https://falay.cn/wp-content/uploads/2023/12/1703812910-image.png)
总结:
1. Netplan 配置
- 配置文件位置: /etc/netplan/*.yaml。
- 文件格式: YAML 格式。
2. 设置静态 IP
- IP 地址配置: 在 netplan 配置中为网卡设置 addresses(包括 IP 和子网掩码)。
- 配置示例:
yamlCopy code
ethernets:ens33:addresses:[192.168.1.10/24]
3. 网关和 DNS 配置
- 指定网关: 为特定网卡设置 gateway4。
- DNS 配置: 在 nameservers 下定义 addresses。
- 配置示例:
yamlCopy code
ethernets:ens33:gateway4:192.168.1.1nameservers:addresses:[8.8.8.8, 8.8.4.4]
4. 应用和验证 Netplan 配置
- 应用配置: 执行 sudo netplan apply。
- 验证 IP 地址: 执行 ip addr。
- 验证路由表: 执行 ip route。
5. Renderer 选项
- networkd: 用于无头系统,配置如下:
yamlCopy code
renderer:networkd - NetworkManager: 用于桌面系统,配置如下:
yamlCopy code
renderer:NetworkManager
6. 多网卡配置
- 默认路由和度量值: 为避免冲突,为不同网卡设置不同的默认路由和度量值。
- 特定网络段路由: 为指定网卡设置特定网络段的路由。
- 配置示例:
yamlCopy code
ethernets:ens33:…routes:-to:192.168.44.0/24via:192.168.44.1metric:100ens38:…gateway4:192.168.2.1metric:200
7. 解决配置错误
- 使用 sudo: 对于 E505 错误,确保使用 sudo 来编辑 netplan 文件。
- 检查语法: 确保 YAML 语法正确,特别是缩进。
8. CentOS 和 Ubuntu 网络管理对比
- CentOS: 手动配置可能与 NetworkManager 冲突。
- Ubuntu: netplan 提供统一的网络配置方法,减少配置冲突。
总结
这些详细笔记涵盖了 netplan 的基本配置、管理多个网络接口的方法、以及在 Ubuntu 中处理网络配置的最佳实践。这些信息对于深入理解 Ubuntu 系统的网络管理非常有帮助。