使用 systemd-networkd 向服务器添加多个静态 IP 地址

use*_*664 12 networking ip ipv4 systemd

我们有一个带有多个 IP 地址的服务器。最近我们迁移到 systemd,我们仍然需要该服务器上的多个 IP。使用 systemd-networkd 我们很难找到配置示例。所以我们在启动过程结束时使用 bash 脚本将 ip 添加到接口。

有人可以提供一个 systemd-networkd 配置示例,用于将多个 IP 添加到一个接口。

use*_*686 13

根据systemd.network(5),您可以简单地将多Address=行添加到该[Network]部分,并带有所需的地址。

[Network]
Address=10.2.3.4/16
Address=10.6.7.8/16
Gateway=...
Run Code Online (Sandbox Code Playgroud)

或者,[Address]为每个地址创建一个单独的部分。

[Network]
Gateway=...

[Address]
Address=10.2.3.4/16

[Address]
Address=10.6.7.8/16
Run Code Online (Sandbox Code Playgroud)

(这同样适用于[Route]部分和Gateway=参数。)

请注意,systemd-networkd仍然很新,几乎每天都会收到错误修复。确保您使用的是最新的 systemd 版本,并尽可能测试 Git 版本。如果出现错误,请参阅邮件列表和 IRC 频道#systemd&#gentoo-systemd在 freenode 上。

  • 在 Ubuntu 16.04 LTS 中,第一种方法似乎不起作用(只能访问第一个 IP 地址)。但是,带有单独的“[Address”] 部分的第二种方法确实有效。就其价值而言,我在“[Network]”部分下定义了一个网关,如第二个示例所示。我还应该补充一点,无论我尝试什么,我都无法让两个静态 IP 地址在两个单独的物理网络接口上工作(我还没有在“systemd”文档或网络上的其他地方找到这样的例子),所以我只能在一个接口上使用两个 IP 地址。 (3认同)