Debian

如何在 systemd 的介面上設置多個 IP 地址?

  • September 8, 2021

所以在 /etc/systemd/network 我有一個文件 lan.network:

[Match]
Name=eth0

[Network]
DHCP=no

[Address]
Address=192.168.59.1/24

有時我會將其他設備帶到同一個介面上,但它位於單獨的子網 (192.168.1.x) 上。要訪問此設備,我想在介面上選擇性地執行兩個 IP 地址。在 systemd 中執行此操作的最佳方法是什麼?

在舊版本的 Debian (Wheezy) 中,我編輯/etc/network/interfaces並有這樣的東西:

auto eth0
iface eth0 inet static
address 192.168.59.1

iface eth0:1 inet static
address 192.168.1.5

因此預設情況下,eth0 介面將被啟用,當我需要訪問 192.168.1.x 時,我會執行:

ifup eth0:1.

據我了解,要永久執行此操作,您只需將所有地址堆在一起,即:

Address=192.168.59.1/24 192.168.1.5/24

使用 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

引用自:https://unix.stackexchange.com/questions/297426