使用 systemd-networkd 將多個靜態 IP 位址新增至伺服器

使用 systemd-networkd 將多個靜態 IP 位址新增至伺服器

我們有一台具有多個 IP 位址的伺服器。最近我們遷移到了 systemd,但我們仍然需要該伺服器上的多個 IP。對於 systemd-networkd,我們很難找到設定範例。因此,我們在啟動過程結束時使用 bash 腳本將 ip 新增到介面。

有人可以提供一個 systemd-networkd 設定範例,用於將多個 IP 新增到一個介面。

答案1

根據系統網路(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 版本。請參閱郵件清單#systemd以及freenode 上的IRC 頻道#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
  • 觸碰 /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
    

相關內容