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

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

我们有一台具有多个 IP 地址的服务器。最近我们迁移到了 systemd,但我们仍然需要该服务器上的多个 IP。使用 systemd-networkd 时,我们在查找配置示例时遇到了一些麻烦。因此,我们在启动过程结束时使用 bash 脚本将 ips 添加到接口。

有人可以提供一个 systemd-networkd 配置示例,用于在一个接口上添加多个 IP 吗?

答案1

根据systemd.网络(5),您可以简单地Address=向该[Network]部分添加多行,并包含所需的地址。

[Network]
Address=10.2.3.4/16
Address=10.6.7.8/16
Gateway=...

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

[Network]
Gateway=...

[Address]
Address=10.2.3.4/16

[Address]
Address=10.6.7.8/16

[Route](部分和参数也同样如此Gateway=。)

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

答案2

我在 Proxmox 下使用容器,Proxmox/etc/systemd/network/eth0.network在容器中写入自己的内容。为了避免无法依赖该文件不被覆盖,您可以创建一个包含其他 IP 地址的插入文件,/etc/systemd/network/eth0.network.d/additional-ips.conf

[Match]
Name = eth0

[Address]
Address = 192.168.1.102/24

答案3

使用 Arch Linux,SystemD 249.2-1,这(3)种方法均不起作用(也尝试过这个答案

-------------------------
[Network]
Address=10.2.3.4/16
Address=10.6.7.8/16
-------------------------
[Network]
Address=192.168.59.1/24 192.168.1.5/24
-------------------------
[Address]
Address=10.2.3.4/16

[Address]
Address=10.6.7.8/16
-------------------------

相反,使用简单的 SystemD 服务,您可以在启动后设置第二个 IP...参见这个答案有关 systemd 服务创建的更多详细信息... 奖励要点:此方法允许您使用静态或 DHCP 作为主地址。

  • 触摸/usr/local/bin/second_ip
  • chmod + x /usr/local/bin/second_ip
  • 按照下面方法编辑文件
#!/bin/bash
ip address add 10.10.128.128/16 dev eth0
  • touch /etc/systemd/system/second-ip.service

  • 按照下面方法编辑文件

  • systemctl 启用第二个 ip

     [Unit]
     Description=second ip service
     After=network.target
    
     [Service]
     User=root
     ExecStart=/usr/local/bin/second_ip                                                                                      Type=simple
    
     [Install]
     WantedBy=multi-user.target
    

相关内容