2024年1月

在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Keras 接触了第一个数据集。在本系列的第七篇文章中,我们将继续探索神经网络,并使用数据集来训练模型。我们还将介绍另一个强大的机器学习 Python 库 scikit-learn。不过在进入正题之前,我要介绍两个轰动性的人工智能应用:ChatGPT 和 DALL-E 2。(LCTT 译注:此文原文发表于 2023 年初,恰值以 ChatGPT 为代表的 AI 热潮开始掀起。)

OpenAI 是一个人工智能研究实验室,它在人工智能和机器学习领域做了很多研究。 埃隆·马斯克 Elon Musk 是该组织的联合创始人之一。2022 年 11 月,该实验室推出了一款名为 ChatGPT 的在线工具。它是一个可以像人类一样聊天的人工智能聊天机器人。它是使用监督学习和强化学习技术训练的 大型语言模型 large language model (LLM)。ChatGPT 使用了 OpenAI 的 GPT-3.5 语言模型,这是 GPT-3( 生成式预训练变换器 Generative Pre-trained Transformer )的改进版本,GPT-3 是一种使用深度学习来生成类似人类文本的语言模型。(LCTT 译注:OpenAI 已于 2023 年 3 月 14 日 发布了 GPT-4.0,它支持图文混合的输入输出,并大幅提升了推理能力和准确性。)我仍然记得第一次使用 ChatGPT 时的兴奋。它清楚地展现了人工智能的能力。ChatGPT 的回答质量很高,通常与人类给出的答案没有区别。你可以使用它来纠正语法错误、改写句子、总结段落、编写程序等。实际上,我就用 ChatGPT 改写了本文中的许多句子。此外,我还故意使用有语法错误的文本测试了 ChatGPT,它纠正后的句子非常准确。它重新措辞和总结段落的能力也很惊人。

程序员甚至有可能使用 ChatGPT 在短时间内解决编程难题。在 编程探险挑战赛 2022 Advent of Code 2022 中,就有人这样宣称(LCTT 译注:比赛官方只是没有完全禁止使用人工智能作为辅助,但是并不很推崇这样的作法。消息来源)。事实上在 2022 年 12 月,也就是 ChatGPT 发布的一个月后,Stack Overflow 发布了一条新的规定,禁止提交 GPT 或 ChatGPT 生成答案。(LCTT 译注:消息来源:Temporary policy Generative AI (e.g., ChatGPT) is banned - Meta Stack Overflow

图 1:ChatGPT 生成的程序

图 1 显示了 ChatGPT 编写的将两个矩阵相加的 Python 程序。我要求用 BASIC、FORTRAN、Pascal、Haskell、Lua、Pawn、C、c++、Java 等语言编写程序,ChatGPT 总能给出答案,甚至对于像 Brainfuck 和 Ook! 这样生僻的编程语言也是如此。我很确定 ChatGPT 没有从互联网上复制程序代码。更确切地说,我认为 ChatGPT 是基于对上述编程语言的语法知识生成了这些答案的,这些知识是从训练它的大量数据中获得的。许多专家和观察人士认为,随着 ChatGPT 的发展,人工智能已经成为主流。ChatGPT 的真正力量将在未来几个月或几年里被看到。

OpenAI 的另一个令人惊叹的在线人工智能工具是 DALL-E 2,它以卡通机器人 WALL-E(LCTT 译注:电源《机器人总动员》中的主角)和著名画家/艺术家 萨尔瓦多·达利 Salvador Dalí 的名字命名。DALL-E 2 是一个可以根据英文描述来生成绘画的人工智能系统。该工具支持丰富的图像风格,如油画、卡通、漫画、现实主义、超现实主义、壁画等。它还可以模仿著名画家的风格,如达利、毕加索、梵高等。由 DALL-E 2 生成的图像质量非常高。我用下面的描述测试了这个工具:“一个快乐的人在海滩旁看日出的立体主义画作”。图 2 是 DALL-E 2 根据我的描述生成的图像之一。立体主义是毕加索推广的一种绘画风格。问问你的任何一个画家朋友,他/她都会说这确实是一幅立体主义风格的画。令人惊讶的是软件——它也许很复杂——能够模仿像毕加索、梵高、达利这样的大师。我强烈建议你体验一下它。这种体验将非常有趣,同时也体现了人工智能的威力。但请记住,像 ChatGPT 和 DALL-E 2 这样的工具也会带来很多问题,比如版权侵犯、学生的作业抄袭等。(LCTT 译注:本文的题图就是 DALL-E 3 生成的。)

图 2: DALL-E 2 生成的立体主义画作

介绍 scikit-learn

scikit-learn 是一个非常强大的机器学习 Python 库。它是一个采用 新 BSD 许可协议 new BSD licence (LCTT 译注:即三句版 BSD 许可证) 的自由开源软件。scikit-learn 提供了回归、分类、聚类和降维等当面的算法,如 支持向量机 Support Vector Machine (SVM)、随机森林、k-means 聚类等。

在下面关于 scikit-learn 的介绍中,我们将通过代码讨论支持向量机。支持向量机是机器学习中的一个重要的监督学习模型,可以用于分类和回归分析。支持向量机的发明人 Vladimir Vapnik 和 Alexey Chervonenkis。他们还一起提出了 VC 维 Vapnik–Chervonenkis dimension 概念,这是一个评估模型分类能力的理论框架。

图 3 是使用支持向量机对数据进行分类的程序。第 1 行从 scikit-learn 导入 svm 模块。跟前面几篇中介绍的 python 库一样,scikit-learn 也可以通过 Anaconda Navigator 轻松安装。第 2 行定义了一个名为 X 的列表,其中包含训练数据。X 中的所有元素都是大小为 3 的列表。第 3 行定义了一个列表 y,其中包含列表 X 中数据的类别标签。在本例中,数据属于两个类别,标签只有 0 和 1 两种。但是使用该技术可以对多个类别的数据进行分类。第 4 行使用 svm 模块的 SVC() 方法生成一个支持向量分类器。第 5 行使用 svm 模块的 fit() 方法,根据给定的训练数据(本例中为数组 Xy)拟合 svm 分类器模型。最后,第 6 行和第 7 行基于该分类器进行预测。预测的结果也显示在图 3 中。可以看到,分类器能够正确区分我们提供的测试数据。

图 3: 使用 SVM 进行分类

图 4 中的代码是一个使用 SVM 进行回归的例子。第 1 行次从 scikit-learn 导入 svm 模块。第 2 行定义了一个名为 X 的列表,其中包含训练数据。注意,X 中的所有元素都是大小为 2 的列表。第 3 行定义了一个列表 y,其中包含与列表 X 中的数据相关的值。第 4 行使用 svm 模块的 SVR() 方法生成支持向量回归模型。第 5 行使用 svm 模块的 fit() 方法,根据给定的训练数据(本例中为数 Xy)拟合 svm 回归模型。最后,第 6 行根据该 svm 回归模型进行预测。此预测的结果显示在图 4 中。除了 SVR() 之外,还有 LinearSVR()NuSVR() 两种支持向量回归模型。将第 4 行替换为 regr = svm.LinearSVR()regr = svm.NuSVR(),并执行代码来查看这些支持向量回归模型的效果。

图 4:使用 SVM 进行回归

现在让我们把注意力转到神经网络和 TensorFlow 上。但在下一篇讲无监督学习和聚类时,我们还会学习 scikit-learn 提供的其他方法。

神经网络和 TensorFlow

在上一篇中我们已经看到了 TensorFlow 的 nn 模块提供的 ReLU ( 整流线性单元 rectified linear unit )和 Leaky ReLU 两个激活函数,下面再介绍两个其他激活函数。tf.nn.crelu() 是串联 ReLU 激活函数。tf.nn.elu() 指数线性单元 exponential linear unit 激活函数。我们将在后续用 TensorFlow 和 Keras 训练我们的第一个模型时用到其中一个激活函数。

在开始训练模型之前,我想向你分享 TensorFlow 的提供的“神经网络实验场”工具。它通过可视化的方式帮助你理解神经网络的工作原理。你可以直观地向神经网络中添加神经元和隐藏层,然后训练该模型。你可以选择 Tanh、Sigmoid、Linear 和 ReLU 等激活函数。分类模型和回归模型都可以使用该工具进行分析。训练的效果以动画的形式显示。图 5 显示了一个示例神经网络和它的输出。你可以通过 https://playground.tensorflow.org 访问它。

图 5:神经网络实验场

训练第一个模型

现在,我们使用 上一篇 提到的 MNIST 手写数字数据集来训练模型,然后使用手写数字图像对其进行测试。完整的程序 digital.py 相对较大,为了便于理解,我将程序拆分成几个部分来解释,并且添加了额外的行号。

import numpy as np
from tensorflow import keras, expand_dims
from tensorflow.keras import layers
num_classes = 10
input_shape = (28, 28, 1)
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data( )

第 1 行到第 3 行加载必要的包和模块。第 4 行将类别的数量定义为 10,因为我们试图对 0 到 9 进行分类。第 5 行将输入维度定义为 (28,28,1),这表明我们使用是 28 x 28 像素的灰度图像数据。第 6 行加载该数据集,并将其分为训练数据和测试数据。关于该数据集的更多信息可以参考 上一篇 的相关介绍。

x_train = x_train.astype("float32") / 255
x_test = x_test.astype("float32") / 255
x_train = np.expand_dims(x_train, 3)
x_test = np.expand_dims(x_test, 3)
y_train = keras.utils.to_categorical(y_train, num_classes)
y_test = keras.utils.to_categorical(y_test, num_classes)

第 7 行和第 8 行将图像像素值从 [0,255] 转换到 [0,1]。其中 astype() 方法用于将整数值类型转换为浮点值。第 9 行和第 10 行将数组 x_testx_train 的维度从 (60000,28,28) 扩展为 (60000,28,28,1)。列表 y_trainy_test 包含从 0 到 9 的 10 个数字的标签。第 11 行和第 12 行将列表 y_trainy_test 转换为二进制类别矩阵。

   try:
      model = keras.models.load_model(“existing_model”)
   except IOError:
      model = keras.Sequential(
        [
        keras.Input(shape=input_shape),
        layers.Conv2D(32, kernel_size=(3, 3), activation=”relu”),
        layers.MaxPooling2D(pool_size=(2, 2)),
        layers.Conv2D(64, kernel_size=(3, 3), activation=”relu”),
        layers.MaxPooling2D(pool_size=(2, 2)),
        layers.Flatten( ),
        layers.Dropout(0.5),
        layers.Dense(num_classes, activation=”softmax”),
        ]
      )
      batch_size = 64
      epochs = 25
      model.compile(loss=”categorical_crossentropy”, optimizer=”adam”, metrics=[“accuracy”])
      model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, validation_split=0.1)
      model.save(“existing_model”)

训练模型是一个处理器密集和高内存消耗的操作,我们可不希望每次运行程序时都要重新训练一遍模型。因此,在第 13 行和第 14 行中,我们先尝试从 existing_model 目录加载模型。第一次执行此代码时,没有模型存在,因此会引发异常。第 16 到 21 行通过定义、训练和保存模型来处理这个异常。第 16 行代码(跨越多行)定义了模型的结构。这一行的参数决定了模型的行为。我们使用的是一个序列模型,它有一系列顺序连接的层,每一层都有一个输入张量和一个输出张量。我们将在下一篇文章中讨论这些定义模型的参数。在此之前,将这个神经网络看作一个黑箱就可以了。

第 17 行将批大小定义为 64,它决定每批计算的样本数量。第 18 行将 epoch 设置为 25,它决定了整个数据集将被学习算法处理的次数。第 19 行对模型的训练行为进行了配置。第 20 行根据给定的数据和参数训练模型。对这两行代码的详细解释将推迟到下一篇文章中。最后,第 21 行将训练好的模型保存到 existing_model 目录中。模型会以多个 .pb 文件的形式保存在该目录中。注意,第 16 到 21 行位于 except 块中。

print(model.summary( ))
score = model.evaluate(x_test, y_test, verbose=0)
print(“Test loss:”, score[0])
print(“Test accuracy:”, score[1])

第 22 行打印我们训练的模型的摘要信息(见图 6)。回想一下,在加载数据集时将其分为了训练数据和测试数据。第 23 行使用测试数据来测试我们训练的模型的准确性。第 24 行和第 25 行打印测试的详细信息(见图 8)。

图 6:模型的细节信息

img = keras.utils.load_img("sample1.png").resize((28, 28)).convert('L')
img = keras.utils.img_to_array(img)
img = img.reshape((1, 28, 28, 1))
img = img.astype('float32')/255
score = model.predict(img)
print(score)
print("Number is", np.argmax(score))
print("Accuracy", np.max(score) * 100.0)

现在,是时候用实际数据来测试我们训练的模型了。我在纸上写了几个数字,并扫描了它们。图 7 是我用来测试模型的一个图像。第 26 行加载图像,然后将其大小调整为 28 x 28 像素,最后将其转换为灰度图像。第 27 到 29 行对图像进行必要的预处理,以便将它输入到我们训练好的模型中。第 30 行预测图像所属的类别。第 31 到 33 行打印该预测的详细信息。图 8 显示了程序 digital.py 的这部分输出。从图中可以看出,虽然图像被正确识别为 7,但置信度只有 23.77%。进一步,从图 8 中可以看到它被识别为 1 的置信度为 12.86%,被识别为 8 或 9 的置信度约为 11%。此外,该模型甚至在某些情况下会是分类错误。虽然我找不到导致性能低于标准的准确原因,但我认为相对较低的训练图像分辨率以及测试图像的质量可能是主要的影响因素。这虽然不是最好的模型,但我们现在有了第一个基于人工智能和机器学习原理的训练模型。希望在本系列的后续文章中,我们能构建出可以处理更困难任务的模型。

图 7:测试手写数字样例

在本文介绍了 scikit-learn,在下一篇文章中我们还会继续用到它。然后介绍了一些加深对神经网络的理解的知识和工具。我们还使用 Keras 训练了第一个模型,并用这个模型进行预测。下一篇文章将继续探索神经网络和模型训练。我们还将了解 PyTorch,这是一个基于 Torch 库的机器学习框架。PyTorch 可以用于开发 计算机视觉 computer vision (CV) 和 自然语言处理 natural language processing (NLP) 相关的应用程序。

图 8:digit.py 脚本的输出

致谢:感谢我的学生 Sreyas S. 在撰写本文过程中提出的创造性建议。

(题图:DA/c8e10cac-a5a5-4d53-b5eb-db06f448e60e)


via: https://www.opensourceforu.com/2023/02/ai-an-introduction-to-scikit-learn-and-our-first-trained-model/

作者:Deepu Benson 选题:lujun9972 译者:toknow-gh 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。

你使用 WSL 在 Windows 内运行 Linux 吗?你想知道如何关闭在 WSL 中运行的 Linux 发行版吗?

你当然可以在 WSL 中运行的 Linux 系统中 执行 shutdown 命令

sudo shutdown now

你还可以使用 wsl 命令关闭 Linux 系统。如果你有多个发行版在 WSL 中运行,这是一种极好的方法。

在 WSL 中使用 Windows 终端关闭 Linux 系统

在这个方法中,我假设通常的 shutdown 命令在 WSL Linux 系统中不起作用。

首先,在 Windows 中打开一个终端。在这里,我使用的是 Windows 11,并在 WSL 2 下安装了 Ubuntu。

打开 Windows 终端

? 你可以在标准的 Windows 终端上使用 wsl 命令。在运行的 Linux 发行版中也可以访问该命令。这里,命令的名称是 wsl.exe

现在,你需要列出已安装的发行版及其状态。为此,请输入

wsl --list --verbose
或
wsl -l -v

列出已安装的发行版

在这里,你可以看到,我已经安装了一个 WSL Ubuntu,它目前正在运行。

关闭所有正在运行的 Linux 发行版

有时,你可能想一次性停止正在运行的 WSL 实例。

在 Powershell 或 Windows 终端中,使用以下命令:

wsl --shutdown

这将关闭所有会话。

此外,你还可以在任何正在运行的 WSL Linux 发行版终端中执行相同的功能。在发行版中时,你只需要使用 wsl.exe 而不是 wsl

wsl.exe --shutdown

关闭所有正在运行的 WSL 发行版

运行此命令后,所有正在运行的 WSL 发行版都将终止。WSL 2 轻量级虚拟机也被终止。因此,如果你想重新启动 WSL 2 虚拟机环境,它将很有用。

终止特定的 Linux 发行版

要终止特定正在运行的 WSL 发行版,请打开单独的 Windows 终端并运行:

wsl --terminate <发行版名称>

此处,发行版名称是你使用 wsl -l -v ⁣ 命令列出所有已安装的 WSL 发行版时获得的名称。

列出 WSL 发行版

wsl --terminate Ubuntu

执行后,指定的 Linux 发行版将被终止。

如果你在另一个发行版中,请使用以下命令列出系统上安装的所有 WSL 发行版:

wsl.exe -l -v

现在,使用以下命令终止所需的发行版:

wsl.exe --terminate <发行版名称>

从另一个 WSL 发行版中关闭 WSL 发行版

总结

有些人直接关闭正在运行的 Linux 应用,但我认为这不太优雅。

另外,就像 Linux 终端一样,你可以使用:

  • logout 命令,用于关闭该发行版。
  • exit 命令用于退出运行 Linux 发行版的终端。
  • 或者,按 CTRL+D 执行与 exit 命令相同的操作。

但关闭 Linux 系统的 WSL 方式还有一个额外的优势,即可以针对多个 Linux 系统执行此操作。

我希望它对你有帮助。

(题图:DA/615fd564-a02c-4340-9c8f-ebabcc7c0e0c)


via: https://itsfoss.com/shut-down-wsl-distros/

作者:Sreenath 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。

MX Linux 推出了 2024 年的第一个主要版本,作为 23.x 版本的延续。上一版本 MX Linux 23 采用了新徽标,并进行了其他重大更改。

新版本 MX Linux 23.2 旨在继续沿着这条道路前进。

如果你正在寻找一款不含 systemd 的发行版,而且在使用时不会碍手碍脚,那么你可以看看这款基于 Debian 的发行版是否是一个极佳的选择。

如果你很好奇,如果你正在寻找一个在使用时不会妨碍的 无 systemd 发行版,那么这个基于 Debian 的发行版是一个绝佳的选择。

所以,话不多说,让我们开始吧。

? MX Linux 23.2:有什么新变化?

MX Linux 23.2 基于 Debian 12.4 “Bookworm” 基础构建,标准版使用 Linux 内核 6.1,“高级硬件支持”(AHS)版使用 Linux 内核 6.6 “liquix”,用于更新的硬件。

至于此版本的亮点,安装程序现在为 “toram” 实时功能的用户提供了修复,更新了 fstab 的生成,并提供了更好的图形用户界面。

各种应用和工具也得到升级,对于音频/视频处理,使用了 PipeWire 1.0,引入了新工具 “MX Locale” 来管理系统区域设置信息,默认语言等等。

在 UI/UX 部分,“mx-comfort-themes” 已修复,因为某些应用无法很好地配合它,并且引入了名为 “MX Linux Desert Landscape” 的新壁纸

这里还提供了一个名为 “papirus-folder-colors” 的新工具,它允许你尝试不同的文件夹颜色

然后是 新的相机应用。在 MX Linux 的 KDE Plasma 版本中,Webcamoid 取代了 Kamoso,同样,对于 Xfce 和 Fluxbox,Webcamoid 被替换为 Guvcview

最后,MX Linux 的旗舰桌面(Xfce)的 AHS 版本现在更新了固件和 Mesa 库**,并在 MX-Packageinstaller 菜单下新增了启用自动更新的可选设置。

如需进一步了解,你可以浏览 发行说明

? 获取 MX Linux 23.2

要获取最新的 MX 版本,你可以访问其 官方网站,其中包含各种下载镜像并可使用 torrent 文件。

MX Linux 23.2

?对此版本有什么想法吗? 请在下面告诉我!


via: https://news.itsfoss.com/mx-linux-23-2-release/

作者:Sourav Rudra 选题:lujun9972 译者:geekpi 校对:校对者ID

本文由 LCTT 原创编译,Linux中国 荣誉推出

1 网络上最古老的软件存档库之一即将关闭

美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024 年 4 月 15 日关闭其 OS/2 存档库,此举标志着一个时代的终结。三十多年来,该存档库一直是 IBM OS/2 操作系统及其后继系统用户的重要资源。他们在公告中没有透露做出这个“艰难的决定”的具体细节,只是表示“不得不”做出次决定。该存档库拥有至少 32 年的历史,是互联网上历史最悠久的软件存档库之一,与密歇根大学的存档库和 UNC 的 ibiblio 类似。

(插图:DA/21cc8173-ec2f-4546-b452-da588b187e14)

消息来源:Ars Technica
老王点评:我也感同身受啊。

2 日本的部分官方文件将不再需要使用软盘提交

早在 2022 年,日本数字事务大臣就敦促政府各部门停止要求企业通过过时的物理介质提交信息。日本经济产业省上周表示:“根据现行法律,在申请和通知方法方面,有许多条款规定使用软盘等特定记录媒体。今年之后,经济产业省将不再要求企业根据 34 条法令提交软盘数据。”在日本多个政府部门中,约有 1900 项协议仍然需要使用软盘、光盘甚至迷你光盘。

(插图:DA/5bd5033f-c570-430f-8963-51979e7849a8)

消息来源:Engadget
老王点评:日本的 IT 基础设施处于一种奇怪的落后状况。

3 GPS 干扰已成为航空业的主要飞行安全问题之一

欧洲航空安全局称,近年来,GPS 干扰和欺骗事件日益威胁着东欧和中东地区定位服务的完整性。他们针对最近就有人欺骗和干扰卫星导航系统的事件举行了一次研讨会,认为这些事件对飞行安全构成了“重大挑战”。他们希望通过信息共享、保留传统导航辅助设备作为备份、以及向航空公司提供指导来应对。

(插图:DA/600c9434-8413-47f7-8368-2c1fbd953114)

消息来源:The Register
老王点评:GPS 这样定位服务也将变成战争武器。

在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bonding 网卡聚合 NIC teaming 、VLAN 标记和桥接。这些高级功能可以提高网络连接的效率和可靠性。

你可以在以太网、绑定、聚合或桥接设备等其他接口上创建 VLAN 接口。

在本文中,我们将学习如何在 RHEL 系统中通过网络绑定配置 VLAN 标记,它允许来自不同网络的流量共享共同的物理链接。

通过绑定对 VLAN 进行标记的先决条件

  • 网络聚合需要在网络交换机端口上启用 LACP(802.3ad),以聚合链路。
  • 网络聚合需要将网络端口配置为中继端口,这样可以在同一端口上添加多个 VLAN。此外,还要从它们那里获取 VLAN ID,以便在操作系统层面进行配置。
  • Linux 系统应该有两个接口。
  • 如果是物理服务器,我们建议在板载接口和 PCI 接口之间配置绑定,以避免主机端的网卡出现单点故障。

绑定内核模块

使用 lsmod 命令检查 Linux 系统是否已加载绑定模块。

lsmod | grep -i bonding
bonding 12451 0

默认情况下已加载。否则,请使用 modprobe 命令加载它。

modprobe bonding

1) LACP 绑定配置

我们将配置基于 LACP(Mode 4 – 802.3ad)的链路聚合绑定,通过组合名为 em1p7p1 的两个接口,为绑定接口提供更大的带宽。

1a) 创建 Bond 接口

在目录 /etc/sysconfig/network-scripts/ 下创建绑定接口文件 ifcfg-bond0

vi /etc/sysconfig/network-scripts/ifcfg-bond0

TYPE=Bond
DEVICE=bond0
NAME=bond0
BONDING_MASTER=yes
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=4 miimon=100 lacp_rate=1"
NM_CONTROLLED=no

1b) 配置第一个从接口

配置你想要进行绑定的第一个从属接口 em1。请根据你的环境使用正确的接口名称。

vi /etc/sysconfig/network-scripts/ifcfg-em1

TYPE=Ethernet
BOOTPROTO=none
DEVICE=em1
ONBOOT=yes
MASTER=bond0
SLAVE=yes

1c) 配置第二个从接口

配置你想要进行绑定的第二个从属接口 p7p1。 请根据你的环境使用正确的接口名称。

vi /etc/sysconfig/network-scripts/ifcfg-p7p1

TYPE=Ethernet
BOOTPROTO=none
DEVICE=p7p1
ONBOOT=yes
MASTER=bond0
SLAVE=yes

重启网络服务

重启网络服务以启用绑定接口或使用 ifup 命令启动它们。

systemctl restart network

2) 通过绑定接口进行 VLAN 标记

LACP 绑定配置已完成,所有接口现已启动并运行。让我们按照以下步骤配置绑定接口上的 VLAN 标记。

正如先决条件中所讨论的,以下是映射到相应以太网卡端口(em1p7p1)和网络交换机端口的 VLAN。

  • VLAN ID (221), VLAN N/W = 192.168.10.0/24
  • VLAN ID (331), VLAN N/W = 192.168.20.0/24

2a) 将 VLAN 221 配置到 Bond0

为 VLAN id 221 创建标记接口文件 /etc/sysconfig/network-scripts/ifcfg-bond0.221 并添加以下内容。

vi /etc/sysconfig/network-scripts/ifcfg-bond0.221

DEVICE=bond0.221
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.10.100
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
VLAN=yes
NM_CONTROLLED=no

2b) 将 VLAN 331 配置到 Bond0

为 VLAN id 331 创建标记接口文件 /etc/sysconfig/network-scripts/ifcfg-bond0.331 并添加以下内容。

vi /etc/sysconfig/network-scripts/ifcfg-bond0.331

DEVICE=bond0.331
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.20.100
NETMASK=255.255.255.0
GATEWAY=192.168.20.1
VLAN=yes
NM_CONTROLLED=no

重启网络服务

重启网络服务以启用绑定接口或使用 ifup 命令启动它们。

systemctl restart network

验证 VLAN 标记配置

最后使用 ip 命令 验证 VLAN 标记接口是否已配置并启动和运行。

是的,我可以看到 bondo.221@bond0bon0.331@bond0 有两个不同的 IP,并且能够通过 ssh 访问系统,没有任何问题。因此,VLAN 标记按预期工作。

结论

恭喜,你已经了解了如何在 RHEL 系统上通过 LACP 绑定配置 VLAN 标记,该系统监听两个 VLAN。VLAN 标记不限于两个 VLAN,支持多个 VLAN,你可以根据该 VLAN 的网络配置添加 VLAN 标记。

(题图:DA/2854516d-4d19-4008-a421-05f9a2a78368)


via: https://www.2daygeek.com/configure-vlan-tagging-over-network-bonding-rhel/

作者:Jayabal Thiyagarajan 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Matrix 用户可以升级 Fractal 6 了!

Fractal 是目前 最好的 Matrix 客户端 之一,近来一直在不断更新。

根据他们在 Fractal 5 发布时 宣布的计划,开发人员已经兑现了承诺,改进了应用程序的方方面面。

现在,Fractal 的下一次升级已经到来,并进行了进一步的改进。

? Fractal 6:有什么新内容?

乍一看,你可能没有发现任何重大变化。然而,底层有许多重要的变化。

以通知设置为例,它们已得到更新,现在用户可以设置全局和每个房间的通知。还有一个选项可以选择获取特定关键字的通知。

对于加密房间,用户可以轻松访问媒体历史记录,以查找以前上传的照片和视频。现在,当你输入标识符或 URI 时,“加入房间” 对话框会显示有用的预览。

既然谈到了这个话题,那么现在就可以用 Fractal 打开 Matrix URI 了**。它也是**Matrix 方案的注册处理程序。如果你不知道,URI 是一种标识符,可以让你轻松与其他用户取得联系或加入房间,类似于 Telegram 等平台上的标识符。

房间成员现在拥有一个外观整洁的个人资料页面,可用于查看有关个人资料的简短简介、踢/禁止等审核选项,甚至可以忽略他们;这样你就看不到他们发送的任何消息或邀请。

因此,用户现在可以从帐户设置页面轻松管理他们的“忽略用户”列表,可以通过单击个人资料图标附近的齿轮图标来访问该页面。

总而言之,还有许多其他改进、修复和新翻译,我在这里没有介绍。为此,我强烈建议你阅读官方 发行说明

? 下载 Fractal 6

Fractal 6 可从 Flathub 商店 获取,如果你有兴趣深入了解源代码,你也可以浏览其 GitLab 仓库

Fractal 6

? 你使用 Fractal 吗?你会选择其它的替代品吗?让我们知道!


via: https://news.itsfoss.com/fractal-6-release/

作者:Sourav Rudra 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出