Debian
如何在 systemd 的介面上設置多個 IP 地址?
所以在 /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