网络配置:systemd-networkd 与网络、服务以及与 ip 命令的兼容性

Jac*_*ack 4 networking linux debian systemd

我正在尝试将运行 Debian 的 IOT 设备连接到 Wifi,在此过程中,我尝试配置 wlan0 接口。我注意到有几种方法可以做到这一点。据我了解(这很可能是错误的):

1)似乎有一种 systemd-networkd 方式,其中涉及修改 /etc/systemd/network/wlan0.network文件,然后理想地systemd-networkd.service在启动时设置接口。

2)有经典的ifupdown配置方式,主要依靠/etc/networking/interfaces文件进行配置。然后,网络服务networking.service在启动时设置这些服务。

我的问题是 1) 我对它们的工作方式是否正确,2) 您是否应该在任何给定时间只启用这些服务之一,以及 3) 一旦一切设置完毕,它们是否都与ip/ifconfig命令ifup兼容ifdown

基本上,如果有人能给我概述一下这些服务和接口如何交互、什么是遗留的、什么不是等等,我将不胜感激。

谢谢!

use*_*686 6

\n

1)我对它们的工作方式是否正确

\n
\n\n

是的,尽管 ifupdownifup@<interface>.service现在更喜欢。

\n\n
\n

2) 如果您在任何给定时间只启用其中一项服务

\n
\n\n

一般来说是的,但重要的是在任何给定时间只有一个服务应该管理接口。很有可能(但可能不建议)对不同的接口使用不同的服务,例如使用 systemd-networkd 来设置隧道,同时仍然使用 ifupdown 来设置以太网。

\n\n

(例如,我使用 NetworkManager 进行一般 PC 网络连接,但也使用 systemd-networkd 来创建 WireGuard 链接、“虚拟机”桥等。)

\n\n
\n

3)一旦一切设置完毕,它们都与 ip/ifconfig 命令兼容吗

\n
\n\n

ip\xe2\x80\x93 是的。

\n\n

ifconfig\xe2\x80\x93 部分。除其他问题外,该工具无法显示每个接口的多个 IPv4 地址(除非它们标有旧的“别名”)。这实际上并不是 networkd 和 ifconfig 的不兼容问题;相反,这是现代 Linux IP 堆栈和 ifconfig 的不兼容。

\n\n
\n

3)一旦一切设置完毕,它们都与 [...] ifup 和 ifdown 命令兼容吗?

\n
\n\n

这些ifup/ifdown命令与您提到的“ifupdown”完全相同。您可以说,networking.service 只ifup <name>针对列出为“auto”的每个接口运行。(一种常见的误解是它们是低级工具,或者是 的缩写ifconfig up,但事实并非如此。)

\n\n

因此,只有 /etc/network/interfaces 中列出的接口才与 ifup/ifdown 兼容。

\n