我们有一台具有多个 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