所以在 /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
。
答案1
据我了解,要永久执行此操作,您只需将所有地址堆积在一起,即:
Address=192.168.59.1/24 192.168.1.5/24
答案2
使用 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