问题描述
创建这篇笔记,是因为我们遇到一个问题,这个问题与 CentOS Stream 发行版有关。自从出现 CentOS Stream 版本之后,我们直接跳过 CentOS 8 版本,便开始选择其他 Linux 发行版。我们认为短期之内不能指望使用 Rocky Linux 来替代 CentOS 发行版。最后经过一番权衡,我们选择 Ubuntu Server TLS 系列发行版。我们安装 Ubuntu 18.04 TLS 发行版,以完成相关工作任务。然而,在配置网络时,我们便遇到问题:Ubuntu 没有使用 NetworkManager 管理网络配置?
不同于 CentOS 6.x 发行版,在 CentOS 7.x 中,开始使用 NetworkManager 进行网络管理。在 RHCE 的官方课程中,也是力推 NetworkManager 进行管理管理,取代以往修改配置文件的网络管理方式。而使用 NetworkManager 进行网络管理,需要使用 nmctl 命令来操纵 NetworkManager.service 实现网络配置。但是,在 Ubuntu 18.04 TLS 中,没有 nmctl 命令,也没有 NetworkManager.service(network-manager.service) 在运行。经过官方文档查找,我们发现在 Ubuntu 18.04 TLS 中使用 Netplan 进行网络管理,而 Netplan 是个前端程序,它会调用 NetworkManager 或者 systemd-networkd 完成网络配置。哦,原来 Ubuntu 使用其他管理工具来管理网络。
然后,我们便开始回忆其他 Linux 发行版,我们逐渐发现:现在,工具越来越多,每个发行版都有自己的管理方法,都有自己的管理工具。防火墙,虽然底层使用相同的技术,但是各发行版均采用不同的前端管理工具。网络管理,各个发行版也采用不同的配置工具。文件系统,各个发行版默认采用不同的文件系统,那么管理工具也不相同。这些便催生这篇笔记,我们需要汇总各个发行版中管理网络的工具,否则将来维护系统时将无从下手(虽然底层原理没有过多变化,但是这些五花八门的工具的用法已经足够让人焦头烂额)。
该笔记将记录:概述各种 Linux 发行版的默认配置网络的工具、相关的学习资料,以及要面对的问题。
解决方案
该部分笔记将包含如下内容:
基础配置,仅与操作系统相关,能够完成网络连接(访问外网),比如 IP-Address、Gateway、DNS 等等配置。高级网络特性可能需要与网络设备联动,
网络管理的方式
在 Linux 中,管理网络方式分为两种:
1)通过修改配置文件(废弃)
2)通过网络管理工具
管理网络的工具
在 Linux 中,现有的常见网络管理工具:
1)NetworkManager
2)systemd-networkd
3)Netplan
发行版默认工具
CentOS 7.x
在 CentOS 7.x 中,使用 NetworkManager 管理网络。现在官方保证 NetworkMangaer 稳定可用,我们就紧跟步伐。将来无论 NetworkManager 是否被其他工具替代,都不太可能回到直接修改配置文件的管理方式。
Ubuntu 18.04 LTS
使用 Netplan 管理,默认后端为 systemd-networkd 服务。而配置 systemd-networkd 的 networkctl 命令版本为 systemd 237,还不支持网络配置。
配置网络的详细过程,官方手册已给出详细说明,参考 Network – Configuration | Ubuntu 文档。
Debian GNU/Linux 8.10 (jessie)
Debian 就是 Debian,一如既往,将选择权交由用户,让用户选择自己的工具:
1)我们能够通过修改配置文件的方式(/etc/network/interfaces)
2)亦能自行安装网络管理工具(比如 NetworkManager、systemd-networkd 等等)
关于 Debian 的网络配置,参考官方文档:
1)Chapter 5. Network setup
2)Network Configuration
# 03/28/2021 目前,对于 Debian 发行版,我们选择 NetworkManager 进行网络管理。但是,按照目前的态势,将来采用 systemd-networkd 的概率比较大。
参考文献
Debian/Chapter 5. Network setup
systemd-networkd – ArchWiki
NetworkManager – Wikipedia
systemd – Wikipedia
Red Hat resets CentOS Linux and users are angry | ZDNet
章节列表
「NetworkManager」- 通过命令 nmcli conneciton modify 配置无效
「Linux」- 添加虚拟网卡
「Linux」- 通过配置文件,为网络接口配置地址(Ubuntu,Debian,CentOS)
「Linux」- 禁止 NetworkManager 设置 /etc/resolv.conf 使用 127.0.0.53 地址
「Netplan」- 操作系统网络配置工具(Ubuntu)